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