Claude API 长对话的新线程:少传历史,但别丢掉自己的消息记录

小周debug Lv.3 2026/11/4 16:00:43 浏览 0

Claude API 的消息线程可以在续聊时只上传新增消息,但服务端线程会过期,应用仍需要保留完整对话。Anthropic 在 11 月 2 日将这项能力作为测试版开放给 Messages API;它更适合长对话或多轮智能体循环,主要减少重复上传和处理历史内容带来的开销。

一个两轮例子:第一次请求发送系统指令、需要的工具和用户消息,同时创建线程;收到回复后保存这次回复的 ID。第二次请求只发送新增的用户消息,并用上一次回复 ID 继续线程;系统指令和工具沿用首次创建时的值,续聊请求里不要再传这两项,即使传空值也会报错。每收到新的回复,再用新的回复 ID 续接。模型等固定字段也要与首次请求保持一致;要换这些设置,就需要新建线程。

最关键的边界是有效期:线程在最后一次请求后的 5 分钟过期,服务端最晚在最后使用后 1 小时内删除。如果继续请求返回线程不存在,应该用自己保存的完整对话发起新的创建请求,再接着走;不能只保存最后一个回复 ID,假定服务器能永久找回历史。官方 SDK 的线程辅助工具会处理部分重放,但它保存的历史只在辅助对象的内存中;进程重启后仍要靠应用自己的持久化记录。

线程也不等于自动启用提示词缓存。续聊请求变小和缓存是否命中是两件事;需要缓存时还得按缓存规则设置。服务端是否保存了某一轮,也不会在该轮响应中确认,要到下一次续聊时才能知道。

这项功能仍是测试版,直接调用时每次请求都需要对应的测试版标头;它不适用于零数据保留和 HIPAA 合规场景,也不支持批处理等部分功能。用在生产前要核对账号的数据处理要求和功能兼容性。以上根据接口说明整理,没有实际调用或测量延迟。

评论 0

发表评论

登录后参与讨论

登录

暂无评论