前言¶
在 DSH(DeepSeek Harness)里改代码,模型写完一轮 diff 之后,你往往还要自己扫一遍:规则是否遵守、有没有明显疏漏。把评审交给外部 CI 可以,但本地会话里缺一个「我想审就审、结论能落到文件与行号」的入口。阿里 OpenCodeReview(ocr CLI)本身提供规则、文件列表与 unified diff 组成的评审规格,以及按文件返回的结论格式;dsh-open-code-review 由维护者 xinyangGL 开发,把这套能力接进 DSH:注册模型工具与斜杠命令,默认不自动打扰,回合尾部可点按钮或说一句「跑一次评审」,也能配置自动评审或独立只读评审子 agent。
这是什么¶
dsh-open-code-review 是 DeepSeek Harness 的代码评审插件,底层规格与 diff 始终来自本机已安装的 ocr 可执行文件;插件不负责替你安装 ocr,也不会替你把代码发到除你所配置 LLM 以外的任何地方。评审结论以「路径:行 [严重程度] 说明」的形式逐条展示,并区分「真正无问题」与「输出不可解析、超时、未完成」等失败态(不会把半成品伪装成「没问题」)。
分类上在 SkillHub 目录中归为「模型推理」:默认引擎 ocr 会走 OCR 自带 LLM 流水线(按 token 计费);也可选 delegate 由当前会话模型按 ocr 解析出的规则审 diff(无额外 review token),或启用 reviewer.agent = spawn 时 spawn 独立只读评审子 agent。
- 目录页:https://www.skillhub.cn/plugins/xinyangGL/dsh-open-code-review
- 源码与文档:https://github.com/xinyangGL/dsh-open-code-review
核心功能¶
下面介绍插件在资料中明确登记的能力,便于对照 README 自行验证。
模型工具与命令¶
插件向 DSH 注册两个模型工具:
ocr_review:执行一次评审ocr_status:诊断可执行文件路径、版本、LLM 路由与配置来源
同时提供斜杠命令 /ocr-review。点击回合尾部的「启动代码审核」(v0.11.0 起仅在检测到本回合有文件改动时出现;若宿主无法提供该信号则回退为始终显示)时,会向会话投递指令:模型先跑 ocr_status 检查接线,再跑 ocr_review;进度出现在会话与 Jobs 面板。
三档执行方式(engine)¶
评审规格(规则 + 文件列表 + diff)一律来自 ocr;差异在于谁执行:
| 取值 | 行为概要 |
|---|---|
ocr |
v0.10.0 起为出厂默认;走 OCR 自带 LLM 流水线。资料实测约 176–600 秒/文件,按 token 计费(单文件扫描约 $0.16 量级);跑前会给出本次可审文件数与时间量级预估。 |
delegate |
把 ocr 解析出的规则、文件列表与 diff 交给当前会话模型评审;ocr 内部不调 LLM,无额外 review token,秒级返回规格;无 LLM 后滤,覆盖度依赖 receipt 规则是否被遵守。 |
auto |
先尝试 ocr,无 LLM 端点时回退 delegate;因「已审」与「半结果」外观可能相同,不是出厂默认,需显式选择。 |
另:reviewer.agent = spawn 时,每轮可 spawn 独立只读评审子 agent(自有上下文与模型,仅 read / grep / glob),返回结构化 findings,编码 agent 修复或说明后进入下一轮。
按需、自动与「先评审再测试」¶
- 按需:默认不自动评审;回合改动了文件时出现尾部按钮,或手动
/ocr-review。 - 自动:可在配置中让「写了文件的回合」结束时自动触发(出厂默认不自动)。
- preTest:
preTest=remind/gate可把评审接到「跑测试之前」(提醒或门禁),详见仓库内设计文档。
结论形态与可核对承诺¶
资料强调四条可自检承诺:三种触发时机与三种 engine 下,结论来源与成本在 ocr_status(engine、configSource、stats.byEntry、llm 等)中可见;仅 退出码 0 且 findings 为空 才算干净;delegate 规格带 coverage-receipt,ocr 侧信任其声明的 partial 信号;ocr 运行前首条说明会给出本次规模与时间量级(探测失败则该句缺失)。
失败码示例:OCR_NOT_FOUND、OCR_OUTPUT_UNPARSABLE、OCR_LLM_MISSING、OCR_TIMEOUT 等,并附「下一步」指引。
安装与启用¶
环境要求:Node ≥ 20、本机已安装 ocr CLI(Windows 需指向原生 opencodereview.exe,.cmd / .bat shim 会因无 shell spawn 报 EINVAL)、已安装本插件的 DSH,以及可用模型(llmMode = dsh 为默认时,DSH 可向 ocr 出借模型、密钥与配额,无需额外填 endpoint)。
1、安装 OpenCodeReview CLI¶
node -v
npm i -g @alibaba-group/open-code-review
opencodereview --version
第一步确认 Node 版本不低于 20;第二步全局安装后,opencodereview --version 应输出版本号。
2、安装 DSH 插件并重启¶
dsh plugin --profile <profile> add github:xinyangGL/dsh-open-code-review
安装后重启 DSH。用模型调用 ocr_status 或设置页查看:应报告 ocr 可执行文件与版本、LLM 路由,且不应出现 no valid LLM endpoint configured(在 llmMode = dsh 且 DSH 模型可用时)。
若出现 OCR_NOT_FOUND,按 ocr_status 打印的平台相关安装说明操作,不要猜测路径;必要时在配置中设置 ocrPath。
典型用法¶
手动跑一轮评审¶
在会话中执行 /ocr-review,或在「本回合已改文件」时点击 Start code review / 启动代码审核。按钮副标题会按当前 engine 提示成本量级:ocr 为按 token、分钟级/文件;delegate 为无 LLM 调用、秒级出规格。
用工具自检¶
让模型调用 ocr_status,确认 engine、配置来源与 LLM 路由;再调用 ocr_review 执行评审。结论分层包含:裁决行、本次规模与成本、按 [高][中][低][未分级] 分组的 findings、下一步、溯源等(以 0.12.x 行为为准)。
控制成本¶
若不想为 review 单独消耗 token,在配置中将 engine = delegate。需要 OCR 流水线后滤与覆盖收敛时,使用默认 engine = ocr,并在跑前阅读首条规模/时间预估,必要时中止;不要在未评估耗时的前提下把 ocr 或 auto 原样接进 CI。
配置示例与字段说明见仓库 config.example.json 与 README.zh.md。
适用场景与注意¶
适合:已在 DSH 里用模型改代码、希望评审规格与业界 OCR 规则对齐、且能接受「本地 shell 出 ocr、结论可审计」的团队;需要在提交前或跑测试前多一道可重复、可点到文件行号的检查。
不适合当作:更准/更强/找全 bug、CI 级门禁、安全审计或全仓扫描的替代品;资料明确不承诺这些。
权限与安全:插件以当前 dsh 进程权限运行,会调用本机 ocr 并可能把 diff 与规则上下文交给所配置的 LLM。安装前请阅读源码与 LICENSE,确认 ocr 与模型 endpoint 符合你方合规要求。插件不替你跑测试、不替代 CI。
外部依赖:「无 npm 运行时依赖」指的是 Node 包层面;每一条代码路径仍会 shell 到 ocr 二进制,包括 delegate(仅跳过 ocr 内部的 LLM 调用)。
结尾¶
dsh-open-code-review 把 OpenCodeReview 的评审规格与 DSH 会话接在一起:默认少打扰,需要时用 /ocr-review 或回合尾部按钮即可;结果落在「文件:行 [severity] 问题」,engine 在成本、速度与责任主体之间切换。社区目录(与 DeepSeek / 幻方无官方从属):
- https://www.skillhub.cn/plugins/xinyangGL/dsh-open-code-review
源码、中文 README 与变更记录:
- https://github.com/xinyangGL/dsh-open-code-review