dsh-git-tools:DeepSeek Harness 本地 Git 工具集

DeepSeek Harness (DSH) 采用插件化架构,智能体在会话中需要操作本地代码仓库时,往往缺乏直接、安全的工具支持。手动调用 shell 命令风险较高,且依赖远程接口会增加延迟。为了解决这个问题,我们需要一套原生的、安全的本地 Git 工具集。

dsh-git-tools 是由 Shyboy0499 维护的 DeepSeek Harness 插件。它提供四个本地 Git 工具(git_status、git_diff、git_log、git_commit),让智能体能够在会话工作区(session workspace)内直接检查仓库状态和创建提交,不依赖 UI 或远程服务,完全在 Host 端运行。

核心功能

  • git_status:检查分支、ahead/behind 状态,以及 staged / unstaged / untracked 文件。
  • git_diff:查看变更。支持 staged 或 unstaged,统计摘要或完整补丁,可选路径过滤。
  • git_log:列出最近提交,格式为 { hash, author, date, subject }。
  • git_commit:暂存指定路径(或全部)并提交,必须提供消息。

安装

安装前请确保环境已安装 git。

dsh plugin --profile web add dsh-git-tools

典型用法

  • git_status:检查工作树和分支状态。
  • git_diff:查看变更。staged 对比索引,statOnly: true(默认)返回统计摘要,statOnly: false 返回完整补丁,path 用于过滤单个文件。
  • git_log:列出最近提交。count 默认为 10(最大 100),path 用于过滤文件。
  • git_commit:创建提交。message 是必需的(非空)。使用 paths 暂存特定文件,或使用 all: true 暂存所有文件。它从不隐式暂存文件。

适用场景与注意

该插件适合需要在 DSH 会话中执行常规 Git 操作(查看状态、对比、查看历史、提交代码)的场景。

  • 安全性:所有 Git 调用通过 execFile 执行,参数作为数组传递,因此没有 shell 插值,用户/模型控制值是注入安全的。
  • 操作限制:git_commit 需要显式消息且从不隐式暂存文件。核心范围内没有破坏性操作(如 --amend、--force、rebase、reset)。
  • 工作目录:所有工具接受可选的 cwd(默认为会话工作区)。

总结

dsh-git-tools 解决了智能体在 DSH 环境下直接操作 Git 的痛点,提供了安全、原生的接口。插件列表及源码可参考目录页与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜