DSH(DeepSeek Harness)的核心理念是“一切皆插件”。在開發智能體工作流時,Agent 往往需要先檢查代碼的當前狀態、查看歷史提交或分析衝突,而此時並不需要執行 Commit、Push 或文件修改操作。dsh-plugin-git-inspect 專門解決這一場景,提供了一套只讀的 Git 檢查工具。
插件定位¶
這是一個面向 DeepSeek Harness 的只讀 Git 檢查工具集。它不屬於官方發行版,而是由開發者 Wanbinyu 維護的獨立社區插件。插件通過 Harness 的 subprocess 服務調用系統的 git 命令,不執行 Shell,保證了環境的安全性。
核心功能¶
插件註冊了十個只讀工具,覆蓋了代碼審查的常見需求:
- git_status:查看當前分支和工作區的狀態。
- git_diff:查看工作區的 diff 或暫存區的 diff。
- git_diff_stat:以文件爲單位查看 diff 摘要。
- git_log:以緊湊的一行格式查看最近的提交。
- git_show:查看指定提交、標籤或其他 revision。
- git_refs:查看最近的本地分支、遠程跟蹤分支和標籤。
- git_conflicts:列出尚未解決的合併衝突文件。
- git_blame:查看指定文件一段行號範圍的提交歸屬。
- git_stash_list:查看最近的 stash,不創建或應用 stash。
- git_worktree_list:以穩定格式查看已註冊的 worktree。
安裝與啓用¶
在已安裝 Harness CLI 的環境中,可以通過以下命令將插件加入 web profile:
dsh plugin --profile web add https://github.com/Wanbinyu/dsh-plugin-git-inspect/releases/download/v0.3.6/dsh-plugin-git-inspect-0.3.6.tgz
安裝後重啓 dsh,插件會自動生效。如果宿主項目需要手動控制組合層,也可以通過 npm install github:Wanbinyu/dsh-plugin-git-inspect 安裝包,並在 Cordis 組合配置中添加 git-inspect 服務。
典型用法¶
工具調用以 JSON 格式傳遞給 DSH。以下是幾個典型的調用示例:
查看當前分支狀態:
{"name":"git_status","arguments":{}}
查看 src/index.ts 的暫存區變更:
{"name":"git_diff","arguments":{"staged":true,"path":"src/index.ts"}}
查看最近 10 條提交記錄:
{"name":"git_log","arguments":{"maxCount":10,"path":"src/index.ts"}}
查看 HEAD 提交的具體內容:
{"name":"git_show","arguments":{"revision":"HEAD","path":"src/index.ts"}}
查看衝突文件:
{"name":"git_conflicts","arguments":{}}
分析代碼歸屬(從第 20 行開始,共 30 行):
{"name":"git_blame","arguments":{"path":"src/index.ts","startLine":20,"lineCount":30}}
環境要求與限制¶
運行該插件需要滿足以下環境條件:
- 操作系統:Windows、macOS 或 Linux。
- Node.js 版本:需大於等於 22.19.0。
- 系統環境:宿主進程的 PATH 中必須能找到
git可執行文件。 - 依賴服務:宿主 Harness 組合需提供
@deepseek-ai/dsh-tools、@deepseek-ai/dsh-system-prompt、@deepseek-ai/dsh-subprocess及其實現(例如@deepseek-ai/dsh-subprocess-local)。
在安全性與行爲上,插件做了以下限制:
- 只讀操作:不提供 commit、push、reset、stash、切換分支或文件修改能力。
- 無 Shell 執行:通過 Harness 的 subprocess 服務解析
git,使用固定的 argv 啓動進程,用戶傳入的路徑放在 Git 的--pathspec 分隔符之後,不經過 Shell 展開。 - 輸出控制:關閉 pager、顏色、外部 diff 等交互功能,保證輸出格式穩定。輸出達到上限時會明確標記爲截斷。
- 錯誤處理:Git 返回非零退出碼、目錄不是倉庫或子進程異常終止時,插件會返回結構化工具錯誤。
總結¶
dsh-plugin-git-inspect 爲 DSH 插件生態提供了一個安全、穩定的 Git 只讀檢查層。它通過限制權限和嚴格的輸入處理,使得智能體在審查代碼歷史、分析衝突或查看狀態時更加可靠。該項目採用 MIT 許可證,屬於獨立社區插件。
- GitHub 倉庫: https://github.com/Wanbinyu/dsh-plugin-git-inspect
- 插件目錄: https://www.skillhub.cn/plugins/Wanbinyu/dsh-plugin-git-inspect