DeepSeek Harness (DSH) 採用“一切皆插件”的架構,智能體在開發流程中常需調用 Git 進行版本控制。直接使用 shell 命令(如 bash)存在隱患:輸出格式受用戶配置(如 pager、color、quotepath)影響,且寫入操作(如 commit)缺乏統一的權限控制。
dsh-zcode-git 是一個爲 DSH 智能體設計的結構化 Git 工具集,旨在替代 shell 調用。它將 git 操作封裝爲可預測的工具函數,輸出格式固定,且所有寫操作均通過 Harness 的批准服務(approval service)執行,確保安全性。
核心功能¶
該插件提供以下六種工具,均默認讀取當前會話工作目錄下的倉庫:
-
git_status(只讀)
- 獲取當前分支、上游分支信息。
- 返回領先/落後、暫存/修改/衝突/未跟蹤/忽略的文件列表。
-
git_diff(只讀)
- 生成統一格式的差異(unified diff)。
- 返回每文件的行數統計。
- 支持按路徑(paths)、暫存或上下文行數(contextLines)進行作用域限定。
-
git_log(只讀)
- 返回提交記錄,包含哈希值、作者、日期和摘要。
- 支持通過
limit限制數量,或通過paths和revision縮小查詢範圍。
-
git_branch(讀寫)
- 支持
list(列出)、create(創建)、switch(切換)和delete(刪除)。 - 寫入操作必須經過批准。
- 支持
-
git_commit(寫入)
- 可選暫存指定路徑,然後提交信息。
- 寫入操作必須經過批准。
-
git_stash(讀寫)
- 支持
list(列出)、push(暫存)、pop(應用並刪除)、apply(應用)和drop(刪除)。 - 寫入操作必須經過批准。
- 支持
安裝與啓用¶
安裝該插件會自動更新 Harness 的配置。
dsh plugin --profile web add dsh-zcode-git
安裝後需重啓 Harness,因爲插件是通過配置文件加載的。
系統要求與注意事項¶
-
環境依賴
- 系統路徑中必須存在
git二進制文件。 - DeepSeek Harness 版本需滿足:
>=0.1.5-rc.2 <0.1.6-0 || >=0.1.6-alpha.1 <0.2.0-0 || >=0.1.7-alpha.1 <0.2.0-0。 - Node.js 版本需
>=20。
- 系統路徑中必須存在
-
執行機制
- 插件不依賴 shell,而是通過
argv數組直接調用 git,避免 shell 轉義和注入風險。 - 字段分隔符爲
%x1f(文件分隔符),而非 ZCode 使用的%x00。
- 插件不依賴 shell,而是通過
-
輸出限制
- 爲了保持 Prompt 形狀穩定,
git_status輸出會被截斷至 2k 字符。
- 爲了保持 Prompt 形狀穩定,
-
已知缺陷
- 當會話當前工作目錄(CWD)位於倉庫子目錄時,插件可能返回空結果,因爲倉庫根目錄相對路徑未被正確處理。
生態與鏈接¶
dsh-zcode-git 是 DeepSeek 生態中一個專注於 Git 版本控制的結構化工具,遵循 MIT 許可證。如需查看源碼、提交問題或查看目錄頁,請訪問: