dsh-git-plugins:DeepSeek Harness 的 Git 與源碼控制插件套件

前言

DSH 的插件理念是「一切皆插件」:把原本分散在腳本、CLI 或人工流程裏的能力,變成 DSH 代理可以直接調用的工具。對智能體開發者來說,一個常見需求是:讓代理不只是回答問題,還能處理本地倉庫、提交變更、操作託管平臺上的 pull request / MR、issues、releases、CI/CD 和安全告警。

下面介紹 sakthiveltofficial/dsh-git-plugins。它是一個 DSH 插件套件,提供本地 Git 操作、GitHub / GitLab / Bitbucket Cloud / Azure DevOps / Gitea 平臺操作,以及一套跨會話的自演進記憶。

這是什麼

sakthiveltofficial/dsh-git-plugins 由 sakthiveltofficial 維護,許可證爲 MIT。它面向 DeepSeek Harness(DSH),爲代理提供一組模型工具,用於本地倉庫操作、託管平臺操作和跨會話記憶。

已覈實的運行要求如下:

  • DeepSeek Harness
  • Node.js >= 20
  • git CLI 在 PATH 中

倉庫 package.json 版本爲 0.1.2,bundle patch 配置爲:

./cordis.patch.yml

核心能力

本地倉庫操作

插件覆蓋常見本地 Git 操作,包括:

  • clone
  • branch
  • checkout
  • commit
  • push
  • pull
  • stash
  • tag
  • merge
  • rebase
  • diff
  • blame
  • log
  • 代碼搜索
  • 文件搜索

這些能力依賴 PATH 中的 git CLI,而不是在插件內重新實現一套完整的 Git 行爲。

託管平臺操作

插件支持以下託管平臺的常見源碼控制對象:

  • GitHub
  • GitLab
  • Bitbucket Cloud
  • Azure DevOps
  • Gitea

可按平臺支持情況操作:

  • pull requests / MRs
  • issues
  • releases
  • CI/CD
  • 安全告警

對於某平臺不支持的操作,插件會以 GIT_UNSUPPORTED 失敗,而不是靜默返回空結果。

模型工具

插件暴露以下模型工具:

git_repo
git_inspect
git_pr
git_issues
git_release
git_security
git_ci
git_memory

安裝並啓用後,可以用這句話驗證工具是否進入代理可用列表:

what git tools do you have?

預期應列出上面的 8 個工具。

自演進記憶

git_memory 提供跨會話持久化記憶,主要能力包括:

  • 跨會話持久化
  • 自動捕獲工具失敗簽名
  • 對重複事件去重
  • 持久化前清除密鑰
  • 每一步注入有界摘要
  • 刪除過時條目

如果某條記憶已經過時,可以使用:

git_memory forget

刪除對應記憶條目。

策略增強

插件在操作安全上增加了若干約束:

  • 破壞性操作走 host approval service
  • 變更遵守 sandbox policy
  • 支持 sandbox_permissions escalation
  • 限流回退
  • 讀緩存

這意味着代理可以執行更完整的源碼控制流程,但關鍵操作不會被直接放行。

安裝與啓用

1、先確認環境中有 git 和可用的 Node.js:

git --version
node --version

這裏需要 git CLI 在 PATH 中,並且 Node.js 版本滿足 >= 20。

2、安裝插件:

dsh plugin --profile web add github:sakthiveltofficial/dsh-git-plugins

3、安裝後重啓 profile,或重啓 DSH 進程。無需手動編輯 preset;host rows 由 dsh.bundle.patch 自動插入。

4、驗證配置中是否出現 Git 相關項:

dsh --profile web --dump-config | grep -i git

5、再詢問代理:

what git tools do you have?

如果代理能列出 git_repo、git_inspect、git_pr、git_issues、git_release、git_security、git_ci、git_memory,說明工具已經可用。

典型用法

自然語言驅動 Git 工作流

安裝後,可以用自然語言讓代理執行一串 Git 操作。示例:

Clone the repo, check out a feat/ branch, commit these changes and open a PR against main; squash-merge it and create a v1.2.0 release.

示例中的 feat/、main、v1.2.0 都只是佔位值,實際使用時應替換爲你自己的分支、目標分支和版本號。

配置平臺憑據

平臺操作通過 DSH 的憑據機制解析。配置中只保存 env-var references,不保存令牌本身;令牌會按操作解析。

可按平臺使用以下環境變量,或通過 ctx.credentials sources 配置:

GITHUB_TOKEN
GITLAB_TOKEN
BITBUCKET_APP_PASSWORD
AZURE_DEVOPS_PAT
GITEA_TOKEN

幾點行爲需要確認:

  • 公共倉庫可以匿名訪問
  • 未設置憑據時,寫操作會以 GIT_AUTH_FAILED 失敗
  • Bitbucket 需要額外 username 配置
  • GitLab 的 baseUrl 可配置
  • Gitea 的 baseUrl 必填

管理記憶

git_memory 會自動記錄工具失敗簽名,並在後續命中相似模式時提供摘要。由於記憶會跨會話保留,長期使用時需要清理過時條目。

刪除過時記憶時,使用:

git_memory forget

適用場景與注意

適合以下場景:

  • 使用 DSH 代理處理本地倉庫的 clone、branch、commit、push、pull、merge、rebase 等操作
  • 需要操作 GitHub、GitLab、Bitbucket Cloud、Azure DevOps 或 Gitea 上的 pull requests / MRs、issues、releases、CI/CD 和安全告警
  • 希望代理跨會話記住工具失敗簽名和項目約定
  • 希望破壞性操作進入 host approval service,而不是直接執行

注意以下幾點:

  1. 插件會訪問本地 Git 倉庫和託管平臺接口,因此會運行在當前 DSH 進程權限內。
  2. 安裝前應檢查源碼和 MIT 許可證,並確認自己允許代理執行哪些 Git 與平臺操作。
  3. 令牌不會存儲在配置中,僅保存 env-var references,並按操作解析。
  4. 未設置憑據時,匿名訪問可能適用於公共倉庫讀取,但寫操作會以 GIT_AUTH_FAILED 失敗。
  5. 不支持的平臺操作會以 GIT_UNSUPPORTED 失敗,而不是靜默返回空。
  6. 記憶在持久化前會清除 secrets、tokens、keys、private-key blocks、username paths。

鏈接與查找

GitHub 倉庫:

https://github.com/sakthiveltofficial/dsh-git-plugins

插件名稱:

sakthiveltofficial/dsh-git-plugins

如果你使用 DSH 插件目錄,可按該名稱查找並覈對當前可用版本。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜