dsh-session-collaboration
English | 中文
这是一个可安装的 DeepSeek Harness bundle,为显式指定的会话提供双向协作。它增加 session_delegate 模型工具、使用 Agent.steer() 将转发上下文插入目标下一步的 Host 运行时,以及能够记录目标会话并在当前视图中打开目标的 Web 卡片。
安装
安装已发布的包:
dsh plugin --profile web add dsh-session-collaboration从 GitHub 安装源码时请固定提交:
dsh plugin --profile web add github:w210548735-art/dsh-session-collaboration#<commit>GitHub 安装会运行包的 prepare 构建。pnpm 可能要求在 profile 的 pnpm-workspace.yaml 中显式允许构建:
allowBuilds:
dsh-session-collaboration: true允许 GitHub 包构建意味着安装时会执行该包的源码。请固定提交,并只允许信任的源码执行。已发布的 npm 包和本地 tarball 已包含 lib/,不需要这项构建权限。
该 bundle 自带配置 patch,不需要修改 profile 自己的 cordis.patch.yml;由于 bundle patch 先于 profile patch 应用,用户 patch 可以覆盖 allowCrossWorkspace 和 waitTimeoutMs。
行为
模型只有在用户明确提供 session_id,或可信的协作转发已经同步该 id 时,才能调用 session_delegate。每条转发都会记录发送方和目标方会话 id,因此目标会话可以使用发送方 id 反向发送消息,而不需要猜测调用方。
session_delegate 使用 Agent.steer() 投递消息。消息通过目标下一步的插队路径被接收,不进入普通 FIFO 队列。目标会话把转发当作模型上下文而不是新的人工输入,因此发送方不需要再在另一个输入框中重复输入任务。
wait 默认是 true。启用时,工具等待目标回合结束,提取目标 assistant 文本,将回复转发注入调用方会话,并返回回执。当另一会话已经在等待时,可以设置 wait: false 发送单向或反向消息;冷目标必须使用 wait: true,这样恢复出的 Agent 才能安全释放。
Web 卡片显示目标 id 和任务,使用“跳转到目标会话”按钮,并通过现有会话服务切换当前视图。工具调用的持久记录仍保留在调用方会话中,目标回复会以协作转发记录。
配置
bundle patch 的默认值如下:
allowCrossWorkspace: false
waitTimeoutMs: 120000allowCrossWorkspace 只有在目标 id 来自用户消息或可信反向转发时,才允许访问另一个工作目录中的目标。waitTimeoutMs 限制一次等待目标回合的时间,必须是正的安全整数。
失败和限制
- 会话不能向自己发送消息;未知或不可用的目标会返回可判断的协作错误。
- 同一目标会话同时只能有一个等待回复的协作请求;双向交流的反向一跳使用
wait: false。 - 目标回复从 assistant 文本块中提取;没有产生文本回复的回合会报告
TARGET_REPLY_MISSING。 - 跨工作区投递默认关闭,同时需要部署配置和显式目标授权。
- bundle 不会按内容或标题搜索会话;调用方必须提供不透明的会话 id。
- Web profile 提供协作卡片;只要具备所需 DSH 服务,Host 服务和模型工具也能在 headless 组合中工作。
Model Experience
session_delegate 请求上下文和启用条件
#### 模型看到的内容
工具 schema 暴露 session_id、prompt 和可选的 wait。系统指令说明目标接收的是插入的模型上下文,双方会话 id 会同步,等待目标回复时结果会通过调用方上下文返回。
#### Token effect
启用工具时会增加固定 prompt section。每次工具调用会把序列化参数和回执加入正常工具记录;等待回复时,目标 assistant 文本会作为持久化协作转发加入调用方上下文。
#### KV Cache effect
工具挂载后的固定指令保持前缀稳定。单次调用和返回的回复追加到既有会话前缀之后,不会替换之前的请求 token;重新挂载或关闭工具会改变 prompt 前缀,可能使缓存复用失效。
开发
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
pnpm pack --dry-run本项目遵循 DSH 的插件发布指南:根 manifest 声明 dsh.bundle,patch 引用包入口,prepare 构建 GitHub checkout,files 只包含可运行产物和文档。
许可证
[MIT](LICENSE)