TOPIC COLLECTION
Claude API消息线程(message threads)公测:长对话每轮只发新消息、首字延迟降约35%,但不省token,5分钟过期和404重放要自己兜底
Anthropic于2026年11月2日在Messages API推出message threads公测:首轮发送完整对话并带thread create,之后每轮只发新消息和上一条响应id,服务器在内存中保留对话。需beta头message-threads-2026-08-12,线程5分钟无请求即过期、最长1小时内删除;价格、限速和token用量不变,500k–1M token请求的首字延迟中位数约降35%。
资料更新:2026-11-04
依据Claude Platform发布说明(2026-11-02)、Message threads官方文档与Claude官网文章《Make long-running agents faster with message threads》整理;35%为Anthropic公布数据,本站未自行压测。核查2026-11-04(新加坡时间)。
主题标签:Claude API、message threads、Claude开发者平台、智能体开发、首字延迟
做过长链路智能体的人都碰到过这个问题:对话越长,每一轮请求越胖。几百轮工具调用之后,一次请求要把几十万 token 的历史整包再传一遍,模型还没开口,时间就先花在上传和校验上了。
Anthropic 11 月 2 日给 Messages API 加了个 message threads(消息线程)公测,思路很简单:历史在服务器那边临时存着,你每轮只发新增的部分。官方给的数据是,Claude Code 大部分用户已经默认开着它,50 万到 100 万 token 的请求,首字延迟(TTFT)中位数降了约 35%。
先把最容易误会的一点说在前面:它省的是时间,不是钱。Claude 每一轮仍然会读完整段对话,token 用量、价格、限速都不变。
怎么用:两个动作
所有请求都要带 beta 头 anthropic-beta: message-threads-2026-08-12,然后在 Messages 请求里加一个 thread 字段。
第一轮(create):照常发完整对话、system、tools,再加上:
"thread": {"type": "create"}
之后每一轮(continue):只发上一轮之后的新消息,带上一条响应的 id,system 和 tools 不要再发(连 null 都不能发):
"thread": {"type": "continue", "previous_message_id": "msg_上一轮响应的id"}
新消息一般以 user 消息开头,可能是你下一句话,也可能是回应上一轮 tool_use 的 tool_result。官方 SDK 里有个 thread helper,beta 头、create/continue 切换、过期后的重放都替你做了,用 Python、TypeScript、Java、Go、C#、PHP、Ruby 的可以直接上 helper。SDK 的 beta 版 tool runner 也默认走线程,不想要可以在创建时关掉。
每轮该发什么,别发错
| 类别 | 字段 | 规则 |
|---|---|---|
| 只在 create 发 | system、tools | continue 时发了会报错 |
| 固定不变 | model、tool_choice、thinking、mcp_servers(授权 token 除外)、context_management、output_config、container 里的 skills、顶层 cache_control、anthropic-beta 头集合 | 每轮都要发,且必须和 create 时一模一样,否则 400 thread_fingerprint_mismatch |
| 可变 | max_tokens、stop_sequences、stream、metadata、service_tier 等 | 每轮可以改 |
想换模型、换 system prompt?只能开新线程。线程是只追加的,每个响应 id 只能被 continue 一次,想回到中间某轮改一句也得新开。
5 分钟过期,这是最大的坑
线程是「尽力而为」的:上一次请求之后 5 分钟没动静就过期,最长 1 小时内被删除。每存下一条响应,5 分钟重新计时。过期后 continue 会返回 404,错误码 thread_not_found,而且不告诉你原因。
官方列出的 404 原因不止过期一种:
- 上一轮的响应还在生成;
- 上一轮因为 tool 调用被 max_tokens 截断,服务器没存;
- 上一轮是 fallback 模型答的(线程只认一个模型,fallback 的回答不入库);
- 换了组织、workspace,或者换了 API Key / 服务账号(旧式 workspace key 建的线程只认那把 key);
- 新消息里带了原对话装不下的东西,比如原来没图、突然加第一张图。
所以官方反复强调:你的应用才是对话的真相来源,每条消息自己存一份,从第一天就写好「重放」逻辑——收到 404 就把完整对话(带 system 和 tools)重新 create 一次,再从新 id 继续。注意请求一个不存在的模型也会 404,重放前先看 error.details.error_code。
流式、缓存和拒答
- 流式:响应 id 在 message_start 就到了,但要等收到 message_stop 再 continue,早发可能 404。流断了就把同一个 continue 再发一次,若返回
thread_already_continued或thread_continue_in_flight,改走重放。 - 提示缓存:线程不会替你缓存。想每轮都缓存,就在每个请求上带同样的顶层
cache_control。一个带 thread 的请求最多 4 个缓存断点,顶层那个算一个,create 时 system/tools 上的断点每轮都要重复计数,超了返回 400thread_unsupported_request。 - 拒答:遇到
stop_reason: "refusal"不要 continue,服务器可能已经存了被拒那轮,删不掉;开新线程,去掉或改写那一轮。 - pause_turn:从那条响应 id 继续,messages 传空数组。
哪些情况用不了
| 不支持 | 会发生什么 |
|---|---|
| Message Batches 批处理 | 带 thread 的条目在结果里报 invalid_request_error |
| Token 计数接口 | 400,只能按完整对话计数 |
| Compaction / 按需压缩 | 400;要压缩就自己写摘要,用摘要开新线程 |
| Context editing | 仅 clear_thinking_20251015 且 keep 为 all 时可用 |
| 开了 HIPAA readiness 或 Inference hooks 的组织 | 不支持 |
| 零数据保留(ZDR) | 线程功能本身不属于 ZDR 适用范围 |
数据方面,线程内容在内存中加密保存、不落盘,停用后最多 1 小时删除。文件是按引用保存的,线程用着的时候别把文件删了。另外目前没有任何接口可以列出、读取或删除线程。
在哪些平台能用
官方列出的是:Claude API(Claude 开发者平台)、Claude Platform on AWS、Google Cloud 上由 Anthropic 托管的 Claude Models、以及 Microsoft Foundry 里的 Claude。所有模型都在 beta 范围内。文档里没有点名 Amazon Bedrock,走 Bedrock 的先别默认能用;通过 OpenRouter 这类聚合平台的,要看平台有没有透传这个参数。
值不值得现在接
| 场景 | 收益 | 建议 |
|---|---|---|
| 长链路编程智能体、几百轮工具调用 | 大 | 优先接,配好重放 |
| Computer use,每轮带截图 | 大 | 截图不用反复上传 |
| 大文档、多图问答 | 中到大 | 请求体明显变小 |
| 短对话客服、单轮调用 | 几乎没有 | 不必折腾 |
| 离线批处理 | 不支持 | 继续用 Batches |
我的判断是:如果你本来就用 SDK,换成 thread helper 成本很低;自己拼 HTTP 请求的,工作量主要在重放和错误码处理上,建议先在测试环境把 404、fingerprint mismatch 这几条路径跑一遍再上生产。延迟收益和对话长度强相关,几千 token 的对话感觉不到。
延伸阅读
Claude Code 用户其实已经在默认享受这个改动。和账号、订阅相关的规则变化,站内这周写过Claude 新版使用政策 11 月 12 日生效。做智能体的框架可以看 LangChain,更多模型接口在海外大模型API和大模型开发框架,终端编程工具在终端编程智能体。
常见问题
用了线程会不会更便宜?
不会。官方明确说价格和限速不变,模型每轮仍读完整对话。想省钱看提示缓存。
和 Managed Agents 里的 session threads 是一回事吗?
不是。文档专门说明两者不同,message threads 是 Messages API 层面的功能。
能不能从中间某轮分叉?
服务器端不行。SDK helper 有 fork 方法,本质是用你本地保存的对话开一个新线程。
来源与核查日期
- Claude Platform 发布说明(2026-11-02 条目)
- Claude 文档:Message threads
- Claude:Make long-running agents faster with message threads
核查日期:2026-11-04(新加坡时间)。beta 头、字段规则与平台范围以官方文档实时版本为准;35% 延迟改善为 Anthropic 公布的 Claude Code 数据,本站未自行压测。