dsh-parallel-tools-prompt:用依賴感知提示減少工具調用往返

前言

在 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 提醒:

  1. contextReminder(默認 true)
    通過 agent/pre-step 在下一步驟追加一條 CONTEXT 消息,source.kind 爲 parallel-tools-scheduling,寫入會話歷史並渲染爲 CONTEXT 塊,機制與宿主 time-context 相同。覆蓋所有 Agent(含子智能體)、所有 preset 以及無 preset 的會話;presetIds 不限制此通道。每個 Agent 最多交付一次,已有或繼承的提醒不會重複注入。提醒進入歷史,卸載不會刪除歷史中的內容。

  2. 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 進程權限下運行,與任何第三方插件相同,需自行評估信任邊界。

典型用法與驗收

  1. 按上文完成 npm ci / build 與 dsh plugin ... add .,在配置中設置 enabled: true 及所需通道開關。
  2. 在 Web 端打開 Plugins → 本插件,按需切換 contextReminder 與 systemPromptSection。
  3. 驗收 CONTEXT 通道:會話中出現 source.kind 爲 parallel-tools-scheduling 的消息。
  4. 驗收系統提示詞通道(若啓用):新會話的 system/message 中出現 Tool-call scheduling: 相關片段。
  5. 評估任務時區分「已就緒但未合批」「尚未發現其他工作」「存在真實依賴」三類情況,避免僅憑單輪單調用或同輪多調用比例斷言收益。

適用場景與注意

適合誰:已在 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 . 爲準,並用上述驗收方式確認注入路徑。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜