dsh-review:把 Code Review 做成可编排的 DSH 工具

前言

在 DSH 里让智能体改代码之后,常见下一步是「请人看一眼 diff」。若每次都手写一长段 review 提示、或只能绑定某一个厂商的模型,工作流很难复用。把 review 做成宿主里的一个工具,由配置决定用哪些 CLI 编码智能体或 DSH 子智能体、并行跑完后合并成一份报告,更接近「工具化」而不是「换一家 API」。

下面介绍社区插件 dsh-review(维护者 yutingzhao1991),分类为工作流;目录页见 SkillHub,源码与说明见 GitHub。

这是什么

dsh-review 是 DeepSeek Harness(DSH)宿主插件:向智能体暴露通用的 review 工具,把代码审查分发给已配置的审查者(CLI 编码智能体或 DSH 子智能体),并行执行后按选择顺序合并为一份报告。插件自述为:Let your dsh freely invoke any agent or model to review.

插件不自带模型密钥或端点;模型与凭证留在你的 DSH 配置里,插件只使用其中已有项。当前包版本为 2.0.2(见仓库 package.json),许可证 MIT,声明依赖 DSH ^0.2.1-rc.2(engines.dsh),宿主低于要求时会拒绝安装或激活,而不是在 review 中途失败。

核心功能

两类审查者

类型 实际运行 是否自己读仓库 依赖
cli 你已信任的编码智能体 CLI 视预设而定(如 codex 会读仓库) 对应 CLI 已安装
subagent DSH 子智能体 是,具备工具 子智能体服务(默认 spawn)

CLI 预设包括 codex、claude、gemini、opencode、cursor,也可用 custom 自定义命令模板。插件刻意不提供「只把 diff 发给裸模型」一类审查者;能打开仓库的审查者比只看 handed diff 更有价值。

多人一份报告

多个审查者可并行运行;报告中每人独立一节,顺序与配置中选择顺序一致。

Review 模式

可为模式命名强度与提示(如 quick、balanced、deep),并绑定审查者列表,避免每次重打 review 说明。模式字段包括 strength(light / standard / deep)、prompt、reviewers,以及可选策略字段 when(always / complex / never);when 仅在设置 injectPolicy: true 时写入系统提示,不作为硬门禁。

GUI 配置

可在 Web 配置页勾选审查者,其余项折叠在高级设置;停止输入约半秒后自动写入,顶部有状态行,并保留 Save now 供手动重试。

异步任务

Review 往往耗时数分钟:review() 会等待片刻后返回 job id,可用 job_output 读结果、job_kill 终止,或等待宿主通知完成。

审查者为显式启用:若未启用任何审查者,调用时不传 reviewers 会失败并说明原因,不会静默跑完全部预设。

安装与启用

官方 README 要求将仓库放到固定目录后,用 profile 安装(请将 web 换成你的 profile 名):

git clone git@github.com:yutingzhao1991/dsh-review.git ~/code/github/dsh-review
dsh plugin --profile web add ~/code/github/dsh-review

也可让智能体通过 plugin_manager → install_bundle 传入该绝对路径。安装后重启宿主;更新方式为 git pull 后同样重启。

需要 DSH 0.2.1 或更新版本。

CLI 可执行文件查找顺序

插件依次查找:executable(PATH 名或路径)→ ~/.local/bin、~/.bun/bin、/opt/homebrew/bin、/usr/local/bin → 当前 profile 的 dependencies(node_modules/.bin/<name> 等)。推荐把 CLI 装成 profile 的直接依赖(dsh plugin --profile <name> add <package>),避免在 patch 里写死绝对路径后在依赖重装后路径失效。

配置异常时可用自检,不发起真实 review、也不要求 git 仓库:

review({ doctor: true })

典型用法

在智能体或工具调用中:

review()                                          // 使用已启用的审查者,审查未提交变更
review({ reviewers: ["codex", "deep-dive"] })     // 本次指定审查者
review({ mode: "deep" })                          // 使用 deep 模式及该模式绑定的审查者
review({ base: "main" })                          // 工作区相对某分支
review({ commit: "abc1234" })                     // 单个 commit
review({ instructions: "only concurrency and error handling" })

配置示例(YAML 片段,与 GUI 等价):

- id: review
  name: dsh-review
  config:
    agents:
      - preset: codex
        model: gpt-5.6-sol
      - preset: claude
    reviewers:
      - id: deep-dive
        kind: subagent
        provider: spawn
        agentProvider: bailian
        agentModel: deepseek-v4.1-flash
    defaultMode: balanced
    modes:
      balanced:
        strength: standard
        reviewers: [ codex ]
      deep:
        strength: deep
        reviewers: [ codex, deep-dive ]

说明:provider 指子智能体服务实现(默认 spawn),不是模型厂商;子智能体默认继承父会话模型,除非设置 agentModel(或 GUI 里成组选择 provider + model)。DSH 0.2.1 起 persona 与工具限制应在 Agent Preset 中配置,通过 agentPreset 选用;旧的 persona / toolFilter 会给出迁移警告。子智能体默认墙钟上限 30 分钟(timeoutMs),整体仍受 hardTimeoutMs 约束。

常用配置键(节选):

键 默认 含义
defaultReviewers 无 调用未传 reviewers 时使用;空表示未启用
defaultMode 无 调用未传 mode 时使用的模式
language auto 报告语言 zh / en / auto

未配置任何 modes 时,插件不额外约束,仍由你在对话里自行说明 review 要求。

适用场景与注意

适合已在 DSH 中编排开发智能体、希望把「看 diff」标准化为 review() 调用、并组合多个 CLI 或子智能体视角的开发者。不适合期望插件自带账号或统一云端 review 服务的场景。

安装与运行前请注意:插件以当前 DSH 宿主进程权限执行,会调用你配置的 CLI 与子智能体;应在信任维护者与源码的前提下阅读 LICENSE 与仓库实现。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;生态上 DSH 奉行「一切皆插件」,本插件是工作流类社区贡献之一(GitHub 公开星标数以目录页为准)。

结尾

dsh-review 把 code review 从「绑死一家模型」改成「可配置的审查者 + 可复用模式 + 合并报告」,密钥与厂商能力仍归 DSH 主配置。若要试用,从目录页进入说明,或直接在 GitHub 查看 README(含 中文 README):

  • 目录页:https://www.skillhub.cn/plugins/yutingzhao1991/dsh-review
  • 仓库:https://github.com/yutingzhao1991/dsh-review
羽毛球分组比赛记分
小程序二维码

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

小夜