dsh-call-session hero
dsh-call-session
In-process cross-session communication and workspace shared blackboard for DeepSeek Harness (DSH)
English | 简体中文
Overview
DeepSeek Harness sessions are isolated by default, and child tasks exit upon completion.
dsh-call-session adds in-process cross-session communication, peer session creation, and shared blackboard capabilities:
- Inter-session unicast: send directives or hand off tasks between independent long-running sessions.
- Shared blackboard: publish bulky artifacts to a shared board for on-demand retrieval, avoiding context bloat.
- Visual canvas: observe session states, blackboard items, and call trajectories in the DSH Web UI.
Install
# Add to target profile web
dsh plugin --profile web add dsh-call-session
# List installed plugins
dsh plugin --profile web list
# Remove plugin
dsh plugin --profile web remove dsh-call-session
Note: The --profile option must follow the plugin subcommand, e.g. dsh plugin --profile web ....
Scenarios
Instruct the agent using plain natural language in the chat; the agent invokes the tools automatically:
Task Handoff
User prompt:
Hand off this task summary to the "audit-session" session.
The agent calls session_call to dispatch a unicast message. If the target session is running, it steers execution; if idle, it wakes a new turn.
Post Results
User prompt:
Publish the review conclusions to the board and notify relevant sessions to pick up tasks.
The agent calls board_post to store the detailed report on the blackboard and obtain a postId. Other sessions retrieve the content on demand via board_list, preventing context window explosion.
Create Session
User prompt:
Create a new session and hand off tasks.
The agent calls session_create to spawn a long-running peer session in the current workspace, automatically inheriting model specifications and presets.
Canvas
The DSH Web session view exposes a Canvas tab to observe multi-agent collaboration across workspaces:
dsh-call-session canvas
- Topology: workspace columns, running/idle session nodes, blackboard items with TTL countdowns, and directional call traces.
- Interaction: hovering highlights the 1-hop connected subgraph; double-clicking opens a read-only inspector drawer.
- Read-only boundary: the canvas offers no control inputs; all state changes originate from the agents themselves.
Tools
| Tool | Type | Mode | Common Use Case |
|---|
session_call | Tool | Push | 1:1 unicast call for task dispatch, progress reporting, and handoffs |
session_create | Tool | Native | Create long-running peer sessions for parallel multi-role collaboration |
session_query | Tool | Read-only | List sessions and check active/idle statuses in or across workspaces |
board_post | Tool | Pull | Publish blackboard entries for large artifacts and shared milestones |
board_list | Tool | Pull | Query blackboard records by ID, topic, or digest mode |
board_clear | Tool | Manage | Dismiss or purge completed and expired blackboard entries |
Comparison
| Mechanism | Type | Model | When to Use |
|---|
subagent | Built-in | Hierarchical delegation, ephemeral child task, exits on completion | Scoped exploration, code search, one-off script execution. |
dsh-call-session | Plugin | Peer-to-peer collaboration, in-process unicast messaging and shared board | Directives and status sync between independent top-level sessions, or sharing large outputs. |
Selection guidelines:
- Prefer built-in: for isolated, scoped tasks, use DSH built-in
subagent directly.
- Use on demand: when multiple independent top-level sessions need to coordinate or share large context via a blackboard, use
dsh-call-session.
Config
The plugin runs with built-in defaults out of the box.
To customize, add property overrides to ~/.dsh/profiles/web/cordis.patch.yml:
- id: dsh-call-session
config:
debounceMs: 500
maxCapacity: 500
Options:
enabled: boolean, default true. Enable or disable plugin tools.
debounceMs: number, default 300. Atomic disk write debounce delay in milliseconds.
maxCapacity: number, default 200. Maximum board entries.
telemetryCapacity: number, default 200. Maximum call traces retained in canvas data buffer.
locale: string, default 'auto'. Interaction language preference ('auto', 'zh', 'en').
Architecture
Technical decisions are recorded as Architecture Decision Records (ADRs):
Compatibility
| Environment | Supported | Verified |
|---|
| DeepSeek Harness | >=0.1.1-rc.1 | 0.1.2-rc.1, 0.1.5-rc.1, 0.1.5-rc.2 |
| Cordis | ^4.0.2 | 4.0.2+ |
| Node.js | >=20.0.0 | 20.x, 22.x |
License
This project is licensed under the MIT License.