当 AI 编程代理开始修改真实项目时,它首先需要回答几个很基础的问题:当前在哪个分支、有哪些未提交修改、暂存区里有什么、最近一次提交改了什么、冲突文件在哪里。
直接开放完整 Shell 当然可以做到,但权限范围也随之扩大。为此我做了 dsh-plugin-git-inspect,一个面向 DeepSeek Harness 的只读 Git 检查插件。
项目地址:https://github.com/Wanbinyu/dsh-plugin-git-inspect
它提供什么
插件向 Harness 注册了 10 个工具:
- git_status:查看分支和工作区状态
- git_diff:查看工作区或暂存区差异
- git_diff_stat:查看文件级修改摘要
- git_log:查看最近提交
- git_show:检查指定提交或标签
- git_refs:列出分支、远程分支和标签
- git_conflicts:找出尚未解决的冲突文件
- git_blame:查看一段代码的提交归属
- git_stash_list:只读查看 stash
- git_worktree_list:查看 worktree
这些能力覆盖了代码分析、变更审查、故障定位和提交历史查询等常见场景,但不会执行提交、推送、重置、切换分支或修改文件。
为什么强调只读
这个插件不通过 Shell 拼接命令,而是使用 Harness 的 subprocess 服务,以固定参数数组调用 Git。用户输入的路径放在 Git 的 -- pathspec 分隔符后,不会发生 Shell 展开。
插件同时关闭 pager、颜色、外部 diff、textconv 和终端交互提示,并限制输出大小、执行时间以及 blame 行数。输出过长时会明确标记截断,避免大量 Git 内容占满模型上下文。
它适合放在“检查层”:代理可以先确认工作区真实状态,再决定下一步;写操作仍由其他经过审批的工具负责。
安装
当前版本面向 DeepSeek Harness 0.1.0-rc.x,需要 Node.js 22.19.0 或更高版本,并确保系统 PATH 中可以找到 Git。
dsh plugin --profile web add github:Wanbinyu/dsh-plugin-git-inspect
安装后重启 Harness。仓库已包含 cordis.patch.yml 和 dsh.bundle 声明,可以通过 profile 插件流程组合。
适合谁
如果你正在使用 DeepSeek Harness 处理真实代码仓库,希望模型能够查看 Git 信息,但又不想一开始就开放完整命令行权限,这个插件可以提供一个边界清晰的起点。
项目采用 MIT 许可证,欢迎测试、提交 Issue 或参与改进。