DeepSeek Harness 插件:dsh-build-diff

下面介绍 DeepSeek Harness (DSH) 的 Agent 循环变更审查插件:dsh-build-diff。

DSH 的理念是「一切皆插件」。在 Web GUI 中开发智能体时,开发者通常需要人工审查 Agent 每次循环(loop)对工作区文件的具体修改。dsh-build-diff 解决了这个问题。每次 Agent 完成一次从 running 到 idle 的驱动周期后,插件会自动快照当前会话工作区,检测文件与代码变更,并提供审查与撤销功能。

该插件为官方双面插件(host 半端 + browser 半端),零运行时依赖,不改 DSH 源码。

核心功能

安装并激活后,插件会在 DSH Web GUI 中提供以下能力:

  • 右侧边栏审查:在右侧边栏按轮次列出所有变更文件,内联展示行级 diff(支持双栏行号、+/- 着色,长上下文折叠为「N 行未改动」)。
  • 一键撤销:支持一键撤销整轮变更,或逐文件撤销。撤销操作会将文件恢复为 loop 开始前的精确内容,包括还原新建的文件或删除的文件。
  • 审查气泡:每轮结束后,在助手消息「复制 / 好的回答 / 有问题的回答」按钮行正上方渲染审查气泡。气泡显示变更摘要(如「已编辑 N 个文件 · +X -Y」),并提供「撤销」与「审核」操作。
  • 轮次切换:通过下拉菜单切换查看该工作区之前的各轮变更。
  • 辅助操作:支持复制统一 diff 文本、标记已审阅。

安装与启用

在安装 dsh-build-diff 之前,必须确保已安装前置依赖 dsh-better-sidebar(版本需在 ^0.12.1 以上)。审阅界面以标签页形式存在于该插件的 VS Code 式右侧栏工作台中。

1. 安装前置插件

dsh plugin --profile web add dsh-better-sidebar

2. 安装 dsh-build-diff

从 npm 安装(发布后可用):

dsh plugin --profile web add @kelearns/dsh-build-diff

本地开发调试时,可以使用本地路径:

dsh plugin --profile web add link:/path/to/dsh-build-diff

手动安装时,需将插件目录复制到 ~/.dsh/profiles/node_modules/@kelearns/dsh-build-diff/,并在 ~/.dsh/profiles/web/cordis.patch.yml 中追加配置项,最后重启 DSH。

注意事项与限制

插件基于 DSH 进程权限运行,涉及文件回写操作,请留意以下技术细节:

  1. Loop 跟踪起始点:插件只跟踪插件激活之后开始的 loop。如果 DSH 启动时已有 loop 在运行,该 loop 开头的变更会被漏掉。
  2. 大文件与二进制文件:对于超过 contentCapBytes(默认 1 MB)的文件或二进制文件,插件仍会检测并计数,但无法生成 diff 内容,也不支持撤销。
  3. 撤销逻辑:撤销操作会将文件原样回写为 loop 开始前的内容。若该文件在后续的 loop 中被更新过,撤销旧 loop 的变更会覆盖新 loop 的修改。
  4. 撤销幂等性:撤销操作按记录幂等执行,无重做功能。
  5. 作用域:同一工作区内的子 agent 或后台任务 agent 也会产生变更记录(共享工作区根)。
  6. 扫描上限:快照扫描有文件数上限,默认为 50,000 个文件。

总结

dsh-build-diff 为 DSH Web GUI 提供了可视化的 Agent 变更审查与回滚能力。通过右侧栏与消息气泡,开发者可以清晰地追踪每一轮的文件修改,并在必要时快速撤销。

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

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

小夜