前言¶
在 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