前言¶
DeepSeek Harness (DSH) 的插件化架构为工作流扩展提供了基础。但在实际开发中,Agent 之间往往需要共享上下文或协同工作:一个 Session 可能正持有正在进行的实现,另一个 Session 需要这些上下文进行审查或继续。直接复制历史记录会丢失上下文细节,而创建第二个独立的 Harness 实例则会增加系统开销和复杂度。
dsh-cross-session 旨在解决同一 DSH 进程内不同 Session 之间的通信问题。它不需要额外的守护进程或网络端口,而是作为标准插件运行在现有的 DSH runtime 中,让 Session 能够发现彼此、发送指令并观察执行结果。
插件定位¶
这是一个由社区开发者 Wha1eChai 维护的独立项目(非 DeepSeek AI 官方产品),许可证为 MIT。它为 DSH 提供了同一运行时内的跨 Session 发现与通信能力,属于“工作流”类插件。
核心功能¶
插件提供了 6 个核心工具,用于控制目标 Session 的行为:
- 发现 (
fleet_list):列出当前 DSH 进程中所有在线的 live root Session。 - 检查 (
fleet_inspect):读取目标 Session 的有界摘要,用于确认目标身份。 - 发送 (
fleet_send):向目标的下一个回合队列中追加后续工作。 - 转向 (
fleet_steer):在目标回合的边界改变其行为方向。 - 等待 (
fleet_wait):观察目标 Session 完成的、包含特定消息的回合。 - 取消 (
fleet_cancel):显式停止目标 Session 的根任务工作。
注意:fleet_send 用于等待目标处理完当前回合后再执行后续工作;fleet_steer 则用于在当前回合的边界改变方向,如果目标处于空闲状态,转向操作会唤醒它并开始处理该输入。
安装与启用¶
安装该插件需要指定具体的版本号(当前为 0.1.0-rc.1)。
- 执行安装命令:
dsh plugin --profile web add @wha1echai/dsh-cross-session@0.1.0-rc.1
- 编辑 DSH 配置文件,启用消息发送和转向能力。默认情况下,插件仅提供只读发现能力。在
cordis.patch.yml中添加以下配置:
- id: dsh-cross-session-tools
name: '@wha1echai/dsh-cross-session/tool'
config:
controlMode: message
- 重启 DSH 进程。
使用流程¶
fleet_send 和 fleet_steer 需要通过确认流程来保证安全性,模型工具不会直接写入任意的 Session ID。
- 发现目标:调用
fleet_list列出当前会话。 - 确认身份:调用
fleet_inspect检查目标状态,确认具体的 Session ID。 - 执行操作:基于确认的选择,调用
fleet_send、fleet_steer或fleet_cancel。 - 观察结果:如果需要,调用
fleet_wait观察目标完成的回合。
示例场景:
* 目标会话:
> “When contacted through Fleet, summarize the request, complete it normally, and reply with a short result.”
* 调用会话:
> “Find another live root Session, inspect it, and send it a small task. If fleet_wait is available, wait for the turn that receives the message.”
安全与限制¶
- 运行环境:插件完全运行在现有的 DSH 进程内部,不启动新的守护进程或监听额外的网络端口。
- 资源消耗:
fleet_send和fleet_steer会触发模型请求和工具调用,因此会消耗模型和工具资源。 - 取消的局限性:
fleet_cancel只能中断正在进行的工作,无法回滚模型或工具已经接受的工作。 - 跨进程限制:目前不支持跨进程、跨设备或多 Runtime 的通信。
- 配置模式:
controlMode仅控制模型可见的工具,不替代 DSH 的审批机制、tools/pre-execute或ctx.tools.guard()策略。
总结¶
dsh-cross-session 提供了一套在同一 DSH 进程内管理 Session 间协作的工具集。对于需要在一个 Harness 内进行并行任务管理、上下文复用或流水线协作的开发者,这是一个实用的工具。使用前请确保检查源码与许可证,并在合适的 Agent 组合中启用写入权限。