前言¶
DeepSeek Harness (DSH) 的会话默认是隔离的,子任务在完成后通常会退出。当需要在长期运行的会话之间传递指令、共享上下文或协调任务时,这种隔离性会带来阻碍。dsh-call-session 插件为 DSH 增加了进程内跨会话通信和工作区共享黑板的能力,使得多会话协作成为可能。
插件定位¶
- 名称:dsh-call-session
- 定位:工作流插件
- 维护者:popu2do
- 核心价值:在同一个 DSH 进程中实现跨会话的点对点通信(unicast)与共享状态存储(blackboard),支持可视化的会话拓扑观察。
- 开源协议:MIT
核心能力¶
该插件主要提供以下能力:
- 会话间单播通信:通过
session_call工具,向指定的会话发送指令或移交任务。 - 共享黑板:通过
board_post发布数据,通过board_list检索数据,通过board_clear清理数据,避免上下文窗口膨胀。 - 可视化画布:在 DSH Web UI 的 Canvas 标签页中,以拓扑图形式展示会话状态、黑板条目及调用轨迹。
- 会话创建:通过
session_create工具在当前工作区创建新的对等会话。
安装与启用¶
该插件默认以内置配置运行,无需复杂配置即可启用。添加到目标 Profile 的命令如下:
dsh plugin --profile web add dsh-call-session
安装后,可以通过 dsh plugin --profile web list 查看已安装插件,或使用 remove 命令卸载。
典型用法¶
插件通过工具调用实现功能,以下是三种典型场景:
场景一:任务移交¶
用户在当前会话中发出指令,要求将任务摘要传递给名为 “audit-session” 的会话。
* 动作:Agent 调用 session_call。
* 结果:如果目标会话正在运行,执行会被引导;如果处于空闲状态,会话会被唤醒。
场景二:结果发布¶
用户要求将审查结论发布到黑板上,并通知相关会话获取。
* 动作:Agent 调用 board_post 存储详细报告并获取 postId。
* 结果:其他会话可通过 board_list 按需获取内容,避免将大量历史数据塞入当前对话上下文。
场景三:创建会话¶
用户需要创建一个新的长期运行会话来处理特定角色。
* 动作:Agent 调用 session_create。
* 结果:在当前工作区生成一个新的对等会话,自动继承模型规格和预设。
配置¶
插件开箱即用,但也支持通过配置文件进行微调。
配置文件位置:~/.dsh/profiles/web/cordis.patch.yml
- id: dsh-call-session
config:
debounceMs: 500
maxCapacity: 500
主要配置项包括:
* debounceMs:原子磁盘写入防抖延迟,默认 300。
* maxCapacity:黑板最大条目数,默认 200。
* telemetryCapacity:画布数据缓冲区保留的最大调用轨迹数,默认 200。
* locale:交互语言偏好,支持 'auto', 'zh', 'en',默认 'auto'。
适用场景与注意¶
- 适用场景:适用于多个独立顶层会话之间需要直接协调、传递指令或同步状态;或需要在不增加上下文窗口负担的情况下共享大型输出结果(如报告、代码库状态)。
- 对比内置工具:对于隔离的、一次性任务(如代码搜索、脚本执行),建议优先使用 DSH 内置的
subagent;仅在需要多会话长期协作时使用本插件。 - 注意:
- Web UI 中的 Canvas 仅提供观察功能,不具备控制输入;所有状态变更均由 Agent 触发。
- 插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。
生态背景¶
DeepSeek Harness 的设计理念是“一切皆插件”。社区目录(如 SkillHub)提供了插件索引,但请注意,该目录与 DeepSeek 或幻方官方无从属关系。插件开发者需自行维护代码质量与安全性。
链接¶
- GitHub 仓库:https://github.com/popu2do/dsh-call-session
- 社区目录:https://www.skillhub.cn/plugins/popu2do/dsh-call-session