前言¶
在 DeepSeek Harness(DSH)里跑多会话、多模型并不稀奇;难点往往出在「外面还有一个主智能体」——例如 Codex CLI 或 Claude Code——你希望它像派发 subagent 一样把活交给 DSH,等一轮结束只拿最终答复,而不是自己轮询 UI 或拼 HTTP。反过来,DSH 里的 agent 有时也要把一段工作交回 Codex 或 Claude,并能在同一线程里续写。若没有统一桥接层,两边各写一套集成,权限和会话状态也很难对齐。
下面介绍社区插件 dsh-subagent-bridge(维护者 Dogtiti,分类:工作流)。它在 Harness 宿主内运行,通过本机 loopback 上的 MCP 端点,把「一次工具调用、一次答案」和并行 worker 等模式暴露给外部 CLI;同时向 DSH agent 注册反向派发工具。插件使用 Harness 公开的宿主服务(如 sessionController、sessions、workspaceRegistry、userQuestions),不依赖凭据文件或伪造 cookie。
这是什么¶
dsh-subagent-bridge 的定位是:在 Codex / Claude Code 与 DeepSeek Harness 之间提供 Subagent 形态的桥。Codex 可通过 MCP 在 DSH 上拉起 worker 并取回最终 assistant 文本;DSH 侧 agent 也可通过 codex_dispatch、claude_dispatch 把任务交给 Codex 或 Claude Code(README 强调可恢复线程)。仓库许可证为 MIT;package.json 中当前版本为 0.21.0,要求 DeepSeek Harness ^0.2.1-0。反向能力需要 codex 和/或 claude 在 PATH 中。
核心功能¶
MCP 与一次调用一次答案¶
插件启动后在 127.0.0.1:47821 监听,并将端点信息写入 ~/.dsh/bridge/endpoint.json(目录权限 0700,文件 0600)。文件形如:
{
"url": "http://127.0.0.1:47821/mcp/<token>",
"port": 47821,
"token": "<token>",
"pid": 12345,
"startedAt": "2026-10-22T12:30:00.000Z"
}
对外侧 agent 而言,dsh_task 会打开会话、投递消息、阻塞到本轮结束,只返回最终 assistant 文本(并附带 operationId、requestId、usage 以及 worker 实际使用的模型)。
并行 worker 与跟进¶
dsh_spawn:异步派发,立即返回task_name与sessionId。dsh_wait:阻塞直到指定 worker 中任一进入终态;可设timeoutMs。dsh_followup:在已有 worker 上继续一轮,复用上下文。dsh_close:关闭 worker 并释放槽位(会话本身仍保留)。
README 还提供更低层的 dsh_dispatch / dsh_read_result(长轮询 assistant 文本)以及 dsh_list_workers、dsh_list_sessions(仅元数据,不含消息内容)。
按调用指定模型与工作区¶
每次调用可指定 provider/model;省略 provider 时沿用当前默认 provider。可选 reasoningEffort(视模型而定)。切换发生在首条 prompt 之前,不修改 profile 默认模型。
工作区与 DSH 项目分组一致:可通过 cwd 与 workspace(布尔或命名)把新会话挂到已有项目或新建项目;缺失目录会先创建。工作区相关失败不会导致整次派发失败。
排队与 steer¶
DSH 在「会话忙时发消息」只有两种行为,由 mode 控制:
mode |
行为 |
|---|---|
queue(默认) |
等当前 turn 结束,再作为新 turn 投递 |
steer |
插入当前 turn,模型在下一步看到 |
文档注明:steer 不会打断正在执行的工具调用;也不会新开 turn,桥接层会等当前 turn 结束。对已在运行的会话,dsh_task 除非带 mode: "steer" 否则会拒绝。
无人值守默认¶
委派给 worker 的任务默认追加一段 standing instruction:缺少信息或需要选项时,选最合理默认、完成任务,并用一行说明假设,不要 ask_user_question。可用配置关闭或改写(见下文 assumptionPolicy)。若 worker 仍提问,dsh_wait 可能报告 pendingQuestion,可用 dsh_answer 批量提交;README 说明 DSH 的 userQuestions.answer() 对仍在工具调用内阻塞的问题能力有限,更推荐依赖 assumeDefaults 策略。
反向派发与循环防护¶
DSH 部署内的 agent 可使用 codex_dispatch、claude_dispatch 把活交给 Codex 或 Claude Code。插件还带 loop guard(深度与速率限制),避免两个 agent 互相委派形成环。
安装与启用¶
依赖:DeepSeek Harness ^0.2.1-0;反向功能需要 Codex CLI(codex)和/或 Claude Code CLI(claude)在 PATH 中。
安装步骤(与 README 一致,获取源码方式请自行从 GitHub 仓库 取得本地目录):
- 在 DSH 中打开 Plugins → Add,选择插件所在目录。
- 启动后插件监听
127.0.0.1:47821,并写入~/.dsh/bridge/endpoint.json。
连接 Codex¶
codex mcp add dsh-bridge --url "$(node -p "require(process.env.HOME+'/.dsh/bridge/endpoint.json').url")"
codex mcp list # verify
codex mcp remove dsh-bridge # remove
桌面端与 CLI 共用 ~/.codex/config.toml。token 在 URL 路径中,无需额外环境变量;也支持 Authorization: Bearer <token>。
连接 Claude Code¶
claude mcp add --transport http dsh-bridge "<the url above>" --scope user
将 <the url above> 替换为 endpoint.json 中的 url 字段。
可选配置示例(中文假设策略):
config:
assumptionPolicy: "如果缺少必要信息,直接采用最合理的默认做法做完,并在结果里用一行说明你的假设。"
(assumeDefaults: false 可关闭默认 standing instruction;若 prompt 已提及 ask_user_question 则跳过追加。)
典型用法¶
同步:等一轮结束再拿答案:
dsh_task({ prompt: "Review the error handling in src/bridge.ts", cwd: "/repo" })
异步:先派发多个 worker,再统一等待:
dsh_spawn({ task_name: "audit_api", message: "…", cwd: "/repo" })
dsh_spawn({ task_name: "audit_ui", message: "…", cwd: "/repo" })
dsh_wait({ targets: ["audit_api", "audit_ui"], timeoutMs: 240000 })
在已有 worker 上追加约束(steer):
dsh_followup({ worker: "w1", message: "Only touch files under src from here", mode: "steer" })
指定模型:
dsh_task({ prompt: "…", model: "zai-coding-cn/glm-5.3", reasoningEffort: "max" })
dsh_spawn({ task_name: "review", message: "…", model: "opencode-go/deepseek-v4.1-flash" })
适用场景与注意¶
适合谁: 已在 DSH 上跑 Harness、同时用 Codex 或 Claude Code 作为主控的开发者;需要「主 agent 派发子任务到 DSH、只读最终结果」,或需要在 DSH 内把一段工作交回 Codex/Claude 并控制并行与跟进。
务必注意:
- 插件在 当前 DSH 进程权限 下运行,安装前请自行审阅 源码 与 MIT 许可证。
- MCP 仅本机 loopback;端点 token 写在 URL 或 Bearer 头中,请按本机安全习惯保护
~/.dsh/bridge/。 - 社区目录 skillhub.cn 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」的扩展模型,本文事实以仓库 README 与
package.json为准。
结尾¶
dsh-subagent-bridge 把 DSH 会话能力收成 MCP 工具面:同步 dsh_task、并行 dsh_spawn / dsh_wait、可指定模型与工作区,并支持向 Codex / Claude 反向派发与循环防护。若你在搭「CLI 主控 + Harness worker」的双向工作流,可从目录页与仓库 README 对照工具表逐项接入。
- 目录页:https://www.skillhub.cn/plugins/Dogtiti/dsh-subagent-bridge
- GitHub:https://github.com/Dogtiti/dsh-subagent-bridge