DeepSeek Harness 插件:dsh-plugin-git-inspect

DSH(DeepSeek Harness)的核心理念是“一切皆插件”。在开发智能体工作流时,Agent 往往需要先检查代码的当前状态、查看历史提交或分析冲突,而此时并不需要执行 Commit、Push 或文件修改操作。dsh-plugin-git-inspect 专门解决这一场景,提供了一套只读的 Git 检查工具。

插件定位

这是一个面向 DeepSeek Harness 的只读 Git 检查工具集。它不属于官方发行版,而是由开发者 Wanbinyu 维护的独立社区插件。插件通过 Harness 的 subprocess 服务调用系统的 git 命令,不执行 Shell,保证了环境的安全性。

核心功能

插件注册了十个只读工具,覆盖了代码审查的常见需求:

  • git_status:查看当前分支和工作区的状态。
  • git_diff:查看工作区的 diff 或暂存区的 diff。
  • git_diff_stat:以文件为单位查看 diff 摘要。
  • git_log:以紧凑的一行格式查看最近的提交。
  • git_show:查看指定提交、标签或其他 revision。
  • git_refs:查看最近的本地分支、远程跟踪分支和标签。
  • git_conflicts:列出尚未解决的合并冲突文件。
  • git_blame:查看指定文件一段行号范围的提交归属。
  • git_stash_list:查看最近的 stash,不创建或应用 stash。
  • git_worktree_list:以稳定格式查看已注册的 worktree。

安装与启用

在已安装 Harness CLI 的环境中,可以通过以下命令将插件加入 web profile:

dsh plugin --profile web add https://github.com/Wanbinyu/dsh-plugin-git-inspect/releases/download/v0.3.6/dsh-plugin-git-inspect-0.3.6.tgz

安装后重启 dsh,插件会自动生效。如果宿主项目需要手动控制组合层,也可以通过 npm install github:Wanbinyu/dsh-plugin-git-inspect 安装包,并在 Cordis 组合配置中添加 git-inspect 服务。

典型用法

工具调用以 JSON 格式传递给 DSH。以下是几个典型的调用示例:

查看当前分支状态:

{"name":"git_status","arguments":{}}

查看 src/index.ts 的暂存区变更:

{"name":"git_diff","arguments":{"staged":true,"path":"src/index.ts"}}

查看最近 10 条提交记录:

{"name":"git_log","arguments":{"maxCount":10,"path":"src/index.ts"}}

查看 HEAD 提交的具体内容:

{"name":"git_show","arguments":{"revision":"HEAD","path":"src/index.ts"}}

查看冲突文件:

{"name":"git_conflicts","arguments":{}}

分析代码归属(从第 20 行开始,共 30 行):

{"name":"git_blame","arguments":{"path":"src/index.ts","startLine":20,"lineCount":30}}

环境要求与限制

运行该插件需要满足以下环境条件:

  • 操作系统:Windows、macOS 或 Linux。
  • Node.js 版本:需大于等于 22.19.0。
  • 系统环境:宿主进程的 PATH 中必须能找到 git 可执行文件。
  • 依赖服务:宿主 Harness 组合需提供 @deepseek-ai/dsh-tools、@deepseek-ai/dsh-system-prompt、@deepseek-ai/dsh-subprocess 及其实现(例如 @deepseek-ai/dsh-subprocess-local)。

在安全性与行为上,插件做了以下限制:

  • 只读操作:不提供 commit、push、reset、stash、切换分支或文件修改能力。
  • 无 Shell 执行:通过 Harness 的 subprocess 服务解析 git,使用固定的 argv 启动进程,用户传入的路径放在 Git 的 -- pathspec 分隔符之后,不经过 Shell 展开。
  • 输出控制:关闭 pager、颜色、外部 diff 等交互功能,保证输出格式稳定。输出达到上限时会明确标记为截断。
  • 错误处理:Git 返回非零退出码、目录不是仓库或子进程异常终止时,插件会返回结构化工具错误。

总结

dsh-plugin-git-inspect 为 DSH 插件生态提供了一个安全、稳定的 Git 只读检查层。它通过限制权限和严格的输入处理,使得智能体在审查代码历史、分析冲突或查看状态时更加可靠。该项目采用 MIT 许可证,属于独立社区插件。

  • GitHub 仓库: https://github.com/Wanbinyu/dsh-plugin-git-inspect
  • 插件目录: https://www.skillhub.cn/plugins/Wanbinyu/dsh-plugin-git-inspect
羽毛球分组比赛记分
小程序二维码

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

小夜