Skip to content

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-message

Copying 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 会话,像发消息一样互相收发信息。 ![License](https://img.shields.io/badge/License-MIT-blue.svg) --- ## 这是什么 在 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 | ### 发送方导航示例 ![可点击的发送者消息头示例](./docs/assets/message-h

Read the full READMERepository license: MIT

dsh-agent-message DSH plugin questions

How do I install dsh-agent-message?

Run `dsh plugin --profile web add dsh-agent-message` in your terminal. The plugin auto-registers after installation. Alternatively, you can install from GitHub via `dsh plugin --profile web add github:GengDaPeng/dsh-agent-message`. You can also ask any agent in a DSH session to run the command on your behalf.

How do I send a message from one agent session to another?

You can use the @-mention feature: type @ in the input box of the source session, select the target session from the dropdown, then compose your message. The agent will call `send_agent_message` with the appropriate mode. Alternatively, you can explicitly ask the agent to use `list_peer_agents` to find the target ID and then send a message.

What are the different send modes (followup, steer, inject)?

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.