小白 / Xiaobai
开发者 · 产品构建者
持续构建 AI 工程系统、开发者工具与长期数字资产。
关于作者与 XBSTACK →
OpenAI Assistants API 即将停用:Responses API vs 自定义 Agent 怎么迁移
OpenAI Assistants API 已弃用,并将于 2026 年 8 月 26 日关闭。本文解释现有 Assistants/Threads/Runs 如何迁移到 Responses API、Conversations 与工具调用,并比较托管能力和自定义 Agent 的边界。
直接结论:截至 2026 年 8 月 15 日,OpenAI Assistants API 已经不是“要不要选”的新项目方案,而是一个必须退出的旧接口。OpenAI 官方已将其标记为 deprecated,并明确将在 2026 年 8 月 26 日关闭。新项目直接使用 Responses API;仍在运行 Assistants / Threads / Runs 的系统,应把这 11 天用于迁移、回归测试和切流,而不是继续追加新功能。
这篇文章原来讨论“Assistants API 还是自定义 Agent”。这个问题现在已经变了。Assistants API 本身即将退出,真正需要比较的是:哪些能力迁移到 Responses API / Conversations,哪些业务能力仍然必须留在自己的 Agent 编排层。
先做什么:把 Assistants 项目拆成六个责任层
不要从“把 thread_id 换成另一个 ID”开始。先把现有系统拆成六层:
- 指令与模型配置:Assistant instructions、模型、温度和工具配置分别在哪里维护;
- 会话状态:Thread/Message 当前承担了多少真正的业务状态;
- 工具与文件:Function Calling、File Search、Code Interpreter 的输入输出和权限边界;
- 运行状态:Run / required_action / tool output 的等待和恢复逻辑;
- 业务审批:支付、发布、删除、外发等动作是否依赖应用自己的审批单;
- 外部副作用:工具重试时是否有稳定幂等键、唯一约束和结果复用。
前四层可以大量迁移到 OpenAI 当前的 Responses / Conversations / Tools 体系,后两层不能因为换了 API 就交给模型平台。
Assistants API 为什么现在必须迁移
OpenAI 当前 Assistants 文档已经明确标记 Deprecated,并给出 2026 年 8 月 26 日的 shutdown 日期。官方同时明确建议新集成使用 Responses API。
这意味着原先“Assistants API 上线快,所以原型优先选它”的建议已经失效。即使只是内部 Demo,也没有理由在一个即将关闭的接口上继续积累新代码。
现有 Assistants 项目仍然可以在停用日前运行,但应该立即冻结新增架构依赖,把精力放到:
- 导出和核对 Assistant、Thread、Message、File / Vector Store 等对象;
- 建立 Responses API 的等价业务路径;
- 验证工具调用、文件检索、多轮上下文和权限;
- 双写或影子运行关键请求;
- 为生产流量准备回滚开关;
- 在 8 月 26 日前完成切流。
Responses API 解决了什么
Responses API 是 OpenAI 当前推荐的统一模型调用接口。它可以直接组合文本/多模态输入、function calling、Web Search、File Search、Code Interpreter、Remote MCP 等工具能力。
多轮会话不再必须围绕 Assistants 的 Thread/Run 对象设计。对于需要持久会话状态的应用,可以使用 Conversations 管理跨 Response 调用的 items;轻量场景也可以使用 previous_response_id 串联前一次响应。
但这里最容易产生新的误区:Conversation 不是你的业务数据库。 用户身份、租户权限、订单状态、审批记录、幂等键、任务过期时间、补偿事务仍应由应用自己的数据库负责。
迁移时不要机械做“对象一对一替换”
旧 Assistants 架构通常长这样:
Assistant
└─ Thread
├─ Message
└─ Run
├─ Run Step
└─ required_action / submit_tool_outputs
迁移后的应用更适合按责任拆开:
Application DB
├─ user / tenant / permission
├─ business workflow state
├─ approval ticket
└─ idempotency ledger
OpenAI
├─ Responses API
├─ Conversation / previous_response_id
└─ Tools: function / file_search / code_interpreter / remote MCP
这样做的价值不是“对象更少”,而是让平台会话状态和业务真相彻底分离。未来即使换模型、换供应商或把某个工具迁回自建服务,也不需要重写订单和审批状态。
Responses API vs 自定义 Agent:现在应该怎么选
| 场景 | Responses API 为主 | 自定义编排层为主 |
|---|---|---|
| 单模型问答 + 工具调用 | 适合 | 通常没必要 |
| File Search / Code Interpreter | 适合 | 只在特殊合规/成本边界下自建 |
| 简单多轮会话 | Conversations / previous_response_id 足够 | 通常没必要 |
| 多供应商模型路由 | 需要额外封装 | 更适合 |
| 严格状态机 / 长时间工作流 | 需要应用状态配合 | 更适合 |
| 高风险 Human-in-the-loop | 平台工具能力可参与 | 审批真相应在业务层 |
| Exactly-once 外部副作用 | 不提供业务保证 | 必须自行实现 |
| 私有部署 / 本地模型 | 不适用 | 更适合 |
所以“自定义 Agent”不是为了和 Responses API 对抗。更合理的架构是:Responses API 负责 OpenAI 模型与托管工具,自定义编排层负责业务状态、权限、恢复与跨系统事务。
11 天迁移清单
如果你的生产系统仍依赖 Assistants API,我会按这个顺序处理:
- 冻结新的 Assistants-only 功能;
- 清点 Assistant、Thread、Run、File/Vector Store 的使用路径;
- 为每条路径建立 Responses API 等价测试;
- 将用户/租户/审批/幂等从 Thread metadata 中抽离到业务数据库;
- 对 function calling 做输入 Schema、权限和副作用回归;
- 对 File Search / Code Interpreter 做数据保留与权限复核;
- 影子运行真实请求,比较结果和失败模式;
- 增加切流开关和回滚路径;
- 在 2026 年 8 月 26 日前停止生产依赖 Assistants API。
一个容易忽略的数据边界
OpenAI 当前数据控制文档对 /v1/responses、Conversations 和旧 Assistants 对象的应用状态保留规则并不完全相同。迁移不是只改 SDK 方法名,还要重新核对组织的数据保留、Zero Data Retention、后台执行和工具使用要求。
如果你的系统处理企业私有数据、健康数据、金融数据或其他敏感信息,这一步应该进入迁移验收清单,而不是等上线后再补。
FAQ
Assistants API 关闭后 Thread 会自动变成 Conversation 吗?
不要假设会自动迁移。应用应按照官方迁移指南显式迁移和验证自己的数据与调用路径。尤其不要把旧 Thread ID 当成未来业务层永久主键。
现有项目只差几天,能不能先不迁?
如果是生产依赖,不建议。截止日期是 2026 年 8 月 26 日,留给故障回退的时间已经很少。至少要立即完成等价路径、回归测试和切流开关。
Responses API 能代替 LangGraph 之类的框架吗?
不是同一层。Responses API 提供模型、工具和会话能力;LangGraph 等框架解决显式工作流、状态、恢复、分支和长任务编排。简单应用可以只用 Responses API,复杂业务可以把 Responses API 作为模型/工具执行层。
继续阅读
- OpenAI Agents SDK RunState:Tool Approval 跨进程恢复
- AI Agent 全栈指南
- LangGraph Human-in-the-loop 审批流
- MCP OAuth 认证与生产授权
从单个 Agent 问题继续进入完整生产体系
AI Agent 专题统一组织架构、记忆、工具调用、评测、安全、部署和多智能体协作,让每篇文章都回到明确的主题主页面。
继续阅读
返回专题 →AI 工程周报
只发真正改变工程判断的变化、故障、实验和新资产。
参与讨论
问题、验证与勘误
登录后可发表评论。所有新评论先进入审核;审核期间仅评论者本人和管理员可见,通过后才公开。