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.
- 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
- 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"
- Start the service
Start dsh and load the ringcentral profile.
npx @deepseek-ai/dsh --profile ringcentral
- 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.
-
Web GUI configuration
In the web interface, navigate to Settings -> Plugins -> Plugin configuration. All configuration items except secrets can be edited here. -
Command list
In RingCentral chat, the following commands are supported:/newor/resetor/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_TOKENare not stored in profile YAML files; they are resolved through explicit configuration values, environment variables, or credential files. - Access control: Use
dmMode,dmAllow,groupMode, andgroupAllowto control handling modes for direct messages and groups. RingCentral team, companywide, and group chat types are all controlled by thegroupsurface. - Session keys: The format is
ringcentral:<accountScopeKey>:<scope>:<peerId>, where scope isdirect(direct message),group, orchannel. - 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, andWebSocketsSubscriptionpermissions, 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.