DeepSeek Harness (DSH) 採用插件化架構,智能體在會話中需要操作本地代碼倉庫時,往往缺乏直接、安全的工具支持。手動調用 shell 命令風險較高,且依賴遠程接口會增加延遲。爲了解決這個問題,我們需要一套原生的、安全的本地 Git 工具集。
dsh-git-tools 是由 Shyboy0499 維護的 DeepSeek Harness 插件。它提供四個本地 Git 工具(git_status、git_diff、git_log、git_commit),讓智能體能夠在會話工作區(session workspace)內直接檢查倉庫狀態和創建提交,不依賴 UI 或遠程服務,完全在 Host 端運行。
核心功能¶
- git_status:檢查分支、ahead/behind 狀態,以及 staged / unstaged / untracked 文件。
- git_diff:查看變更。支持 staged 或 unstaged,統計摘要或完整補丁,可選路徑過濾。
- git_log:列出最近提交,格式爲
{ hash, author, date, subject }。 - git_commit:暫存指定路徑(或全部)並提交,必須提供消息。
安裝¶
安裝前請確保環境已安裝 git。
dsh plugin --profile web add dsh-git-tools
典型用法¶
- git_status:檢查工作樹和分支狀態。
- git_diff:查看變更。
staged對比索引,statOnly: true(默認)返回統計摘要,statOnly: false返回完整補丁,path用於過濾單個文件。 - git_log:列出最近提交。
count默認爲 10(最大 100),path用於過濾文件。 - git_commit:創建提交。
message是必需的(非空)。使用paths暫存特定文件,或使用all: true暫存所有文件。它從不隱式暫存文件。
適用場景與注意¶
該插件適合需要在 DSH 會話中執行常規 Git 操作(查看狀態、對比、查看歷史、提交代碼)的場景。
- 安全性:所有 Git 調用通過
execFile執行,參數作爲數組傳遞,因此沒有 shell 插值,用戶/模型控制值是注入安全的。 - 操作限制:
git_commit需要顯式消息且從不隱式暫存文件。核心範圍內沒有破壞性操作(如--amend、--force、rebase、reset)。 - 工作目錄:所有工具接受可選的
cwd(默認爲會話工作區)。
總結¶
dsh-git-tools 解決了智能體在 DSH 環境下直接操作 Git 的痛點,提供了安全、原生的接口。插件列表及源碼可參考目錄頁與 GitHub 倉庫。