迁移 Claude Opus 5.5:创始人如何验收 Agent 的停止状态
迁移 AI 产品到 Claude Opus 5.5 前,逐项验证拒答、上下文耗尽、工具交接、进度展示与真实任务完成情况。
Anthropic 于 9 月 22 日发布 Claude Opus 5.5。它的迁移指南列出一些会改变应用如何启动、推进和结束任务的变化:默认 effort 不同、部分工具选择方式改变、进度内容需要正确显示、拒答和上下文上限有明确的停止原因,某些电脑操作工具还要按平台迁移。因此,用户看到 Agent“半路停工”,背后可能分别是安全拒答、上下文用尽、界面没有显示进度,或工具循环接错了。
对非技术创始人来说,关键问题是:用户能否准确知道已经完成什么、剩下什么、是否发生了外部操作,以及下一步该怎么做。本文提供一套停止状态术语、一个具体客户场景、可复用的验收矩阵和上线收据。我们没有在你的产品上测试 Opus 5.5,也没有测量它在你的任务中的表现。Anthropic 的能力和价格信息属于厂商声明;下文的验收标准是建议,不是实测结果。
上线风险来自模型信号与产品状态不一致
设想一个面向客户的研究助手:它阅读企业资料、检索获准使用的来源、起草市场简报,并在发给同事前请求确认。演示中,简报写得不错。迁移后,一位客户看着空白面板等了一分钟;另一位拿到看似完整的简报,却不知道有一个来源无法读取;第三位在助手已经保存草稿后才看到“我不能帮助完成这项请求”。三者都可能被描述成“Agent 停了”,处理方式却完全不同。
第一种可能是展示或进度问题。第二种可能是输出长度或上下文限制,也可能是应用未发现缺失证据。第三种可能是安全拒答,或外部操作发生后才触发边界。模型跑分不会替你分类这些客户经历。应用必须保留模型的停止信号,把它与工具记录和业务操作对上,再给用户一个真实的状态。
Anthropic 的停止原因文档区分正常结束、请求客户端工具、输出 token 上限、上下文窗口上限和拒答。这些只是接口事实。产品应重试、请用户补充、展示未完成草稿,还是永久终止,取决于任务及重复操作的后果。验收条件必须同时描述用户看到的状态和系统实际产生的效果。
先定义五个术语,再判断一次运行
停止原因(stop reason)是模型这一轮为何结束的结构化信号,本身不是可以直接展示给客户的解释。end_turn 表示当前轮结束,不证明整个业务任务完成。tool_use 表示应用可能需要执行客户端工具并回传结果,任务才能继续。max_tokens 表示达到本次请求的输出上限。model_context_window_exceeded 表示生成期间触及上下文容量;如果输入本身已经过长,Anthropic 说明请求也可能在生成前以 400 错误失败。refusal 是安全机制拒绝,可能作为正常的 HTTP 200 响应返回。详见停止原因、上下文窗口与拒答说明。
产品状态是应用自己的判断:工作中、等待批准、已完成、可恢复的未完成、已拒绝或失败。它应结合模型信号、工具事件和任务要求得出。外部效果指模型文本以外的动作,例如发送消息、保存文档、扣款或改动记录。收据是实际发生了什么的证据,包括响应 ID、模型 ID、停止原因、工具调用与结果、已保存文件的版本、用户看到的状态以及负责人判定。回退是失败或拒答后有意切换到另一模型或处理路径;第二条路径给出了答案,并不意味着答案合格。
这些区别能避免常见误判:把 HTTP 200 当成任务成功,把流畅的一段话当成全部完成,或把没有文字更新的流当成系统故障。Anthropic 明确说明拒答可以是正常 API 响应。产品应单独统计它,不能只看服务器错误率,更不能无声地反复提交同一请求。用户可能需要理解边界、缩小任务范围,或转给人工。另一个模型愿意回答,也不自动代表该操作符合你的产品规则。
Opus 5.5 到底改变了什么
Anthropic 的迁移清单要求明确模型 ID、用 effort 替换旧的 thinking 控制、调整不兼容的 tool_choice 形式、迁移部分电脑操作集成、在工具循环中保留 thinking 区块、正确显示需要展示的进度、处理 refusal,并重新测算成本与延迟。单独看,每一项未必会出现在界面上;叠加后却会影响任务能否继续、应用能否识别结束,以及用户是否知道真实结果。
Opus 5 的默认 effort 是 high,Opus 5.5 则是 medium。Anthropic 的effort 文档指出,它会影响包括思考与工具调用在内的输出 token;较低 effort 可能带来更少、更简短的工具调用。因此,不宜把昨天 Opus 5 的线上请求与今天 Opus 5.5 的默认请求直接对比,并把全部差异归因于模型。测试记录里要写明两边设置。针对每类任务,以被接受的结果、延迟和费用决定 effort,并明确配置,避免默认值变化悄悄改变线上行为。
迁移指南还说明 Opus 5.5 可能返回带类别的 stop_reason: "refusal",也可能以 model_context_window_exceeded 停止。前者可能是合理的安全边界,后者是容量条件;工具调用则可能只是交接,而非结束。电脑操作工具在不同平台上的版本要求并不完全一样,浏览器或桌面 Agent 应检查自己使用的平台。团队应为每种分支提供简短的前后对照轨迹,而不只是最终回答截图。
Anthropic 在发布说明中声称 Opus 5.5 的 token 价格低于 Opus 5,并介绍其性能表现。价格有助于预算,但不能证明每个成功客户任务都更便宜。effort 设置、额外重试、回退模型和人工返工都可能改变总成本。这是产品经济上的推断,须在自己的任务中验证。
把“没有文字”与“没有进展”分开
长任务执行时,界面可能看似冻结。迁移指南提示:若产品会展示工具调用之间的文字,可能需要设置 display: "updates" 或 "summarized",并正确渲染非空的 thinking 区块。Anthropic 的Opus 5.5 提示指南也讨论无人值守任务中的进度更新。创始人需要验收的是用户看到的状态是否可信、是否有边界,而非展示每个内部 token。
先约定一份进度契约:在团队设定的时间内,界面应给出当前阶段或说明正在等待;工具调用应对应真实的“正在检查来源”等状态;需要批准时,执行必须停在批准前。若流因 tool_use 结束,界面不应显示“已完成”。用户离开再回来,状态应取自持久化的任务记录,而不是浏览器里旧的转圈动画。这些是产品测试建议,不是模型厂商给出的保证。
不要为了显得忙碌而暴露原始推理或敏感工具数据。若有事件支撑,“正在比较三个获准来源;尚未发送文档”比无限重复“快好了”更有用。团队还要规定超时:等到何时停止转圈、呈现可恢复状态、给出安全的下一步?如果用户可能因沉默而重复提交付款或发送指令,这一点尤其重要。
用一个真实的客户旅程做验收样例
回到研究助手。客户要求比较三家竞品,授权读取一个文件夹,并要求分享前批准。应用应交付附有来源的草稿,且不能对外发送。换模型前就可以写明客户契约:只读取授权文件夹、使用约定的检索来源、标出证据缺口、只保存一份带版本的草稿,最终停在“等待批准”。如果应用提前发送了简报,或忽略了读不到的文件,漂亮的最终段落也不算成功。
使用一次性测试数据,在预发布环境分别运行旧模型与 Opus 5.5 的同一代表性任务。记录模型 ID、明确的 effort、输入与输出限制、提示词版本、工具定义和回退策略。让审查者逐项评分:是否使用获准证据,主张是否有引用,未知项是否标出,草稿是否只保存一次,是否在发送前停住。验收对象是完整旅程,不是一段答案。单个案例只用于演示分支,不能当作有统计意义的模型对比。
接着注入四个有边界的故障。第一,拒绝读取其中一份文件;助手应说明缺失来源,不能编造内容。第二,在工具返回完成前中断;应用不能标记简报完成,也不能盲目重放非幂等的保存操作。第三,在安全测试环境构造足够长的对话,触发上下文边界;界面应说明简报未完成,并按设计提供经过验证的续跑方式或新建任务。第四,从你产品允许的范围内选一个会触发策略边界的无害请求,观察拒答:是否允许回退、如何告知用户、此前是否已有草稿或外发消息。所有测试都用批准使用的数据和安全样例。
团队最终应能向客户说清楚:“三个来源已经核查了两个,第三个暂时无法读取。草稿已保存,但尚未分享。你可以检查证据缺口或重试来源访问。”这样的结果比虚假的“完成”和笼统的“出错了”都更有用,因为它来自应用事件与文档状态,而不是模型自述。
可复制的停止状态验收矩阵
把下表放进发布工单,替换成自己产品的路由和外部操作。预期状态是产品决策;模型信号只是输入之一。只有界面、持久化任务记录和外部效果一致,才算通过。
| 观察到的分支 | 要保留的证据 | 产品应如何表现 | 必须阻断上线的情况 |
|---|---|---|---|
必要步骤后的 end_turn | 响应、工具结果、文件版本 | 核对任务要求与外部效果后才标为完成 | 回答流畅,却缺来源或擅自发送 |
tool_use | 工具名、参数、授权、结果 ID | 显示执行中或等待中;有效结果返回后续跑 | 工具未返回就显示“完成” |
max_tokens | 上限、部分输出、最近检查点 | 标为未完成;续跑或缩小任务 | 把截断内容当最终答案 |
model_context_window_exceeded | 上下文大小、检查点、缺失步骤 | 标为未完成;走验证过的上下文恢复路径 | 静默截断或未经复核的摘要 |
refusal | 停止原因、可用的类别、此前效果 | 解释边界;暂停高风险操作;人工审核或获准回退 | 把 HTTP 200 算成任务完成 |
| 传输超时 | 请求及任务 ID、操作流水 | 重试前核对外部系统;保证幂等 | 重复保存、发送、扣费或开通 |
| 进度中断 | 最近工具事件、最近界面更新 | 如实说明等待或可恢复超时 | 永久转圈或虚构进度 |
| 回退模型作答 | 原请求及实际模型、尝试次数、文件版本 | 重新检查政策与质量,必要时说明变化 | 回退悄悄改变任务范围或质量标准 |
回退与重试需要产品政策
Anthropic 提供拒答与回退机制,也明确区分拒答与传输错误。你的政策应写明:哪些任务允许回退,可使用什么模型,哪些安全边界必须延续,以及重试前要核对哪些外部效果。一个模型拒答、另一个模型愿意回答,并不等于产品自身的边界应该取消。面对受监管、敏感或后果严重的任务,正确做法可能是交给人工,或清楚解释限制。
重试还必须认识到外部效果。假设 Agent 已调用“保存草稿”,但网络在浏览器收到确认前断开;应用若重跑整轮,就可能创建两份文档。若操作是“发送消息”,代价更高。在可用的地方为动作提供应用生成的 ID 或其他幂等控制;重试前先向外部系统核对结果。不要问模型“你觉得自己发过了吗”,要查操作流水或服务返回。
回退还可能改变用户看到的内容和成本。Anthropic 的回退文档描述了响应中的模型身份和尝试信息,也说明流式与非流式处理存在差异。收据应保存实际作答模型及尝试次数,并单独验收回退质量。若回退能力较窄,或隐私承诺不同,产品可能要在继续前告知用户。是否披露取决于你的产品约定,不存在适用于所有应用的模型规则。
比较“被接受的结果”,而不只看标价
迁移验收应使用固定、具有代表性的任务集,并记录设置。可从获准使用的案例中挑选:简单单轮问答、多来源草稿、长对话、工具错误、拒答边界和必须批准的操作。先写预期结果,再运行新模型。除非能隔离原因,否则不要同时修改提示词、工具结构、effort 与模型。如果为适配新模型必须改界面,也要单独测试界面变化。
至少衡量四项。任务验收率看输出和效果是否符合客户契约;状态准确性看界面是否正确区分完成、未完成、拒答和等待;外部效果完整性检查重复及越权操作;每个被接受结果的成本包括模型使用、重试、回退和人工修复。延迟则应量到有产品意义的节点,例如首次可信进度和最终可批准草稿,而不只是首个 token。effort 指南明确将其视为取舍;你的任务集决定哪里可以取舍。
先定上线规则,再看令人印象深刻的演示。例如,测试集里不能出现未授权发送;注入的每种停止分支都必须显示正确状态;必要来源缺失必须告知;被接受结果的中位成本应在团队预算内。这些只是规则示例,不是对 Opus 5.5 的实测阈值。十个精心选择的案例可以帮助小团队发现严重集成缺陷,却不能证明整体可靠性;上线后仍需持续监测。
带着收据灰度上线,并写清回滚条件
创始人无须逐条阅读所有轨迹。请实施者交一页材料:任务集版本、模型与 effort 设置、分支覆盖、失败案例、用户界面截图、外部效果核对、成本计算、负责人和回滚规则。原始轨迹可以另附链接,并妥善保护敏感数据。收据应只写实际测过的内容和仍未知的风险,清楚区分模型拒答与应用故障,至少展示一种经过验证的恢复路径。
上线可先面向内部,再给少量获准用户,观察真实停止状态后扩大流量。监测拒答率、上下文触顶率、未完成任务率、重复操作、进度超时、人工返工和被接受的结果。按任务类型拆分,因为总成功率可能掩盖一条高价值流程已经失效。回滚条件应关注客户受损和状态误判,而不只盯 API 错误率。拒答可能返回 HTTP 200,正说明传输健康不足以代表产品健康。
迁移指南建议先在开发环境测试,再切生产流量,并重新测算成本和延迟。把这条建议变成创始人能签字的门槛:重要的停止原因是否都能映射成真实的产品状态?已完成与未完成的工作能否区分?外部操作是否可能被重复或隐藏?只有这些问题过关,才值得比较新模型带来的客户价值。否则,即便模型更便宜、能力更强,也可能让产品更不可靠。适用范围与不适用边界
如果应用会执行多步任务、调用工具、保存文件或代表用户行动,这套门槛很有价值;尤其适合一次请求可能走向完成、拒答、部分完成或人工批准的场景。单纯的无状态文本框只需要缩小版:检查响应状态、输出上限、拒答处理和错误文案。没有真实用户问题时,不必为一次性草稿生成器搭一套复杂编排系统。
本文也没有声称 Opus 5.5 普遍会“半路放弃”。公开迁移文档说明接口变化与停止状态,并未测量它在你的产品里造成多少客户可见的中途放弃。提前停止也未必是缺陷:拒答可能正确,上下文限制是容量边界,工具交接是正常流程。真正的问题,是不查证据就把这些情况一律说成“完成”“坏了”或“模型性格”。
模型响应只是客户旅程中的一个事件。可靠的上线方式,是把模型信号、工具记录、外部效果与诚实的界面文案接成同一条可行动的状态。Opus 5.5 为团队提供了一个及时检查这份契约的契机。验收矩阵和上线收据可以在下次换模型时再次使用。