前言¶
DeepSeek Harness (DSH) 採用插件化架構,旨在將各種能力注入到智能體運行時中。對於需要管理自託管代碼倉庫的開發者來說,直接訪問 Gitea 或 Forgejo 等實例通常需要額外的 REST API 封裝。maxmilian/dsh-forge 插件正是爲了解決這個問題而生,它爲 DSH 提供了與 Gitea/Forgejo REST API 對接的工具集,讓智能體可以直接讀取倉庫、Issue、Pull Request 以及 Actions 的上下文。
此插件由用戶 maxmilian 維護,採用 MIT 許可證。
核心功能¶
該插件通過 REST API 擴展了 DSH 的能力,具體包括:
- 實例信息:檢查配置的 Gitea 或 Forgejo 實例版本。
- 倉庫與搜索:列出當前認證用戶擁有的倉庫;跨可見倉庫搜索 Issue 和 Pull Request。
- Issue 與 PR:按倉庫和索引讀取單個 Issue 或 PR;讀取 PR 的 Diff 和變更文件元數據。
- Actions 集成:列出倉庫的 Actions 運行與作業,並讀取作業的純文本日誌。
- 本地化:支持英文、繁體中文、簡體中文和日文的運行時工具元數據本地化。
- 安全與限流:轉發取消請求,強制執行請求超時和響應大小限制。
- 並行安全:v0.3 版本的工具被設計爲只讀,並確保安全地並行執行。
安裝與啓用¶
安裝推薦使用 npm 包,命令如下:
dsh plugin --profile web add @maxhsu/dsh-forge
如果需要從本地檢出安裝,可以使用:
dsh plugin --profile web add .
從預構建的發佈包安裝:
dsh plugin --profile web add https://github.com/maxmilian/dsh-forge/releases/latest/download/dsh-forge.tgz
安裝完成後,需要在配置文件中設置訪問憑證。建議使用環境變量,避免將 Token 直接寫入配置文件。
典型用法¶
在調用插件提供的工具前,需要配置環境變量 DSH_FORGE_URL 和 DSH_FORGE_TOKEN。
export DSH_FORGE_URL='https://code.example.com'
export DSH_FORGE_TOKEN='replace-with-a-read-only-token'
dsh --profile web
其中 DSH_FORGE_URL 可以包含子路徑(例如 https://example.com/git),插件會自動在末尾追加 /api/v1。如果未配置 URL,調用工具時會返回可操作的配置錯誤,而不會阻止 DSH 配置文件的啓動。
適用場景與注意¶
- 兼容性:DeepSeek Harness 處於開發者預覽階段。該插件已通過測試,兼容
@deepseek-ai/dsh-tools 0.1.7-rc.2。 - 操作模式:當前版本(v0.3)的所有工具均爲只讀操作,不會創建、更新、合併、重運行或刪除遠程資源。
- 數據限制:列表類型的端點會將
limit參數限制爲 50,以保持模型上下文大小可控。 - 日誌格式:Diff 和日誌響應保持純文本格式,以避免 JSON 轉義帶來的複雜性。
總結¶
maxmilian/dsh-forge 爲 DeepSeek Harness 提供了管理自託管 Gitea 和 Forgejo 實例的標準化工具鏈。它通過 REST API 實現了從版本檢查到 Actions 日誌讀取的完整閉環,適合需要在本地代碼倉庫中執行代碼審查或自動化運維的智能體場景。