前言¶
DeepSeek Harness (DSH) 採用插件化架構,開發者可以通過插件擴展智能體的能力。在本地開發或調試時,頻繁查詢 GitHub 倉庫、創建 Issue 或將倉庫克隆到工作區是常見需求。tkwkeven/dsh-tool-github 插件爲 DSH 提供了 GitHub REST API 支持,註冊了 github_* 工具集,使智能體能夠綁定賬號、查詢數據、創建 Issue/PR 以及克隆倉庫。此外,它還提供了一個瀏覽器端的 GitHub 面板。
核心功能¶
該插件主要提供以下能力:
- 賬號綁定:通過
github_bind驗證並存儲個人訪問令牌(PAT),後續工具自動使用該身份。 - GitHub API:支持倉庫元數據查詢 (
github_repo)、搜索 (github_search)、Issue/PR 管理 (github_issues,github_prs,github_create_issue,github_create_pr) 以及文件內容讀取 (github_content)。 - 工作區管理:支持將倉庫克隆到本地 (
github_workspace_add) 並註冊爲 DSH 工作區,使其出現在工作區選擇器中。 - Web GUI 面板:在 DSH Web 界面的側邊欄提供一個 GitHub 面板,用於查看狀態、綁定賬號、添加工作區等。
安裝與啓用¶
在插件目錄下執行以下命令進行安裝:
dsh plugin --profile web add .
安裝後需要重啓 Web GUI (dsh web) 才能加載新的客戶端組件,GUI 客戶端插件發現機制僅在進程啓動時運行。
使用方法¶
智能體可以直接調用以下工具或通過自然語言交互:
github_bind:綁定 GitHub 賬號(需輸入 PAT)。github_whoami:查看當前登錄賬號。github_workspace_add <owner> <repo> [branch]:克隆倉庫並添加爲工作區。github_workspace_list:列出已克隆的工作區。github_repo <owner>/<repo>:獲取倉庫信息(如 star 數)。github_search <query>:搜索倉庫或代碼。
工作區與憑證機制¶
- 克隆方式:
github_workspace_add優先使用git clone,當 Git TLS 不可用時回退到 codeload tarball 下載。 - 憑證解析:令牌來源優先級爲:憑證存儲 -> 插件配置 -> 環境變量 (
GITHUB_TOKEN)。github_bind將令牌存儲在 DSH 的憑證 seam (ctx.credentials) 中,更改憑證無需重啓進程。
Web GUI 面板¶
安裝並重啓 dsh web 後,側邊欄會出現 GitHub 圖標。點擊面板中的功能(如“綁定賬號”、“添加工作區”)會通過 /github-* 命令與主機通信。這意味着面板不直接持有令牌或訪問 GitHub API,安全性較高。
配置¶
插件支持通過配置文件調整參數(如 ~/.dsh/cordis.patch.yml 或 profiles/<name>/cordis.patch.yml):
- id: tool-github
config:
maxResults: 20
workspaceRoot: D:\github-workspaces
總結¶
該插件通過標準化的 API 工具和 Web 面板,將 GitHub 集成到了 DSH 工作流中,適合需要頻繁與 GitHub 交互的開發者。