切换到 Claude Fable 5.2 后,智能体还能接着上次的会话工作吗?

返回
Kevin Riedl

11 分钟 阅读 · 2026年11月14日
最近审核

下一篇
图片在你的设备上生成,不连接 Instagram。文章链接会复制到剪贴板,供链接贴纸使用。

对账智能体查询发票 DEMO-17,财务系统返回 47.50 欧元。答复还没发给用户,新版本部署就重启了工作进程。数据库里有聊天记录,监控也显示查询成功。接手的进程能直接报出金额,省去再查一次发票吗?

对于使用 Claude Messages API 的应用,要看数据库究竟存了什么。助手有时只调用工具,不输出可见文字。如果应用只保存界面上显示的内容,就会漏掉整个助手轮次。新版本若用今天的系统提示词还原昨天的会话,也会改写模型收到的历史。每次演示都新建对话,这两个问题就很难暴露。

资料核对日期为 2026 年 11 月 14 日。我们用模拟数据实际运行了下文的六项本地存储测试。模型行为依据 Anthropic 文档,线上升级与回滚部分则是供你在自己的部署环境中执行的验收方案。若你使用的是命令行编程工具,模型选择和启动参数见 Claude Code 的 Fable 5.2 使用指南。

进程重启后的第一个 API 请求,哪里容易出错?

恢复后的第一个请求会用到两份数据:应用上次保存的会话状态,以及新进程加载的配置。通过 Claude API 同步调用 Fable 5.2 时,如果某个已保留思考块之前的输入变了,API 可能返回 HTTP 400。用全新会话试跑第一轮,不会触发对旧思考块的这项校验。Anthropic 的 Fable 5.2 迁移指南

比如,旧版工具描述是“读取一张已登记发票的总额”,新版在末尾加上“和币种”。即使两个版本返回的数据完全一样,用新的工具定义恢复旧对话,思考块之前的输入也已经不同。原样重试三次,就会把同一处不匹配再提交三次。

前缀校验比较 JSON 解析后的值。空白和对象的键顺序可以变化,数组顺序、历史消息和工具定义会影响校验。仅修改 max_tokens 或 effort 不会导致这种错误。一次编辑可能使编辑位置之后生成的块失效,更早的块有各自的历史。Message Batches 对前缀不匹配另有默认处理方式。Claude API 前缀校验检查哪些输入

恢复会话前,工作进程需要保存哪些数据?

按“下一个请求需要什么”来保存数据。即使界面上没有新文字,也要保存上次成功请求实际使用的系统指令、按原顺序排列的工具定义与消息历史、助手返回的完整内容块数组,以及应用已经拿到的工具结果。Anthropic 关于保存和恢复会话的说明

接手进程从这笔发票的记录中能确定什么
已保存的数据接手进程能确定的事实
原请求的输入用户查询了 DEMO-17,请求使用了特定的系统指令和工具定义。新进程可以按版本取回它们,或直接加载保存的值。
助手返回的完整轮次先是一个可见摘要为空的不透明思考块,随后是 ID 为 toolu_demo_17 的查询调用。只导出文字会把两者都丢掉。
工具结果与回执应用记录了该次调用返回的 47.50 欧元。它可以把原结果交给模型,再用单独保存的回执核对最终答案。
任务状态发票已查到,答复尚未送达。接手进程可以确定还剩哪一步。

模型返回的思考块对应用是不透明的。把它的字段原样存进助手轮次即可,无需提取推理内容或将其写入日志。若工具在客户端执行,紧接着的用户消息应带上对应 tool_use.id 的 tool_result。工具结果应排在该消息最前面,两轮之间不要插入聊天消息。并行调用的每个工具都需要各自匹配的结果。Claude API 返回工具结果的规则

怎样离线测试自己的会话存储?

切换模型前可以先运行可下载的 Python 会话回放检查脚本。脚本只用 Python 3 标准库,无需 API 密钥。发票、工具 ID 和签名字段都是模拟数据,检查的是应用保存和重新加载的值。示例签名只在这份测试数据中充当占位符。

python3 check_replay.py
python3 check_replay.py --emit-fixture > original.json
# 让应用保存 original.json,重启工作进程,
# 再将重新加载的记录导出为 restored.json。
python3 check_replay.py --check-restored restored.json

默认运行结果为 6/6 expected outcomes:一条完整记录通过,五条故意改坏的记录均返回预期的错误标签。如果检查器对所有记录都放行,它就过不了这五项反例。把 original.json 直接传回脚本,只能验证示例文件本身。做发布验收时,让这条数据经过真实用户会话所用的数据库、消息队列、SDK 格式转换和重载流程。

六项离线测试的实际结果
改动脚本输出应用中应排查的位置
原样恢复,助手没有可见文字intact即使前端隐藏了空的聊天气泡,存储层也必须保留这个轮次。
改写系统指令changed prefix: system工作进程可能用同一个别名取到了新版提示词。
修改工具描述changed prefix: tools生成工具定义的代码可能给旧会话载入了当前部署的版本。
重写早先的请求changed prefix: messages生成界面摘要时,展示用的文本可能覆盖了原始消息。
颠倒助手内容块的顺序changed assistant turn读取数据库记录时未按序号排序,重新组装的数组就可能乱序。
结果关联了错误的调用 IDunmatched tool result金额本身可能正确,却被挂到了另一笔查询上。

脚本会统一 JSON 对象的键顺序,保留数组顺序,比对归档值,并检查调用 ID 与结果的对应关系。这是针对存储完整性的严格比较。它无法鉴别 Anthropic 签名的真伪、复现服务端报错或判断模型能否读取某个块。可按自己的数据结构补充用例,例如并行调用以不同顺序结束,以及工具已返回、回执尚未写入时重启。

同一会话从 5.1 升到 5.2 再回滚,会发生什么?

在 Anthropic 直连 API 上,前面的输入仍然有效时,Fable 5.2 可以读取 Fable 5.1 已保留的思考块。反过来,Fable 5.1 无法读取 5.2 生成的块。回滚时可能返回 HTTP 200,但旧模型继续任务时已无法使用先前的部分推理。应用数据库里仍可存有完整历史。服务端在一次请求中略过某个块,不会改写数据库。切换模型时,保留的思考块如何处理

分开决定新流量和在途会话走哪个模型。新发票可以在创建会话时切换。对于已开始的工作,在会话里记录模型,只要原来的路线仍可用,就让这批任务沿用原模型完成。必须中途切换时,单独记录这个事件,便于追踪。模型路由指南介绍了可以在哪一层作出这个决定。

若旧会话已经无法通过前缀校验,先用最近一次成功请求核对恢复后的系统指令、工具定义和历史消息。能找到完整版本就从该版本恢复。如果原始输入已丢失,把已核实的业务事实交给一个明确标记的新会话。对于 DEMO-17,这些事实包括发票编号、47.50 欧元的查询结果、对应回执,以及答复尚未送达。Anthropic 关于思考块绑定到其他会话的排错指南

上线前该用真实 API 验证哪些场景?

用非生产账号测试,服务商接入方式、SDK 和存储适配器应与待发布的版本一致。每个用例都使用该账号实际获得的助手内容块。为只读工具准备一张金额已知的发票,记录每次调用,再用独立保存的金额与币种核对答案。下面五项是待执行的验收方案。

发票查询流程的五项线上验收用例
场景操作保留哪些证据
5.2 新会话基线用 claude-fable-5-2 完成一次查询,中途不重启。模型 ID、请求 ID、工具调用次数、最终答复中的 47.50 欧元,以及 token 用量和耗时。
重启并沿用同一模型保存查询结果后停止进程,由新进程加载记录,继续使用 5.2。答复应与回执一致,工具调用总数应为一次。出现额外查询就单独记录。
从 5.1 升到 5.2保存 5.1 实际返回的工具调用轮次,带着原始前缀在 5.2 上继续。记录状态码、响应中标明的模型,以及业务结果是否通过核对。若失败,逐项对比存储值和发出的请求。
从 5.2 回到 5.1用 5.2 实际生成的会话历史,反向切换到 5.1。记录结果、额外调用、token 用量和延迟。单凭答对金额,无法判断旧模型能否读取先前的思考块。
故意改动前缀复制一份 5.2 实际返回的轮次,在直连同步 API 上只改之前的系统指令,保留受影响的思考块。观察默认前缀错误及进程如何恢复。只记被改动的字段名和请求 ID,无需把整段对话写入日志。

可以为该流程设一条验收线:每个通过的用例都须答对金额和币种,只查询一次,不执行写操作。查错发票或重复执行外部操作时,先查清原因再扩大流量。延迟与成本的阈值沿用现有服务目标。监控上应将新建会话和恢复会话分组,否则成千上万个成功的新会话足以掩盖每次重启的失败。发布前的其他核对项见上线前 QA 检查清单。

若流程还能退款,提交后超时意味着账务状态待核实。用这笔退款固定的业务操作 ID 查询下游系统。只有确定原请求已不可能再提交成功,或下游接口明确保证用同一业务操作 ID 重试具有幂等性,才可以再次提交。Claude 的工具调用 ID 能帮你关联会话消息,防止重复退款还需要实际执行退款的系统能够识别同一笔操作。AWS 关于 API 幂等重试的说明 · 发送结果不确定时如何恢复的实例

重试多少次会抵消 Fable 5.2 的 token 价格优势?

按直连 API 标准价,25,000 个未缓存输入 token 加 2,000 个输出 token,5.1 收费 0.35 美元,5.2 收费 0.28 美元。每百万输入/输出 token 单价依次为 10/50 美元和 8/40 美元。算例假设各次用量相同,排除缓存、批处理、工具、基础设施和人工复核费用。Fable 5.2 的规格与价格 · Fable 5.1 的规格与价格

假设 5.1 用 20 次尝试得到 20 个验收通过的答案,模型费用为 7.00 美元。换成 5.2,如果重启和重试使同样的 20 个答案用了 25 次尝试,费用也是 7.00 美元。第 26 次就会推高到 7.28 美元,每个通过的答案平均为 0.364 美元。这是算例。试点时,用所有尝试的实际总成本除以独立核验通过的结果数,失败任务已经发生的支出也应计入分子。

决定是否迁移时,可一起查看三项结果:存下来的轮次能否经受重启?真实模型能否只查一次就答对?每个验收通过的答案花了多少钱?如果团队要为自己的流程建立可反复运行的验收测试,可了解我们的 AI 评估与 LLMOps 服务,或讨论智能体验收方案。

要了解原型进入企业试点时还要准备哪些工作,可以参考Twinsoft AI 项目案例。

Fable 5.2 会话恢复常见问题

可以用截图或导出的聊天记录恢复会话吗?
界面导出通常只包含用户看过的文字。检查导出文件是否保留了完整的助手内容块数组、此前的系统指令与工具定义、原序消息和工具结果关联的 ID。若有缺失,就提取其中已核实的事实,创建新会话,并明确记录此次交接。
返回 HTTP 400 就表示思考块的前缀变了吗?
先读错误详情并记录请求 ID。消息格式错误、工具结果指向了错误的调用,也可能无法通过校验。把保存的结构与实际发出的请求逐字段对照。原样重试不能修复输入。
可以把下载脚本里的签名发给 Claude 吗?
示例签名仅供本地测试,是为了检测数据是否被改动而设置的标记。线上验收要使用测试账号从相应服务商接口实际获得的助手轮次。真实的签名块应只保存在获准处理这些数据的系统内。
如果助手没有返回任何文字,该怎么办?
查看停止原因和全部内容块。界面没有文字时,工具调用仍可能在等待结果。达到 token 上限也可能让响应在输出文字前结束。先保存返回的轮次,按实际停止原因处理,再判断是否完成任务。
回归测试需要放入客户的真实对话吗?
可以先用模拟发票和可复现的工具结果。这样其他工程师也能复现失败,无需接触客户记录。如果生产事故暴露出以前没有覆盖的数据结构,再用能重现这个存储缺陷的最小模拟样本补充测试。
离线结果能预测 Bedrock 或 Message Batches 上的表现吗?
离线检查衡量的是应用保存的数据。应针对实际使用的每种服务商接口和处理模式分别验收。本文的线上用例假设通过 Claude 直连 API 同步调用。批处理中的单个请求按默认行为可能会丢弃前缀不匹配的思考块。

用证据决定试点的下一步

先明确一个工作流、具有代表性的样本和需要验收的结果,再确定评估集、可接受的失败边界,以及现有 AI 系统扩展前必须提供的证据。

相关服务:

只收重要内容

关注与你相关的内容

每当我们发布新文章,你会收到一封简短邮件。你可以关注整个博客,也可以只选感兴趣的主题。

你希望接收哪些内容?
选择主题

免费、双重确认、不使用跟踪像素。

返回
Kevin Riedl

11 分钟 阅读 · 2026年11月14日
最近审核

下一篇

获取下一篇关于交付与 QA的一线笔记

有新文章时发送一封简短邮件,不使用跟踪像素,也不发送填充内容。

免费、双重确认、不使用跟踪像素。