保留完整的响应结构
Preserve the complete protocol envelope
续接任务时使用完整的结构化响应,把可读文本作为单独视图。
以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。
使用场景
一个 Agent 响应含文字、工具调用和不透明续接状态,你既要显示回答,也要继续工具流程。教学信封有 text“正在检查”、tool_call 的 id=call-7,以及 opaque 内容;宿主约定续接时保留必要块与顺序,并让工具结果引用 call-7。字段仅是教学示意,不是某个 SDK 的完整 schema。
具体做法
保存允许保存的完整结构化响应,按块类型处理,不把显示文字当全部状态。界面可单独提取文字;工具执行结果匹配原调用 id,必要不透明块按宿主契约原样传递。先查清允许的保留、重放与变换规则,缺状态时报告无法完整续接,不用摘要或自造密文补齐。
反例
只保存上述 text 块,把其余响应丢弃。下一请求用“刚才正在检查”的摘要重建,随便生成一个调用 id 关联工具结果。
改进写法
按上述教学宿主契约保留响应信封,显示层只抽取文字。处理 tool_call 时使用原 id=call-7,结果也引用 call-7;续接时保留契约要求的类型块、顺序和 opaque 内容,不解密或重写它。必要状态缺失则报告缺口,不能从显示摘要重建。真实实现先核对宿主的保留和重放要求。
为什么这样改
文字是展示视图,工具身份和不透明状态是协议继续执行的材料。保存完整信封并区分用途,能避免显示处理无意间删除后续必需信息,也让结果对应哪次调用可以核对。
如何验证
教学检查比较保存与续接记录:call-7 身份一致,必要 opaque 内容未修改,工具结果没有绑定到另一个 id。显示界面只含文字也不影响协议存储。
移除必要块时应产生明确的不完整状态;只靠摘要续接、未知类型被无声丢弃或伪造不透明内容都不满足契约。
适用边界
不同 API 的保留、签名、服务器工具和暂停语义不同,冻结来源不证明当前 SDK 行为。遵守隐私与数据保留要求,不为“完整”无限存储秘密;只重放契约允许的内容。本篇没有真实 API 调用。
原文与版本
- anthropics/skills · Full continuation state
查看此版本的文件8a1541c4a3ff - anthropics/skills · Opaque result union and replay
查看此版本的文件8a1541c4a3ff