前言¶
在 DeepSeek Harness(DSH)的開發工作流中,Agent 常常需要獲取源代碼或二進制文件。通常的第一反應是使用 git clone,但這要求宿主環境安裝 git 二進制文件,且涉及大量的網絡傳輸。下面介紹 dsh-zgit 插件,它通過直接調用 Forge 的 HTTPS 接口來替代 git 操作,旨在提升 DSH Agent 的運行效率。
核心功能¶
dsh-zgit 專注於“讀”操作,提供了一套無需 git 二進制文件的獲取方案。
-
源代碼獲取
插件直接通過 HTTPS 下載 Forge 的歸檔文件(如 tar.gz 或 zip),解壓至工作區的模擬檢出目錄(.zerogit)。該目錄模擬了 git checkout 的結構,支持查看和狀態檢查。 -
二進制發佈下載
支持從 GitHub、GitLab、Gitee 的 Release 頁面下載二進制資產。下載過程包含 SHA256 校驗,確保文件完整性。 -
Git 讀取命令模擬
插件重新實現了 git 的部分讀取命令,包括:zgit_ls_remote:獲取遠程分支和標籤。zgit_show:獲取指定引用下的單個文件內容。zgit_ls_tree:列出指定引用下的文件結構。zgit_log:查看最近的提交記錄。zgit_diff:對比兩個引用之間的差異。zgit_status:檢查模擬檢出目錄與遠程的差異。
-
通用下載工具
zgit_download可以下載任何直接 URL(如鏡像站點或工具鏈),支持字節上限限制和 SHA256 校驗,防止濫用。
安裝與啓用¶
安裝過程需要在 DSH 的終端中執行。該插件託管在 npm 上,支持通過 profile 安裝。
dsh plugin --profile web add dsh-zgit
安裝完成後,插件會在 DSH 環境中註冊對應的命令和 /zgit 人類平面命令入口。
典型用法¶
插件支持多種倉庫引用格式,包括 owner/repo、owner/repo@ref、完整的 HTTPS URL 以及 SSH URL。
命令行工具示例:
* 克隆源代碼並切換到特定分支:
zgit_clone owner/repo@ref
- 獲取最新的二進制發佈:
zgit_fetch_release
- 查看當前模擬工作區的狀態:
zgit_status
- 下載任意 URL 的文件(限制 1GB,校驗 SHA256):
zgit_download https://example.com/file.tar.gz
人類平面命令(Web UI / TUI):
直接輸入 /zgit 並選擇對應操作(clone, get, show, ls, log, diff, resolve, status, download),無需通過模型傳遞指令。
適用場景與注意¶
適用場景:
* DSH 運行環境未安裝 git 二進制文件。
* 需要嚴格限制 Agent 的下載流量和存儲空間。
* 需要 Agent 直接獲取二進制發佈資產進行校驗或部署。
注意事項:
* 只讀模式:插件不支持寫入、提交或推送操作,僅限代碼獲取。
* 安全性:
* 工作區寫入被限制在調用會話的工作區內,防止路徑逃逸。
* 所有下載均受字節上限限制。
* 下載的存檔文件僅被解壓,不會被執行。
* 許可證:該插件採用 MIT 許可證。
總結¶
dsh-zgit 提供了一種輕量級的替代方案,讓 DSH Agent 能夠在無 git 環境下高效獲取代碼和資源。通過模擬 git 的讀取操作,它在保持安全性的同時簡化了工作流。更多細節可參考插件目錄或源碼倉庫。