前言¶
在 DeepSeek Harness(DSH)環境中開發智能體時,讀取 GitHub 上的代碼、Issue 或 PR 是常見需求。直接在沙箱中通過 Shell 調用 gh CLI 或 curl 往往受限於 TLS 證書或代理配置,容易導致請求失敗或消耗不必要的 Token。
dsh-github-router 插件旨在解決這個問題。它將 GitHub 的訪問邏輯封裝在插件內部,提供了一套結構化的工具,讓 Agent 可以通過簡單的參數調用獲取數據,而無需處理底層的網絡異常。
插件簡介¶
這是一個 DeepSeek Harness 插件,用於爲智能體提供只讀的 GitHub 訪問能力。它由 AngelosZou 維護,目前開源。
核心定位: 代理工具集,解決沙箱環境下的 GitHub 網絡訪問問題。
許可協議: MIT
核心價值: 將 API 調用、gh CLI 命令、Git 協議、網頁 HTML 抓取等多種路由方式統一在工具內部處理,確保訪問穩定。
核心功能¶
插件提供以下工具和路由機制:
工具集
- github_probe:探測當前主機可用的 GitHub 訪問路由及其性能。
- github_pr:獲取 PR 的完整信息,包括元數據、討論、審查、提交和變更文件。
- github_issue:獲取 Issue 的元數據、正文、標籤和評論。
- github_file:獲取指定分支或標籤下的文件內容或目錄列表。
- github_api:提供 GET 請求的逃逸接口,用於調用任意 GitHub API 端點。
路由機制
插件支持在工具內部進行路由選擇,包括:
- API (api.github.com)
- gh CLI
- Git 協議
- 網頁 HTML
- 鏡像站
此外,還包含 github-router 技能,用於管理這些路由邏輯。
安裝與啓用¶
在安裝前,請確保環境滿足依賴要求:Node.js >= 22.19。
使用官方安裝命令添加插件:
dsh plugin --profile web add dsh-github-router
安裝完成後,重啓 DSH 後端,即可在 Agent 的工具列表中看到 github_probe、github_pr、github_issue、github_file、github_api 以及 github-router 技能。
典型用法¶
以下是該插件提供的具體調用示例:
# 探測當前可用的路由
github_probe
# 獲取指定 PR 的完整信息
github_pr { owner: "o", repo: "r", number: 12 }
# 獲取 PR 信息,並指定本地倉庫路徑以讀取提交和差異
github_pr { owner: "o", repo: "r", number: 12, localRepo: "C:/src/r" }
# 獲取指定 Issue
github_issue { owner: "o", repo: "r", number: 34 }
# 獲取指定分支下的文件內容
github_file { owner: "o", repo: "r", path: "src/index.js", ref: "main" }
# 調用 GitHub API
github_api { path: "/repos/o/r/commits", query: { per_page: 5 } }
注意事項與適用場景¶
功能限制
- 該插件僅提供只讀能力,不包含任何寫操作、推送或評論功能。
- 代碼託管在 <DSH_HOME>/storages/dsh-github-router/ 下,本地克隆的倉庫僅通過只讀命令(如 git log、diff、show)訪問,不會修改用戶倉庫。
網絡與配置
- 匿名 API 使用受到 IP 限制(每小時 60 次)。建議配置 GitHub Token 以提升限額。
- 鏡像站功能默認關閉,僅在用戶明確配置後啓用。
- 插件提供框架聲明的設置頁面,可配置 Token、代理、超時時間、緩存策略等。
適用對象
- 需要在 DSH 環境中穩定獲取 GitHub 代碼或數據的開發者。
- 受限於代理或 TLS 配置,無法直接在 Agent Shell 中訪問 GitHub 的場景。
總結¶
dsh-github-router 通過將複雜的網絡路由邏輯封裝在工具內部,爲 DeepSeek Harness Agent 提供了穩定、結構化的 GitHub 讀取能力。如果你需要讓智能體自動分析代碼倉庫或 Issue,這是一個可以直接集成的解決方案。