前言¶
在 DeepSeek Harness(DSH)里让智能体操作 Git,常见做法是挂第三方 Git 插件,或直接拼 shell 命令。前者能力边界和实现方式不一定符合你的安全预期;后者一旦路径或参数未校验,容易把 ..、绝对路径或 shell 元字符带进执行环境。维护者 snow-The 的 dsh-gitkit 定位为自研替代:用固定的一组工具覆盖 status / diff / log / commit / branch,底层统一走 child_process.execFile('git', args),并对路径做校验。下面介绍它是什么、提供哪些能力,以及如何按 README 安装。
这是什么¶
dsh-gitkit(npm 包名 @snow-the/dsh-gitkit,当前资料中版本 0.1.0)是 DSH 的客户端类插件:为 Harness 暴露结构化的 Git 工具,不依赖裸 shell 调用 git。简介与 README 一致——Structured Git tools for DeepSeek Harness: status / diff / log / commit / branch with path validation and shell-free exec (own-built, replacing third-party git plugins)。
- 维护者:snow-The
- 许可证:MIT
- 社区目录页:skillhub.cn/plugins/snow-The/dsh-gitkit
- 源码与说明:github.com/snow-The/dsh-gitkit
package.json 中声明的 DSH 兼容范围包括 0.2.0-rc.1、0.2.0-rc.2、0.2.1-rc.2,verifiedAgainst 为 0.2.1-rc.2;engines.dsh 为 >=0.2.1-rc.2 <0.3.0-0。安装前请对照你本机 DSH 版本。
核心功能¶
README 列出的工具如下;参数细节以插件实现为准,此处仅归纳文档已写明的行为。
| 工具名 | 作用(据 README) |
|---|---|
git_status |
工作区状态(porcelain),可选路径过滤 |
git_diff |
工作区 diff,或两个 ref 之间的 diff;支持 --stat 或完整 diff |
git_log |
最近提交(可指定条数,可选路径过滤) |
git_commit |
提交已暂存变更,提交信息经校验 |
git_branch |
列出分支 / 查看当前分支 |
执行模型上的共同点:
- 不通过 shell 拼接执行 Git,而是
execFile('git', args)。 - 路径校验:不允许绝对路径、不允许
..穿越、不允许 shell 元字符。
这样在智能体频繁读写仓库路径时,比「任意 git 字符串进 shell」更易推理、也更利于收敛风险面。README 未提供各工具的 JSON 入参示例;启用插件后,以 DSH 暴露的工具 schema 为准。
安装与启用¶
官方 README 给出的安装方式为本地路径添加(示例路径指向维护者自研插件目录,使用前请换成你本机 clone 或解压后的实际路径):
dsh plugin --profile web add file:~/dsh-own-plugins/dsh-gitkit
说明:--profile web 与 file: 前缀均来自 README 原文,不要自行改成 dsh plugin add github:owner/repo 一类未在资料中出现的命令。插件通过 cordis.patch.yml 打入 DSH bundle(见 package.json 的 dsh.bundle.patch 字段)。
典型用法(工作流层面)¶
资料未附带逐条 CLI 演示,但工具命名与 Git 日常操作一一对应。在 Harness 中可按常见顺序使用:
git_status:确认工作区与暂存区(需要时用路径过滤缩小范围)。git_diff:查看未提交变更,或两个 ref 之间的差异;需要概览时用--stat,需要补丁时用完整 diff。git_log:拉取最近若干条提交记录,必要时限定路径。git_commit:在变更已git add的前提下,用经校验的 message 提交。git_branch:确认当前分支或枚举本地分支。
上述步骤依赖本机已安装 git 且仓库状态正常;插件负责以受控方式调用,不替代你对提交内容与分支策略的判断。
适用场景与注意¶
适合谁
- 已在 DSH 0.2.x RC 线(尤其
>=0.2.1-rc.2)上开发智能体,需要可预期的 Git 工具集,并希望减少第三方 Git 插件依赖。 - 希望 Git 调用走固定参数列表 + 路径校验,而不是开放 shell。
需要注意
- 插件以当前 DSH 进程的用户权限运行,能访问的仓库与文件范围与该用户一致。安装前应阅读源码与 MIT 许可证,确认符合你的合规要求。
- 安装命令示例使用
file:本地路径;若你从 GitHub 获取源码,需自行放置目录并修改路径,资料未提供其他安装渠道。 - 社区目录 SkillHub 为独立插件索引,与 DeepSeek / 幻方无官方从属关系;星标等元数据以目录页为准(当前线索为 0)。
结尾¶
dsh-gitkit 用五条结构化工具覆盖日常 Git 读写,并用 execFile 与路径校验约束执行方式,适合作为 DSH 里自研 Git 能力的基础件。进一步了解可访问目录页 skillhub.cn/plugins/snow-The/dsh-gitkit 与仓库 github.com/snow-The/dsh-gitkit。