前言¶
在 DeepSeek Harness(DSH)里改代码时,常见做法是直接让当前会话里的智能体「帮忙 review 一下」。这种做法有两个结构性问题:写代码的模型也在评判自己的推理;而在按轮次路由的 harness 里,「审查这段改动」未必会落在你期望的模型上,而是由路由器决定。
DSH 本身已经支持斜杠命令直接调用 subagent 服务,并可通过 agentOptions 把子智能体的路由钉死。下面介绍的 dsh-codex-review(维护者 vitas,分类:工作流)把这件事收成一条确定性命令 /review:不自带 LLM 客户端、不持有凭证,也不依赖主会话当前跑在哪个模型上。路由固定后,还可以把审查指到订阅侧的 Codex 路由(默认 openai-codex),用 ChatGPT 订阅鉴权而不是按 token 计费的 API。
这是什么¶
dsh-codex-review 是一个 bundle 型 DSH 插件:安装后会挂载 codex-review 配置行和 /review 斜杠命令。它在社区讨论 Show Your Plugins! #8596 中发布;当前 package 版本为 0.4.0(MIT 许可证,Node >=22)。
一句话定位:把当前变更集交给一个路由被钉死的审查子智能体,默认走订阅支持的 openai-codex,并在每个聊天里默认维持一条可延续的审查会话,便于对比「上次指出的问题」与本轮改动。
核心功能¶
确定性 /review,无需额外参数¶
命令本身不需要参数。审查子智能体带着固定的 brief(立场:只报告、不改文件;检查顺序:正确性、失败处理、契约、安全、并发与状态;证据门槛:无法核实的断言应写成问题而非结论),并按规则选取待审内容:
- 工作区中的变更集(含未跟踪文件);
- 若工作树干净,则看最新一次 commit;
- 若根目录不是 Git 仓库,则看其下有变更的子仓库(不会把整个目录里所有 checkout 都读一遍)。
你在命令后面输入的文字只用来收窄「审什么」,不会替换 brief,也不会限制审查者实际读取的范围。
三种典型输入¶
/review 审查当前变更集整体
/review focus on the cache invalidation 同一套审查流程,但聚焦 cache invalidation
/review reset Forget 当前审查会话,下次 /review 重新开始
/review reset 是唯一「不是审查」的输入:每个聊天默认共享一条审查会话,以便说明「相对上次有什么变化」;reset 会退役该会话并在仍在运行时停止它。注意:只有整段输入才算数——/review reset the cache 会审查 cache 相关部分,而不是 reset。退役后的会话不会被删除;若在下次 /review 之前重启 host,仍可能重新接上旧会话。
会话模式:shared 与 fresh¶
| 模式 | 行为 |
|---|---|
conversation: shared(默认) |
每个聊天一条延续的审查子智能体:首次 /review 创建,之后把下一轮修订交给同一会话;审查报告以对话消息形式出现,命令返回值只是 receipt |
conversation: fresh |
每次调用启动一次性子智能体,报告作为命令结果直接返回 |
shared 基于 DSH 的可延续子智能体(subagents.startContinuable / sendMessage),记忆在 host 重启后仍可通过 durable session 冷恢复;后续 prompt 更短,侧重 delta:哪些已修、哪些仍 open、哪些是新的。
刻意不做的事¶
- 不会自动审查:只有人工输入命令时才运行。
- 不会自动改代码:审查者只读只报,实现仍由主智能体完成。
- 不处理鉴权:凭证 entirely 由所选
provider路由负责。 - 默认
backend: spawn时,子智能体不继承主会话对话,只看到仓库与自身既往审查;若需要相反行为,可设backend: fork。
安装与启用¶
资料中的安装方式来自本地 checkout 或 link 依赖(请换成你机器上的实际路径):
# from the checkout
dsh plugin --profile web add /Users/vitas/git/dsh-codex-review
# or as a dependency
dsh plugin --profile web add link:~/git/dsh-codex-review
安装 bundle 后会挂载配置行与命令;配置行本身不必重启,但斜杠命令要等 profile 重新 compose 后才会出现。
插件目录页:https://www.skillhub.cn/plugins/vitas/dsh-codex-review
源码与 README:https://github.com/vitas/dsh-codex-review
路由与依赖¶
/review 不会替任何 provider 做登录。你需要一个由配置项 provider 命名的、且能正常工作的 LLM 路由。订阅路径下通常是 openai-codex,例如:
- pi-ai 自带的
openai-codex:用 ChatGPT Plus/Pro OAuth 登录; dsh-codex-auth:从~/.codex/auth.json注册openai-codex,复用 Codex CLI 已有登录;dsh-subagent-codex:以名为codex的 subagent backend 在外部跑codex exec;需设backend: codex并由 CLI 解析路由。
调用失败时,错误信息来自 provider 本身(例如路由未配置凭证、未知 model id),会出现在命令结果里。
配置¶
Web UI 路径:Plugins → dsh-codex-review。设置卡片可选路由、审查模型(列表来自当前 running composition 的 model catalog)、memory 模式、reasoning effort、命令名等。同一批字段也可写在 profile 的 cordis.patch.yml 中;仓库内 cordis.patch.yml 提供默认值与注释说明。
注意:patch 里的 config 会整段替换该行的 config,不是 deep merge。 只改一项时,需要把仍要保留的字段一并写回。
| field | default | meaning |
|---|---|---|
backend |
spawn |
subagent backend:spawn(进程内新子体)、fork(继承当前对话)、或插件提供的如 codex |
provider |
openai-codex |
审查子智能体钉死的 LLM 路由 |
model |
gpt-5.6-sol |
该路由上的 model id |
conversation |
shared |
shared 每聊天一条延续会话;fresh 每次一次性子智能体 |
reasoningEffort |
null |
off…max,或 null 由路由决定 |
childMaxDepth |
null |
0 禁止子智能体再委派;null 不传(适合无 depthLimit 能力的 backend) |
persona |
null |
若 backend 支持,可设 per-child persona |
command |
review |
斜杠命令名 |
instruction, diffCommand, statusCommand |
见 patch | 审查 brief 与优先执行的命令 |
maxOutputChars |
40000 |
返回审查文本长度上限 |
审查 brief 对应行上的 instruction;profile 可整段替换,与设置卡片写入的字段并列。
典型用法¶
- 在 Web profile 安装插件并完成 compose,确保
openai-codex(或你配置的provider)已可用。 - 在 Plugins 卡片里确认
provider、model、conversation等是否符合预期。 - 改完代码后在聊天里输入
/review;若只想强调某块逻辑,可追加说明,例如/review focus on the cache invalidation。 - 默认
shared模式下,阅读对话里子智能体返回的报告;主智能体按报告改代码后再次/review,会收到相对上次的 delta 说明。 - 想丢弃跨轮记忆时执行
/review reset,或临时把conversation设为fresh做一次性审查。
适用场景与注意¶
适合谁: 希望在 DSH 工作流里把「写代码」和「审代码」分到不同模型/路由上的开发者;尤其已配置 Codex 订阅或 openai-codex 路由、又希望审查立场固定(只报不改、带证据门槛)的团队。
运行与信任边界: 插件以当前 dsh 进程权限运行;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认命令与子智能体在你环境中的行为可接受。SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不宜当作官方应用商店。
与「让主智能体自审」的对比: 本插件的价值在于路由可控、审查会话可延续、且不增加插件自身的运行时凭证面;代价是需要你维护可用的 provider 路由,并理解 shared 下报告出现在消息里而非命令返回值这一交互差异。
结尾¶
dsh-codex-review 把 DSH 里已有的 subagent 与路由钉死能力,收成一条可配置的 /review:默认 Codex 订阅路由、每聊天一条审查记忆、以及 /review reset 清空会话。若你在 harness 里既要改代码又要独立视角的审查,可以按 README 的安装与 cordis.patch.yml 字段接入。