Sonnet 5.5 的 Max 为什么不如 Xhigh?Agent 选档位不能只看“更强”

把完成标准与停止条件纳入评估,找到质量、等待时间和返工之间的合适档位。

Buda Team
← 返回博客
Sonnet 5.5 的 Max 为什么不如 Xhigh?Agent 选档位不能只看“更强”

Anthropic 公布的 FrontierCode 1.1 Main 结果里,Claude Sonnet 5.5 在 Xhigh effort 下得到 52.1%,Max 下却是 46.2%。更高档位没有得到更高分,差了 5.9 个百分点。

这个结果关乎 Agent 如何完成工作,而不只是“想得够不够久”。FrontierCode 评估无需人工修改即可合并的代码;超出任务范围的修改,即使本身不错,也会被惩罚。选 effort 时,完成标准和停止条件需要与推理深度一起考虑。

这次落差,发生在什么样的评测里?

系统卡介绍,FrontierCode 来自 Cognition 的 150 个软件工程任务,基于开源仓库的真实 PR。Agent 拿到仓库、问题说明和测试规范,在没有人工介入的容器里完成补丁;评分同时检查阻塞性的功能条件和代码质量要求。

发布页的脚注进一步解释:Max 下 Sonnet 5.5 更常启动 Claude Code 的 code-review skill,让多个子 Agent 分头审查。Cognition 检查的两个案例中,这造成了超时,或引入任务范围之外的修改。

所以,这组数字支持的结论是:在该评测及执行环境里,更多自主审查可能损害最终可合并性。它不是“Max 普遍更弱”的证据,也不是所有模型、所有工作流都该使用 Xhigh 的理由。

Effort 会影响执行方式,不只是答案长度

官方提示文档指出,较低 effort 在长任务里可能更早停下来询问用户;Low 下也可能跳过实际验证。较高 effort 则可能开展额外审查、补充文档或改动相关文件。

这两种失误方向不同。前者把未完成工作交回给人,后者把明确任务扩大成未经授权的项目。单看生成速度或 token,容易把“少做了必要检查”误判为高效率,也可能把“多做了不需要的事”误判为更负责。

先把任务分成三部分:必须完成的交付物、必须执行的检查、必须停止或请示的边界。例如修一个导出错误,要求改动相关逻辑、运行覆盖该行为的测试并报告结果;不自动增加新功能,不顺手重构其他模块。评估 effort 时,必须同时检查这三部分。

把完成标准与停止条件纳入评估,找到质量、等待时间和返工之间的合适档位。

起点可以不同,但不能继承旧档位的含义

Sonnet 5.5 重新校准了 effort,同名档位不等于 Sonnet 5 的同一思考量。官方建议:Claude API 一般从 High 开始;边界明确的 Agent 编码、多步工具任务从 Medium 开始,较难或更长的任务再试 High;低延迟聊天可从 Medium 或 Low 开始。

Xhigh、Max 应留给已经测得质量收益的任务。两者需要 adaptive thinking,不能与 between_tools 配合。这里说的是上游接口与提示建议,不是 Buda 模型选择器的默认值或可配置项。

一个团队可以维护“任务类型 → 初始档位 → 验收条件”的表,而不是全员固定 Max。报价资料整理、长文推理、代码修复的失败成本不同,最佳起点也不应由一个排行榜统一决定。

用停止规则约束额外工作,而不是禁止必要检查

提示可以这样写:

完成指定修改后,运行能够覆盖该行为的实际检查;检查通过后停止并报告。不要自行启动额外 reviewer 子 Agent、扩展功能或修改无关文件。如认为更深的审查必要,列为建议。若检查无法运行,写明未运行项与原因,不得把任务标为已验证完成。

这不是让 Agent 少负责,而是让职责可验收。必要测试仍要执行;新增审查则需要授权。对高风险任务,可以明确把独立复核设为要求,不必一概禁止。

Anthropic 的提示测试还报告,在 Max 编码任务中,限制自行启动 reviewer 子 Agent 的指令使会话成本降低约三分之一,质量没有变化。这是该厂商测试的结果,不是通用折扣,也不是 Buda 测量。可复制的是控制变量的实验方法,而非承诺同样的节省。

把完成标准与停止条件纳入评估,找到质量、等待时间和返工之间的合适档位。

一次校准实验,至少记录这五列

选一组代表性任务,固定输入、工具权限、提示、时间预算和验收规则,在两个或三个相邻档位重复评估。每次从相同起始状态出发,避免前一次产生的文件或缓存结果污染下一次。

记录:验收是否通过、是否超范围、端到端时间、实际执行消耗、人工返工。低档位快但没通过,不能算低成本交付;高档位通过但附带未经授权的写入,同样不能直接算成功。

若要合并成成本指标,可在同一计费口径里计算“全部尝试成本 / 通过验收的任务数”,并把人工返工另列。全失败的一组没有可计算的单次成功成本。美元、Credits 和人工分钟不能不经换算就相加。

对交互式工具会话,官方还提示修改顶层 effort 会使 prompt cache 失效;按轮次调整的 beta 功能需要 adaptive thinking。做实验时,应记录缓存与会话策略,否则可能把缓存差异当作档位差异。

便宜的一次尝试,可能对应更贵的一次交付

下面是一组用于说明计算方法的假设数据,不是 Anthropic 或 Buda 的实测。把 10 项独立任务分别交给两个档位,每项只运行一次,输入、工具和验收规则相同。

本轮实验较低档位较高档位
全部尝试的执行消耗20 单位30 单位
无需返工且满足范围约束的任务5 项9 项
每项尝试平均消耗2 单位3 单位
每项直接验收交付的消耗4 单位约 3.33 单位

较低档位的单次消耗少三分之一,但直接可用的产出少得更多。这里计算的是这一轮的“消耗/直接验收产出”,不是尚未运行的重试成本,也不是最终把 10 项全部交付的成本。要回答后一个问题,还得跟踪失败任务的后续尝试和人工修复。没有这些记录,不能承诺一组数字代表完整项目预算。

反过来,高档位也可能因为范围扩大而落败:必要测试已通过,它继续修改公共模块、重写文档或运行额外审查,消耗增加且引入新风险。这时该修的首先是权限、任务范围和停止条件,而不是把“认真”一概调低。

用失败分类决定下一轮,而不是只看平均分

校准记录应把失败拆开。相同的“不通过”,可能对应完全不同的处理方法:

  • 缺输入: 没有给出正确接口说明或期间。先补材料,升档无法可靠补出未知事实。
  • 验证缺失: 改了代码但没运行要求的测试。明确工具可用性和完成条件,再比较档位。
  • 判断不足: 输入充分、检查可运行,仍漏掉关键约束。可以试升档,但用相同验收标准验证收益。
  • 越界执行: 修复目标之外改了文件、字段或业务规则。收紧范围与授权,不把更多修改当成更高质量。
  • 提前请示: 长任务中停止并询问。判断是合理的授权边界,还是明确任务尚未完成;只有后者应计为完成能力不足。

在一个业务流程中,平均值还可能掩盖重要少数。九份摘要合格、一份关键合同漏掉责任条款,不能因为整体通过率高就自动扩大使用。高风险任务可设置独立人工复核,不让统计上的平均通过替代逐项责任。

把校准结果写成一条有条件的运行规则

可复用的规则不是“所有任务 Medium”,而是“输入完整、只读工具、明确交付清单的资料整理从 Medium 起;关键字段缺失时停止;通过来源和字段检查才交付;多轮仍无法满足标准时按约定升级或交人工”。这是一条建议的流程规则,不是模型能力保证。

修改档位、提示或工具权限后,应重新跑保留的回归样本。比较时至少记录模型 ID、平台、档位、提示版本、工具版本、是否新会话以及缓存状态;无法保持条件一致的实验,先用于发现问题,不做精确的节省比例宣传。

需要区分两个默认语境:Claude Platform/API 与 Claude 应用、Claude Code 的默认设置不应混写。本文引用的 High 是 API 提示文档口径;它不意味着其他客户端默认 High,也不意味着 Buda 暴露同名控件。团队自己的实验要记录实际设置,不能用推测的默认值填表。

从“最大档位”改成“最小充分档位”

日常流程先选能稳定满足验收标准的最低档位,再给复杂任务升级。无法通过时,先看失败类型:缺输入要补材料,权限不够要调整授权,停止太早要明确完成条件,推理不足才可能需要提高 effort。

Buda 可以承接 Agent 的执行环境与可复用流程;把输入要求、工具边界和验收清单写进流程,比每次口头要求“认真一点”更容易复查。这里建议的是工作流设计,不是声称 Buda 自动提供这组 effort 控件或复现了上游跑分。

FAQ

Max 应该被禁用吗?

不应该。复杂任务可能受益,前提是在自己的任务与执行环境里测得增益。

Xhigh 的 52.1% 可以预测团队通过率吗?

不可以直接套用。它来自特定代码任务、评分规则和工具环境。

降 effort 就一定省钱吗?

一次尝试可能更便宜,但失败、重试和返工会改变最终交付成本。

不让额外审查,会漏掉必要测试吗?

停止规则应明确要求必要检查通过,再禁止未经请求的新增审查。两者不能混为一谈。

来源与延伸阅读