Introduction

DeepSeek Harness (DSH) adopts an “everything-is-a-plugin” philosophy, modularizing various capabilities to build agent workflows. For scenarios requiring interaction with agents through instant messaging (IM), integrating an IM platform (such as RingCentral) into the DSH loop is a critical step. The RingCentral Team Messaging plugin provides this integration capability for DSH, turning RingCentral IM channels into a front-end entry point for agents and enabling a message-driven agent loop.

Plugin Overview

This is a RingCentral Team Messaging IM channel plugin for deepseek-harness (dsh). It is maintained by ringclaw and licensed under the MIT license. Its core role is to transform the RingCentral bot add-on program into a first-level front end for dsh agents: inbound posts in RingCentral chat drive the agent loop, and assistant replies are sent back as thread posts.

Core Features

  • Integrate RingCentral with DeepSeek Harness (dsh).
  • Transform the RingCentral bot add-on program into a first-level front end for dsh agents.
  • Inbound posts drive the agent loop.
  • Assistant replies are returned as RingCentral thread posts.
  • Pure Cordis plugin.
  • Uses the RingCentral Team Messaging v1 REST API and WebSocket directly.
  • Reuses host dsh services.
  • Supports Web GUI configuration.
  • Supports commands: /new, /compact, /model, /stop, /rc-ping, /rc-version, /rc-status, /rc-help.

Installation and Activation

Install through the dsh plugin manager. After installation, configure environment variables and start the service.

  1. Install the plugin
    Use the officially provided command to install the plugin to a specified profile.
    npx @deepseek-ai/dsh plugin --profile ringcentral add dsh-ringcentral
  1. Configure environment variables
    The plugin requires the Bot’s JWT token and the DeepSeek API key.
    export RC_BOT_TOKEN="your-bot-jwt"
    export DEEPSEEK_API_KEY="your-deepseek-key"
  1. Start the service
    Start dsh and load the ringcentral profile.
    npx @deepseek-ai/dsh --profile ringcentral
  1. Install from a local path
    To install from local source, build the project first and then add it by absolute path.
    cd /path/to/dsh-ringcentral
    pnpm install && pnpm build
    npx @deepseek-ai/dsh plugin --profile ringcentral add /path/to/dsh-ringcentral

Usage

After installation and startup, you can configure it through the Web GUI or use the built-in commands.

  1. Web GUI configuration
    In the web interface, navigate to Settings -> Plugins -> Plugin configuration. All configuration items except secrets can be edited here.

  2. Command list
    In RingCentral chat, the following commands are supported:

    • /new or /reset or /clear: Start a new session and clear the context.
    • /compact: Compress the session history and replace older records with a summary.
    • /model: Display or switch the model in use.
    • /stop: Abort the current generation process.
    • /rc-ping: Run a connectivity test.
    • /rc-version: View the plugin version.
    • /rc-status: View the current session status.
    • /rc-help: List all available commands.

Configuration and Access Control

Configuration follows dsh best practices. Explicit configuration values take precedence over environment variables, and environment variables take precedence over credential files.

  • Secret management: Secrets such as RC_BOT_TOKEN are not stored in profile YAML files; they are resolved through explicit configuration values, environment variables, or credential files.
  • Access control: Use dmMode, dmAllow, groupMode, and groupAllow to control handling modes for direct messages and groups. RingCentral team, companywide, and group chat types are all controlled by the group surface.
  • Session keys: The format is ringcentral:<accountScopeKey>:<scope>:<peerId>, where scope is direct (direct message), group, or channel.
  • Default limits: The default history limit is 250 messages, and the default text block limit is 4,000 characters.

Notes

  • Permissions and source code: The plugin runs with the permissions of the current dsh process. Before installing, review the source code and license (MIT).
  • Bot configuration: When creating a Bot application in the RingCentral developer portal, grant at least the TeamMessaging, ReadAccounts, and WebSocketsSubscription permissions, and install it in the account.
  • Owner credentials: Configuring owner credentials (JWT REST API app) can be used for history reading and sender fallback, but the history tool always prefers reading through the Bot client first.

Conclusion

As a pure Cordis plugin that integrates directly with the RingCentral API, this plugin provides complete IM channel support for DeepSeek Harness. Developers can flexibly control access permissions and behavior through the Web GUI or configuration files. Refer to the project homepage for more details.