前言¶
DeepSeek Harness(DSH)允许任何插件寻址任意活跃 agent,但对外提供的跨会话路径通常是「父会话 → 子代理」。这个插件补上了横向的那条:同一进程里的对话可以互相发现、直接发消息、看对方进度、给自己立规矩——不用先绑定,也不用套一层子代理。
它实现的是多对话协作、跨会话通信、进度查看与工具护栏。
安装与启用¶
通过 dshpm 安装:
dshpm install dsh-conversation-link --profile web
dshpm install github:duanyunlun/dsh-conversation-link --profile web
安装后需要重启 DSH。Desktop host 不支持热重载(apps/desktop-host/src/index.ts 不调用 watchUserPatches)。
核心能力¶
- 对话发现与通信:同一进程里的对话可以互相发现、直接发消息。不需要预先绑定,直接向任意可见对话发送消息即可自动连接。
- 进度监控:在不打扰对方的情况下查看对方进度。
- 规则管理:三阶段规则(
before拒绝调用、after纠正结果、input每轮重申),约束声明它的那个对话自己。 - 连接管理:给对话起昵称、断开连接。
- 平级对话创建:在对话中创建新的平级对话,并可同时连上对方。
使用流程¶
1. 列出并连接对话¶
先列出所有可寻址的对话,然后为特定的对话起昵称。
# 列出对话
conversation_list
# 给对话起昵称并连接(默认昵称为对方的 handle)
conversation_link target="<对话的 handle>"
2. 直接发送消息¶
不想提前连接,可以直接向任意可见对话发送消息。对方会被自动连上,并收到一份自我介绍。
conversation_send target="<对话的 handle>" message="任务内容"
3. 派活与对接¶
在 A 对话里给 B 发消息派任务,B 收到后可直接回复。
conversation_send target="<B的昵称或handle>"
4. 盯进度¶
在不打扰对方的情况下查看对方进度(当前 turn/step、最后文本等)。
conversation_status target="<对话的昵称或handle>"
5. 立规矩¶
给自己设置常驻规则(如禁止动特定文件或强制字段名格式)。规则只约束声明它的那个对话自己,不能替别的对话立规矩。
# 设置 before 阶段规则
conversation_rule action="add" stage="before" text="不要动 packages/api"
# 设置 input 阶段规则
conversation_rule action="add" stage="input" text="字段名必须 camelCase"
注意事项¶
- Bundle 层与热重载:本包声明了
dsh.bundle.patch,属于 bundle 层。手动挂载的 profile 与 bundles 不能同时存在,否则插件会被加载两次。 - 重启要求:安装后必须重启 DSH(Desktop host 不支持热重载)。
- 规则作用域:规则只约束声明它的那个对话自己,不能替别的对话立规矩。
- 寻址限制:能寻址的对话必须是「人看得见的那些」(非归档、非空白、非子代理)。归档或空白对话不能被寻址。
- Node.js 版本:需要 Node.js ^22.19.0 || >=24.0.0。
总结¶
dsh-conversation-link 提供了一套平级对话间的协作工具。它不引入角色概念,所有交互都通过显式的工具调用实现。适合需要多对话并行协作、跨对话通信或需要为特定对话设置常驻约束的场景。