在 CodeRabbit 的 13 个已知缺陷案例中,Sonnet 5.5 thinking on 比 Sonnet 5 多捕获 2 个问题,actionable precision 几乎相同;在 44 个真实开源 PR 上,Sonnet 5.5 平均审查耗时约为 Sonnet 5 的一半、评论少 24%,但大样本的 judge scoring 尚未完成,不能把评论量直接解释为质量。
适合判断的任务:CodeRabbit 代码审查流水线中的已知缺陷召回、actionable precision、评论量、nitpick 数量、耗时、token 用量和 Claude API 调用成本。
不适合外推的任务:通用代码生成、其他审查器、未覆盖的编程语言、真实团队对评论的接受率,以及 44 个 PR 上尚未完成 judge 评分的缺陷召回能力。
适用的模型版本:Claude Sonnet 5.5、Claude Sonnet 5、Claude Opus 5.5;Opus 5.5 数字来自 CodeRabbit 2026 年 9 月对同一 Signal 案例的先前评估。
测试环境或客户端:CodeRabbit review pipeline。Signal 使用 13 个真实开源 PR 的已验证问题;OSS August 使用 44 个开源 PR、85 个已知问题。所有运行回放冻结的文件摘要、walkthrough 和 layer grouping。
推荐的推理档位和参数:Sonnet 5.5 thinking on 使用 adaptive thinking,trivial / junior / senior review cohort 分别使用 low / medium / high effort;thinking off 使用同一 effort ladder,在 Sonnet 5.5 支持的低、中、高档位关闭思考。Sonnet 5 使用同一 effort ladder;具体 API 参数未全部公开。
CodeRabbit 使用两套基准:
Signal:13 个较难的真实开源 PR,每个 PR 有一个应被审查器发现的已验证问题。案例来自 Elasticsearch、Puma、vLLM、Cilium、axios 和 Next.js;其中 9 个 difficulty 3、3 个 difficulty 4、1 个 difficulty 5。
OSS August:44 个开源 PR,共 85 个已知问题,覆盖逻辑错误、API 误用、竞态条件、空引用和安全问题。页面对这套较大测试只报告评论量、延迟、token 和成本,因为 judge scoring 尚未完成。
Signal 中,独立 judge 对每条评论按已知问题投三票,只有多数票 PASS 才计入。Known issues caught 是 13 个案例中至少有一条 regular actionable comment 通过的案例比例;排除 outside-diff 和 nitpick。Actionable precision 是通过的 actionable comments 除以全部 actionable comments;它不是开发者接受率。Reported comments 是经过验证、去重和过滤后仍需人工阅读的评论数。
所有运行都回放相同的 recorded file summaries、walkthroughs 和 layer grouping,只改变审查模型及 thinking 设置。页面没有公开完整 PR 清单、judge prompt、逐条评论或全部 API 参数。
| 配置 | 捕获已知问题 | 包含 outside-diff 的捕获 | Actionable precision | 报告评论数 | 每次审查平均耗时 |
|---|---|---|---|---|---|
| Sonnet 5.5,thinking on | 6/13 · 46.2% | 8/13 | 41.2% | 17 | 5:27 |
| Sonnet 5.5,thinking off | 5/13 · 38.5% | 7/13 | 38.5% | 13 | 5:58 |
| Sonnet 5 | 4/13 · 30.8% | 4/13 | 40.0% | 15 | 9:55 |
| Opus 5.5 Standard | 8/13 · 61.5% | 10/13 | 66.7% | 21 | — |
| Opus 5.5 Max | 10/13 · 76.9% | 10/13 | 52.0% | 25 | — |
Sonnet 5.5 thinking on 比 Sonnet 5 多捕获 2/13 个已知问题,precision 为 41.2% 对 40.0%,评论数为 17 对 15。
两者命中的问题并不相同:Sonnet 5.5 捕获了 Sonnet 5 漏掉的 4 个,也漏掉了 Sonnet 5 捕获的 2 个;13 个困难案例中有 4 个问题未被任何 Sonnet 配置发现。
Sonnet 5.5 thinking off 比 thinking on 少捕获 1 个问题,precision 低 2.7 个百分点,评论数少 4 条,平均审查时间反而多 31 秒。
Sonnet 5.5 没有追平 Opus 5.5:Opus Standard 捕获 8/13,Max 捕获 10/13,且 precision 更高。
两种 Sonnet 5.5 配置的结果并不完全相同:thinking on 捕获了 vLLM config-context bug 和一个 streaming tool-call serialization case,而 thinking off 没有;thinking off 捕获了 Elasticsearch terms-enum case,thinking on 只在 outside-diff 发现它。
| 配置 | 报告评论数 | Critical / Major / Minor | Nitpicks | 平均耗时 | 中位数 | 44 次总耗时 |
|---|---|---|---|---|---|---|
| Sonnet 5.5,thinking on | 111 | 4 / 50 / 57 | 9 | 6:33 | 5:44 | 4 小时 49 分 |
| Sonnet 5 | 146 | 14 / 87 / 45 | 30 | 13:31 | 13:49 | 9 小时 55 分 |
CodeRabbit 报告 Sonnet 5.5 比 Sonnet 5 少 24% 评论,nitpick 约为三分之一,平均耗时从 13:31 降至 6:33;Sonnet 5 有 4 次生成超过 10 分钟,Sonnet 5.5 没有。这里的 judge scoring 尚未完成,评论量和耗时应理解为工作负载数据,不是已经确认的缺陷质量排名。
在 Signal 上,Sonnet 5.5 的两种配置如下:
| 配置 | 捕获已知问题 | Actionable precision | 报告评论数 | Nitpicks | 平均耗时 |
|---|---|---|---|---|---|
| Thinking on | 6/13 | 41.2% | 17 | 2 | 5:27 |
| Thinking off | 5/13 | 38.5% | 13 | 3 | 5:58 |
Thinking on 多捕获 1 个问题,precision 高 2.7 个百分点,多 4 条评论。核心审查调用平均输出约 5,800 tokens,thinking off 约 2,900 tokens;页面称在相同输入下,thinking on 的平均完整审查耗时没有变慢,且默认应保持开启。该结论只来自这 13 个案例和 CodeRabbit 配置。
CodeRabbit 按 Anthropic 标价计算 Claude 模型调用,价格为每百万 token:输入 $2、输出 $10、cache read $0.20、cache write $2.50;共享的小模型摘要和验证调用不计入下表。
| 配置 | Signal 13 次 | Signal 每次 | OSS August 44 次 | OSS 每次 |
|---|---|---|---|---|
| Sonnet 5.5,thinking on | $6.16 | $0.47 | $20.32 | $0.46 |
| Sonnet 5.5,thinking off | $5.37 | $0.41 | — | — |
| Sonnet 5 | $15.06 | $1.16 | $50.95 | $1.16 |
在两套基准中,Sonnet 5.5 的 Claude 调用成本约为 Sonnet 5 的 40%,即每次审查约节省 60%。Thinking on 比 off 的账单高约 15%,换来 1 个额外命中和略高 precision。成本只覆盖 Claude 模型调用,不含完整评测流水线。
| 每次核心审查调用平均值 | Signal 输入 | Signal 输出 | Signal thinking words | OSS 输入 | OSS 输出 | OSS thinking words |
|---|---|---|---|---|---|---|
| Sonnet 5.5,thinking on | 110.7k | 5.8k | 464 | 87.3k | 5.7k | 523 |
| Sonnet 5.5,thinking off | 110.7k | 2.9k | 0 | — | — | — |
| Sonnet 5 | 247.5k | 21.6k | 2,771 | 191.5k | 23.8k | 3,143 |
Signal 每次运行包含 22 次核心审查调用,OSS August 包含 84 次。页面将 input 定义为未缓存 token 加 cache reads 和 cache writes 的 gross prompt size,并称 Sonnet 5 的每次审查读取 token 超过 Sonnet 5.5 的两倍、写出约四倍、thinking words 约六倍。跨完整流水线,Sonnet 5 在 Signal 比 Sonnet 5.5 多 27% 总 token,在 44 个 OSS PR 上多 49%;这些总量包含摘要和验证模型。
| 指标 | 页面定义 |
|---|---|
| 案例数量 | 13 个,每个包含 1 个已验证问题 |
| Caught | 至少 1 条 regular actionable comment 通过多数 judge 票 |
| Judge | 每条评论 3 票,多数 PASS 才计入 |
| Actionable precision | 通过的 actionable comments / 全部 actionable comments |
| 排除项 | outside-diff 和 nitpick 不计入 actionable precision;但另列包含 outside-diff 的捕获数 |
| 运行输入 | 冻结 cassette 中相同的文件摘要、walkthrough 和 layer grouping |
方法说明还提示,13 个案例规模较小,单个 judge call 可能影响结果。页面举例:Puma 案例中,Sonnet 5 的一条发现被接受,而 Sonnet 5.5 的近似发现没有被接受;Sonnet 5.5 的 7 条通过评论中有 1 条是 2 比 1 通过,排除后 precision 会变为 35.3%。这说明 41.2% precision 对少量判定很敏感。
OSS August 包含 85 个已知问题和 44 个开源 PR,但本文只公开评论量、严重度分布、nitpick、耗时、token 和成本。页面明确写明 judge scoring pending,因此不能从 111 对 146 的评论数计算 Sonnet 5.5 的已知问题召回或 precision。
CodeRabbit 的 Signal 测试支持一个明确但有限的结论:在其 13 个较难已知缺陷案例中,Sonnet 5.5 thinking on 比 Sonnet 5 多命中 2/13 个问题,precision 几乎相同,且平均耗时更短。Opus 5.5 在同一组案例中命中 8/13 或 10/13,precision 更高,仍是困难审查的更强配置。
44 个真实 PR 的结果支持 Sonnet 5.5 在 CodeRabbit 流程中减少评论和耗时,并减少 nitpick;这组较大运行的 judge scoring 尚未完成,评论减少既可能降低噪声,也可能漏掉问题,当前数据不能区分两者。13-case 的 precision 还受三票 judge 的单票波动影响,页面给出的 35.3% 敏感性示例应作为重要限制。
成本结果是在 Anthropic 标价下根据 token 重新计算的 Claude 调用成本,覆盖输入、输出和缓存 token 的特定口径,未包含评测 harness 的完整成本。页面说明预发布模型使用过 placeholder rates;因此美元数字不能直接外推到其他供应商、价格版本、缓存命中或实际产品配置。
要复现 Signal,应取得相同的 13 个真实 PR 和已验证问题、冻结的 recorded cassette、CodeRabbit pipeline 版本、Sonnet 5.5 / Sonnet 5 的 effort 与 thinking 配置、工具和 prompt,并让独立 judge 对每条评论投三票。要复现 OSS August,还需取得 44 个 PR、85 个已知问题和相同的验证、去重、过滤规则,并完成 judge scoring。
成本复算需要记录每次 Claude 调用的 uncached input、cache read、cache write、output、thinking token、重试和价格版本;页面的 per-review 成本只覆盖 Claude 模型调用。Sonnet 5.5 的实际成本、速度和质量还应在目标团队自己的 PR 集上分别测量,不能用 44 个 PR 的评论数量替代质量验证。
Claude Sonnet 5.5