DeepSeek Harness(DSH)採用插件化架構,開發者常需要在 Agent 會話中執行 Git 操作或依賴管理命令。直接調用 Shell 腳本容易導致返回格式不統一,且缺乏類型約束。下面介紹 dsh-engineer-tools,它將常用工程命令封裝爲結構化的 Host Tool,讓 Agent 能夠以更聚焦、更安全的方式執行這些任務。
插件定位¶
dsh-engineer-tools 是由 bycall 維護的一個 DSH 插件,旨在爲工程場景提供工具支持。它包含一個作用域化的 Git 運行器和包管理器運行器,並提供了易於擴展的工具模板。插件遵循 MIT 協議,代碼爲純 ESM,無構建步驟。
核心功能¶
Git 工具¶
該工具允許 Agent 在會話工作區執行 git 子命令,支持 status、diff、log、branch、show 等。工具會返回 stdout、stderr 和 exitCode,便於後續邏輯處理。
包管理器工具¶
支持 npm、pnpm、yarn、bun 四種主流包管理器。可執行生命週期命令(如 install、outdated、audit)以及開發腳本(如 test、build、lint)。當指定 manager: auto 時,工具會根據 lockfile 自動識別當前項目使用的包管理器。
運行機制¶
所有工具以 Agent 權限運行命令,嚴格受 DSH 沙箱與審批策略限制,確保執行過程可控。
安裝與啓用¶
- 安裝插件
使用官方安裝命令將插件添加到指定 profile(示例中使用 web profile):
dsh plugin --profile web add dsh-engineer-tools
也可以通過本地目錄源安裝:
dsh plugin --profile web add /path/to/dsh-engineer-tools
-
生效
安裝完成後,需要重啓 DSH.app,Agent 即可在後續對話中調用git和dev工具。 -
卸載
如需移除插件:
dsh plugin --profile web remove dsh-engineer-tools
典型用法¶
安裝生效後,Agent 可以直接調用封裝好的工具。
* 調用 git 工具時,只需傳入具體的 git 子命令,如 git status 或 git log -1。
* 調用 dev 工具時,可指定包管理器或使用 manager: auto 自動識別。例如執行構建:dev build。
適用場景與技術注意¶
- 適用場景:適用於需要在 DSH Agent 會話中頻繁進行 Git 操作或依賴管理的軟件工程場景。
- 技術細節:
- 插件嚴格遵循
@deepseek-ai/dsh-tool-bash的註冊範式。 - 依賴聲明中
peerDependencies的版本範圍必須逐條列出,不能依賴寬鬆匹配(如>=),否則可能破壞模塊級 Symbol 標記,導致運行時錯誤。 - 插件通過 dsh 配置中的
bundle.patch應用 cordis 補丁。
- 插件嚴格遵循
dsh-engineer-tools 通過標準化接口簡化了工程命令的調用流程。開發者可以參考其源碼結構,快速擴展更多符合 DSH 規範的工具。