前言¶
在 DeepSeek Harness(DSH)裏跑 Agent 時,模型往往在每一步只發一個工具調用,隨後等待結果再決定下一步。多個彼此獨立、輸入已知的調用被拆成多輪模型—工具往返,會拉長任務時間,也會增加對話輪次。宿主調度器可以併發執行工具,但模型是否在同一響應裏合批發調,取決於提示與遵循度,而不是單靠 runtime。
dsh-parallel-tools-prompt 是維護者 lloydzhou 提供的 host-only 插件:通過穩定的依賴感知提示,引導模型把當前已就緒、互不依賴的必要工具調用放在同一響應裏。它不新增模型請求、不增加工具、不更改宿主安全分類或調度器;也不是 DAG 執行器,也不保證費用或延遲下降。下文介紹其定位、注入方式、配置與驗收邊界。
這是什麼¶
插件全名 dsh-parallel-tools-prompt,倉庫地址 https://github.com/lloydzhou/dsh-parallel-tools-prompt。當前源碼版本爲 0.2.1-rc.7,許可證 MIT,面向 DSH >=0.2.1-rc.3,Node.js >=24.9.0。
核心價值一句話:用 CONTEXT 提醒和可選的系統提示詞片段,向 Agent 說明「先發現動作、再用內部 DAG 判斷依賴、在限制內同輪發出就緒且互不依賴的調用」,從而減少本可避免的模型往返。效果取決於模型遵循度、任務依賴與運行環境;README 明確尚未做付費前向 A/B。
社區目錄頁:https://www.skillhub.cn/plugins/lloydzhou/dsh-parallel-tools-prompt。SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
兩條注入通道¶
插件提供兩個獨立開關,默認只啓用 CONTEXT 提醒:
-
contextReminder(默認true)
通過agent/pre-step在下一步驟追加一條 CONTEXT 消息,source.kind爲parallel-tools-scheduling,寫入會話歷史並渲染爲 CONTEXT 塊,機制與宿主time-context相同。覆蓋所有 Agent(含子智能體)、所有 preset 以及無 preset 的會話;presetIds不限制此通道。每個 Agent 最多交付一次,已有或繼承的提醒不會重複注入。提醒進入歷史,卸載不會刪除歷史中的內容。 -
systemPromptSection(默認false)
可選。啓用後通過systemPrompt.section()注入固定名稱parallel-tools:guidance(order 1050,禁止插值),不按輪注入時間戳或工具列表。僅對符合條件的根 Agent 與presetIds生效,默認目標爲standard根 Agent,跳過子智能體及不在列表中的 preset。
兩者可同時開啓;同時關閉則插件不注入任何內容。插件詳情頁(Plugins → 本插件)提供設置表單,開關即時寫入當前 profile 的 patch;contextReminder 在下一步驟生效,系統提示詞開關對修改之後重新組裝提示詞的會話生效。
調度規則(提示詞邏輯,非執行器)¶
兩個通道共用 src/prompt.ts 中的穩定規則:
- 節點是有用的工具調用;邊是必需前序結果、執行條件、審批與共享狀態順序(含先讀後改)。
- 就緒指前置已滿足、參數已知。將已知、就緒、互不依賴且在工具與輸出限制內的調用同輪發出;僅有一個就緒調用時單調用即正確,不爲湊批量發明工作。
- 收集證據與彙總判斷分開:獨立讀取可同輪;
test → failure → fix → retest等真實依賴鏈應保持串行。 - 合批與執行併發分開:同輪多調用減少模型往返;工具是否真正同時運行由 DSH 調度器與安全限制決定。
DAG 僅是內部心智模型,不要求畫圖或添加調度專用輪次;正常 plan、todo、審批流程仍須遵守。
Skill 分發¶
倉庫內 skills/batch-tool-calls/SKILL.md 可將同一規則複製到支持 skill 的其他 agent 工具目錄;不支持 skill 的環境可將正文複製進 AGENTS.md / CLAUDE.md 等常駐指令。是否在 DSH 之外有效尚未驗證。
開發與輔助腳本¶
維護者提供的本地驗證命令:
npm ci
npm run build
npm run typecheck
npm test
npm pack --dry-run
會話離線分析(需顯式指定日誌文件):
node scripts/analyze-session.mjs --help
node scripts/analyze-session.mjs /path/to/session.v4.jsonl.zstd
可選 debugEnabled 等調試配置僅在 README 中說明,默認關閉;啓用時日誌含敏感提示內容,需自行管控。
安裝與啓用¶
README 記載的安裝方式爲在確認構建通過後,將本插件目錄手動加入目標 profile,而非憑倉庫名拼接遠程 add 命令:
dsh plugin --profile web add .
Desktop 環境將 --profile web 換爲 --profile desktop。直接調用插件時默認 enabled: false;通過 bundle 安裝時需顯式啓用。
cordis.patch.yml 或 profile 覆蓋示例(注意:config 整體替換、不與 bundle 深合併,覆蓋項須寫全):
enabled: true
systemPromptSection: false # 默認;設爲 true 啓用系統提示詞通道
contextReminder: true # 默認;所有 Agent(含子智能體),不限 preset
presetIds: [standard] # 默認;只篩選系統提示詞通道的目標根 Agent
若覆蓋 profile 時省略 enabled: true,會回落爲默認 false,插件靜默不注入。presetIds 爲精確 ID 列表,只控制系統提示詞通道;CONTEXT 提醒仍覆蓋 PTC、minimal、creator 等 preset。不要把 PTC 加入 presetIds,以免對專用執行模式施加額外系統指導。
安裝前請閱讀倉庫源碼與 MIT 許可證;插件在當前 DSH 進程權限下運行,與任何第三方插件相同,需自行評估信任邊界。
典型用法與驗收¶
- 按上文完成
npm ci/build與dsh plugin ... add .,在配置中設置enabled: true及所需通道開關。 - 在 Web 端打開 Plugins → 本插件,按需切換
contextReminder與systemPromptSection。 - 驗收 CONTEXT 通道:會話中出現
source.kind爲parallel-tools-scheduling的消息。 - 驗收系統提示詞通道(若啓用):新會話的
system/message中出現Tool-call scheduling:相關片段。 - 評估任務時區分「已就緒但未合批」「尚未發現其他工作」「存在真實依賴」三類情況,避免僅憑單輪單調用或同輪多調用比例斷言收益。
適用場景與注意¶
適合誰:已在 DSH 0.2.1-rc.3 及以上使用標準或子 Agent 工具調用、希望用提示減少獨立調用的模型往返,且接受「遵循度不確定、無費用保證」的開發者。
不適合的期望:需要確定性 DAG 執行器、自動費用優化、或每輪強制多調用的場景。README 強調成功注入不等於模型遵循,也不等於 runtime 已併發或任務更快更省。
版本與發佈:0.2.1-rc.7 跟隨 DSH 0.2.1 版本線,RC 序號獨立遞增;npm 預發佈默認 next tag。源碼更新後建議重啓宿主加載新模塊;插件重載會爲仍存活的目標 Agent 補掛 section 並覆蓋提醒通道。
參考邊界:思路借鑑 bash-agent issue、Anthropic 並行調用指南、LLMCompiler 與 Superpowers 等資料,但本插件僅爲 DSH 編寫的簡短提示文本,不移植外部執行器。生命週期測試只證明接入與清理正確,不證明更快或更省。
結尾¶
dsh-parallel-tools-prompt 在不動宿主調度與安全的前提下,用 CONTEXT 與可選系統提示詞傳遞「就緒且互不依賴則同輪合批」的調度指引,並附帶設置 UI 與 skill 可複製規則。若需在本地啓用,以 README 中的構建與 dsh plugin --profile <name> add . 爲準,並用上述驗收方式確認注入路徑。