DeepSeek Harness (DSH) 采用“一切皆插件”的架构,智能体在开发流程中常需调用 Git 进行版本控制。直接使用 shell 命令(如 bash)存在隐患:输出格式受用户配置(如 pager、color、quotepath)影响,且写入操作(如 commit)缺乏统一的权限控制。
dsh-zcode-git 是一个为 DSH 智能体设计的结构化 Git 工具集,旨在替代 shell 调用。它将 git 操作封装为可预测的工具函数,输出格式固定,且所有写操作均通过 Harness 的批准服务(approval service)执行,确保安全性。
核心功能¶
该插件提供以下六种工具,均默认读取当前会话工作目录下的仓库:
-
git_status(只读)
- 获取当前分支、上游分支信息。
- 返回领先/落后、暂存/修改/冲突/未跟踪/忽略的文件列表。
-
git_diff(只读)
- 生成统一格式的差异(unified diff)。
- 返回每文件的行数统计。
- 支持按路径(paths)、暂存或上下文行数(contextLines)进行作用域限定。
-
git_log(只读)
- 返回提交记录,包含哈希值、作者、日期和摘要。
- 支持通过
limit限制数量,或通过paths和revision缩小查询范围。
-
git_branch(读写)
- 支持
list(列出)、create(创建)、switch(切换)和delete(删除)。 - 写入操作必须经过批准。
- 支持
-
git_commit(写入)
- 可选暂存指定路径,然后提交信息。
- 写入操作必须经过批准。
-
git_stash(读写)
- 支持
list(列出)、push(暂存)、pop(应用并删除)、apply(应用)和drop(删除)。 - 写入操作必须经过批准。
- 支持
安装与启用¶
安装该插件会自动更新 Harness 的配置。
dsh plugin --profile web add dsh-zcode-git
安装后需重启 Harness,因为插件是通过配置文件加载的。
系统要求与注意事项¶
-
环境依赖
- 系统路径中必须存在
git二进制文件。 - DeepSeek Harness 版本需满足:
>=0.1.5-rc.2 <0.1.6-0 || >=0.1.6-alpha.1 <0.2.0-0 || >=0.1.7-alpha.1 <0.2.0-0。 - Node.js 版本需
>=20。
- 系统路径中必须存在
-
执行机制
- 插件不依赖 shell,而是通过
argv数组直接调用 git,避免 shell 转义和注入风险。 - 字段分隔符为
%x1f(文件分隔符),而非 ZCode 使用的%x00。
- 插件不依赖 shell,而是通过
-
输出限制
- 为了保持 Prompt 形状稳定,
git_status输出会被截断至 2k 字符。
- 为了保持 Prompt 形状稳定,
-
已知缺陷
- 当会话当前工作目录(CWD)位于仓库子目录时,插件可能返回空结果,因为仓库根目录相对路径未被正确处理。
生态与链接¶
dsh-zcode-git 是 DeepSeek 生态中一个专注于 Git 版本控制的结构化工具,遵循 MIT 许可证。如需查看源码、提交问题或查看目录页,请访问: