OpenAI Assistants API 停服倒计时:迁移到 Responses API,你需要知道这些
2026 年 8 月 26 日,OpenAI 会关掉 Assistants API。
如果你的产品里有用到 Assistants——创建 Thread、挂 File、跑 Run——现在离最后期限还有半年多。看起来时间充裕,但如果你的 Agent 逻辑复杂、依赖了 Thread 的状态管理,迁移工作量可能比你想的大。
这篇文章不做功能罗列(官方文档写得够详细了),只说几个迁移过程中容易踩的坑和需要提前想清楚的设计决策。
先说清楚:Responses API 到底是什么
很多人把 Responses API 当成 Assistants API 的"升级版"。不完全对。
更准确地说,Responses API 是 Chat Completions API 的升级版,同时吸收了 Assistants API 里那些好用的能力(工具调用、文件处理、持久线程)。
关系是这样的:
- Chat Completions API → 继续可用,OpenAI 没有给停服时间
- Assistants API → 2026 年 8 月关停
- Responses API → 新的推荐方案,兼具两者能力
所以如果你只用了 Chat Completions,不用急。但如果你用了 Assistants 的 Thread、Run、File 功能,必须迁移。
迁移中最容易被坑的三个点
1. Thread 的状态管理变了
Assistants API 的一个卖点是"托管状态":你创建一个 Thread,往里追加 Message,跑 Run 的时候 OpenAI 帮你维护整个对话上下文。你不用自己管历史消息。
Responses API 也支持持久线程,但行为不完全一样。你需要注意:
- Responses API 的线程是可选的,默认是无状态的(和 Chat Completions 一样)
- 如果你要用线程,得显式创建和引用
- 线程里的消息格式和 Assistants 不同,不能直接迁移
这意味着:如果你之前依赖 Assistants Thread 来保存长期对话状态,迁移时要么重建线程,要么把状态管理搬到自己这边。后者更可控——自己存对话历史,每次请求带上需要的部分。
2. Run 的概念没了
Assistants API 里,一次完整的 Agent 执行叫一个 Run。Run 有状态机(queued → in_progress → requires_action → completed),你可以轮询或者用 Webhook 监听状态变化。
Responses API 没有 Run 这个概念。一次请求就是一次请求。如果模型需要调用工具,它会在响应里返回 tool_calls,你执行完再发下一次请求。
这个变化对简单场景没影响,但对复杂的多步 Agent 有影响。以前一个 Run 可以自动执行多步工具调用(Code Interpreter 就是这样),现在你得自己写循环。
好消息是,OpenAI 同时推出了 Agents SDK(Python),帮你封装了这层循环逻辑。但如果你用的是其他语言,或者不想依赖 OpenAI 的 SDK,这部分逻辑要自己实现。
3. 文件处理方式不同
Assistants API 支持上传文件到 OpenAI,然后在 Run 里用 Code Interpreter 或 Retrieval 处理。文件和 Thread 绑定,生命周期由 OpenAI 管理。
Responses API 也有文件能力,但更像"工具"而不是"托管服务"。你上传文件,调用 File Search 工具或 Code Interpreter 工具去处理它。文件不再自动和线程绑定。
如果你的产品让用户上传文档做问答,迁移时要重新设计文件的生命周期:什么时候上传、什么时候删除、怎么和会话关联。
迁移策略:渐进还是一步到位
两种路线,看你的系统复杂度。
渐进式:先把 Chat Completions 的部分切到 Responses API(改动最小,基本就是换个 endpoint),跑稳了再处理 Assistants 的部分。这样风险小,但维护两套调用逻辑的时间会长一些。
一步到位:直接用 Responses API 重写整个调用层。适合调用逻辑集中在一个模块里的项目。改动大但改完就干净了。
不管哪种,建议做一件事:在调用层加一个抽象。不要让业务代码直接依赖 OpenAI 的 SDK 接口。中间加一层自己的接口定义,底层可以随时换实现。这次迁移吃的亏,下次就不用再吃。
对 API 聚合平台的影响
如果你用的不是 OpenAI 直连,而是通过 API 聚合平台调用,情况稍有不同。
多数聚合平台兼容的是 Chat Completions 接口(/v1/chat/completions),这个接口没有停服计划,你的代码不用改。
但如果你通过聚合平台调用了 Assistants API(部分平台做了透传),那也需要迁移。建议确认一下你用的平台是否已经支持 Responses API 的透传。
还有一个机会:Responses API 新增了 MCP(Model Context Protocol)服务器支持,意味着模型可以直接连接外部工具。如果聚合平台未来也接入了 MCP 生态,工具调用的玩法会更丰富。
时间线建议
| 时间 | 动作 |
|---|---|
| 现在 | 盘点代码里所有 Assistants API 的调用点 |
| 2 月 | 在测试环境搭一套 Responses API 的调用,跑通核心流程 |
| 3-4 月 | 灰度切换,先切流量少的场景 |
| 5-6 月 | 全量切换,观察稳定性 |
| 7 月 | 清理旧代码,删除 Assistants 相关逻辑 |
| 8 月 26 日 | Assistants API 正式关停 |
提前两个月完成迁移,留出缓冲。最怕的是拖到 7 月发现迁移有坑,时间不够了。
一个额外的好消息
Responses API 支持了 o3 和 o4-mini 等推理模型在 chain-of-thought 中直接调用工具。这意味着模型在"思考"的过程中就能查数据、跑代码,不用等输出完再执行。
对于构建复杂 Agent 的团队来说,这是实实在在的能力提升。迁移不只是"被迫换接口",也是拿到新武器的机会。
参考链接
- OpenAI 迁移指南:
https://platform.openai.com/docs/guides/migrate-to-responses - Responses API vs Chat Completions:
https://platform.openai.com/docs/guides/responses-vs-chat-completions - Responses API 新功能公告:
https://openai.com/index/new-tools-and-features-in-the-responses-api