Introduction¶
The core design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” When developers use the Agents Anywhere (AA) Connector to manage local Agent sessions, they need a way to expose DSH capabilities to the Connector. xipian1216/dsh-aa-bridge is this bridge layer, enabling AA to invoke DSH session, timeline, and control capabilities through JSON-RPC.
Feature Overview¶
The plugin exposes session, turn, timeline, model, permission, command, cancellation, and interaction capabilities through a versioned JSON-RPC API.
- Shared resources: The Connector and the browser share the session logs, Agent registry, and operation queue in the DSH Web process.
- Model switching: Agents created or restored by the plugin support switching models and reasoning effort; when borrowing an existing Desktop Agent, a different model returns
UNSUPPORTED_OPERATION. - Permission management: Permission selection is written to the actual Session through DSH’s
permissionPresets. - Workspace management: When AA creates a Session, it creates or reuses a DSH Workspace according to the canonical cwd.
- Session roster: The Session roster carries DSH Desktop visibility; locally archived sessions, blank sessions, and subagent sessions enter Archived, while normal sessions enter Active.
- Operation stability: Write operations are executed serially per Session and use stable client message IDs to handle retries.
- Disconnection handling: After the Connector disconnects, DSH Web and real-time Sessions continue running, and the Connector can reconnect.
- Secure binding: The SDK endpoint is bound only to 127.0.0.1; a random authentication token is stored in the endpoint file with 0600 permissions.
- Failure handling: Bridge notification failures are only recorded as synchronization warnings and do not revoke DSH operations that have already been accepted.
Installation and Activation¶
Before installing, confirm the current DSH version (the current baseline is 0.1.0-rc.7). Install the plugin into the profile that hosts Web (for example, web).
dsh plugin --profile web add github:xipian1216/dsh-aa-bridge#v0.2.0
After installation, start dsh web. Once the plugin starts, it writes the Connector discovery file to $DSH_HOME/agents-anywhere/bridge/endpoint.json. The endpoint port and authentication token are generated automatically by the plugin.
Agents Anywhere Configuration¶
When configuring DeepSeek Harness in Agents Anywhere, it is recommended to set the following parameters to accommodate network latency in local environments:
| Setting | Recommended Value |
|---|---|
startupTimeoutMs |
30000 |
requestTimeoutMs |
60000 |
maxRestartAttempts |
3 |
restartBackoffMs |
1000 |
Limitations and Considerations¶
- Runtime environment: Only supports the same machine and the same OS user.
- Connection limits: Accepts only one Connector connection at a time; only one Bridge endpoint owner is allowed for the same
DSH_HOMEat the same time. - Compatibility: Does not support cross-host consensus, network partition takeover, or multiple DSH processes merging the same Session log.
- Attachment support: The current protocol does not support image or regular file attachments.
- Desktop limitations: DSH rc.7 does not expose a canonical model-selection handle for Desktop live Agents, so borrowed Sessions cannot switch provider, model, or reasoning effort from the plugin.
- Session state: The currently selected Session in DSH Web is browser-local state; the Host bridge does not expose blank placeholder sessions; blank sessions enter AA Active only after the first turn starts.
- Archive behavior: AA currently does not automatically unarchive existing archives based on subsequent
hidden=false; a normal session already archived in AA needs to be manually unarchived once. - License: The license name is not explicitly specified in the documentation (only a LICENSE file is mentioned).
Summary¶
This plugin solves the communication problem between Agents Anywhere and local DeepSeek Harness processes by providing a standardized JSON-RPC interface. It does not start additional DSH processes; instead, it attaches to the already running Web endpoint. Developers can adjust their usage strategies based on the limitations above.