
GengDaPeng/dsh-agent-message
30Last commit Aug 15, 2026
dsh-agent-message DSH plugin
This plugin equips every agent session in a Harness process with three tools: list_peer_agents, send_agent_message, and check_delivery. It allows agents to discover each other, send messages with different modes (followup, steer, inject), and check delivery status. It also provides a @-mention UI for selecting target sessions and displays relayed messages as visible agent message cards.
How to install the dsh-agent-message DSH plugin
dsh plugin --profile web add dsh-agent-messageCopying does not run this command. Review the repository and version before installing the dsh-agent-message DSH plugin.
dsh-agent-message DSH plugin data source
dsh-agent-message DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-agent-message DSH plugin can do
- list_peer_agents: list all sendable independent sessions (excluding archived and real subagents) with id, title, working directory, and running status.
- send_agent_message: send a message to a target session by ID, with modes followup (new turn), steer (interrupt), inject (silent context). Supports offline auto-resume.
- check_delivery: query delivery status (pending/claimed/discarded/unknown) by message ID, including after process restart.
- @-session mention: type @ in input to select target session from native candidate menu, showing title and running status.
- Visible agent message card: relayed messages are displayed as agent message cards with clickable sender session header.
- Copy session ID button: one-click copy of current session ID from session header.
Where the dsh-agent-message DSH plugin fits
- An orchestrator agent assigns tasks to a development agent via cross-session messages.
- Two agents collaborate on a multi-step workflow, passing context between sessions.
- A supervisor agent monitors multiple worker agents and sends steering commands when needed.
- A main session sends instructions to a testing session and checks delivery status for confirmation.
Who the dsh-agent-message DSH plugin is for
- Users who run multiple agent sessions in DeepSeek Harness and need inter-agent communication.
- Developers building multi-agent workflows or orchestration systems within Harness.
dsh-agent-message DSH plugin limitations
- Target session must be unarchived and exist in local persistence; archived sessions are rejected.
- Real subagents (origin: subagent) are excluded from target list and cannot use these tools.
- Rate limit: max 10 messages per 60-second sliding window between any pair of sessions.
- Auto-resume of offline sessions uses the default model, not the previously selected model.
- Bulk delivery status without messageId relies on in-memory accounting (last 1000 sent records, FIFO).
- Cross-process or cross-machine communication is not supported.
dsh-agent-message DSH plugin: from the repository README
Quoted from the GengDaPeng/dsh-agent-message README, the upstream source of the dsh-agent-message DSH plugin. Copyright remains with the original authors.
> DeepSeek Harness 的**跨会话 Agent 通信**插件:让运行在同一个进程里的不同 Agent 会话,像发消息一样互相收发信息。  --- ## 这是什么 在 DeepSeek Harness 里,一个进程会同时挂着多个 Agent 会话。本插件给每个会话装上三个工具,让它们能互相"发消息": - 发消息前,先**列出所有可发送的独立会话**(未归档、排除真实子代理,含离线未打开的),按标题找到目标; - 找到后,**把消息投递到目标会话**——普通消息统一进入独立的新 turn;目标离线(进程重启后还没打开)时,插件通过 Harness 公开接口恢复会话、投递,并保持加载供后续通信,插件卸载时再释放 handle; - 需要时,可以**按需查询**某条消息的送达状态(排队中/已认领/被丢弃/未知),并单独查看目标是否正在运行,供监督场景使用。 典型场景:编排者 Agent 给开发 Agent 派活、两个 Agent 协作接力、主会话给测试会话发指令、监督者 Agent 盯梢多个 worker。 ## 功能 | 能力 | 说明 | |---|---| | `list_peer_agents` | 列出所有**可发送**的独立会话:未归档、排除真实子代理;普通 fork 保留。返回 id、标题、工作目录和运行状态 | | `send_agent_message` | 给指定会话 ID 发消息;默认使用 `followup` 创建独立的新 turn,离线时自动恢复后投递;显式支持 `followup`、`inject`、`steer` | | `check_delivery` | 按需查询消息回执(pending/claimed/discarded/unknown);发送成功时先返回 accepted,接纳前失败由工具错误表示;指定消息 ID 时支持重启后恢复查询 | | `@` 会话定位 | 在输入框开头键入 `@` 选择目标;候选只显示会话标题和“运行中/空闲”,空白占位和子代理不混入。选择后用户看到可读标题,当前 Agent 收到稳定 session ID;`@` 只定位,发送、读取或分析由整句意图决定 | | 可见的 Agent 消息卡片 | relay 仍保留真实的插件来源,但 Client 将它显示为左侧 Agent 消息卡片;`From Session · <名称>:` 可点击或通过键盘打开发送方会话 | | 复制会话 ID | 会话头部新增「复制ID」按钮,一键复制当前会话 ID | ### 发送方导航示例 ?
The default mode is `followup`, which creates a new independent turn in the target session. `steer` immediately interrupts the target's current running task. `inject` silently adds context for the next step without interrupting. The agent chooses the mode based on your intent; if unclear, it defaults to `followup`.
Can I check if my message was delivered?
Yes, you can ask the agent to call `check_delivery` with the message ID. It returns the status: pending (queued), claimed (picked up by a turn), discarded (canceled), or unknown. You can also specify a message ID to query after a process restart.
What are the limitations of this plugin?
Target sessions must be unarchived and exist locally. Real subagents are excluded. There is a rate limit of 10 messages per 60 seconds per session pair. Offline sessions are resumed with the default model, not the previously selected one. Cross-process or cross-machine communication is not supported.