GPT-6 Astra 上线:Responses API 迁移不只是换模型
GPT-6 Astra 的工具调用必须迁移到 Responses API,纯文本 Chat Completions 仍可继续使用。本文拆解请求与状态变化、异步工具调用和中途干预,并结合工程投入、token 价格、缓存利用率与已完成任务成本,说明团队如何规划影子路径、恢复测试和上线节奏,避免把迁移误当成只改模型名。

GPT-6 Astra 让工具调用成为一项 Responses API 迁移工程,而不是改一行模型名就能完成的升级。OpenAI 于 2026 年 9 月 3 日发布该模型:Chat Completions 仍支持纯文本,但凡调用工具的 Astra 工作流都必须迁移到 Responses;异步工具和回合中途干预也改变了长任务的运行方式。
真正需要做的决定有两个:这次迁移该投入多少工程资源,以及新的控制能力能否降低等待、纠偏和重启智能体任务的成本。
GPT-6 Astra 与 Responses API 到底变了什么
发布前的 Astra 画像还是一款尚未开放的研究模型。9 月正式发布后,它有了公开模型 ID gpt-6-astra 和明确价格,并同时进入 Chat Completions 与 Responses。首批访问权限面向 OpenAI Trusted Access Program 中的企业,API 和更多方案的访问权限将在接下来几天陆续开放。
该选哪个端点,取决于应用实际要做什么。只处理文本的 Chat Completions 集成可以使用 Astra;只要集成允许 Astra 调用自定义 function 或 OpenAI 托管工具,就必须使用 Responses API。
Responses 改变的是应用契约。Chat Completions 输入一组消息,返回一组选项;Responses 则传递带类型的 Item。消息是一个 Item,function_call 是另一个 Item,工具结果则以 function_call_output 返回,并携带原始 call_id。
迁移中有两个很容易踩的坑。使用 previous_response_id 串联请求时,顶层 instructions 不会自动延续,因此每次都要重新发送。Structured Outputs 也从 response_format 移到了 text.format。迁移指南列出了完整的解析、状态、工具与流式处理变更。
为什么重要:预算要同时覆盖两项变化
第一笔预算是工程时间。一套用于生产的工具循环会牵动端点、请求结构、输出解析器、function 定义、结果关联、状态处理、流式事件、日志、重试和评测。只替换模型名,绝大多数工作都还没有完成。
第二笔预算是每个已完成任务的成本。GPT-6 Astra 的 Standard 短上下文费率按每百万 token 计:输入、缓存输入、缓存写入和输出依次为 $10.00、$1.00、$12.50 和 $50.00。GPT-5.6 Sol 当前促销费率对应四项依次为 $4.00、$0.40、$5.00 和 $20.00。token 用量相同时,Astra 每一项的价格都是 2.5 倍。
端点本身不单独收费。账单来自模型 token、按价计费的内置工具、自有工具基础设施、重试,以及最终被放弃的工作。prompt 一旦超过 272,000 个输入 token,整次 Astra 请求的输入和缓存费率都会翻倍,输出费率则变为 1.5 倍。试点预算应采用当前价格页上的这些数字。
成本有可能被抵消,但必须用自己的数据验证。OpenAI 称,在内部测试中,Responses 的缓存利用率比 Chat Completions 高 40% 到 80%。OpenAI 还称,在多项评测中,尽管 Astra 的 token 单价更高,但由于输出 token 更少,其预估 API 单任务成本反而更低。这两项结论都不代表所有场景一定省钱。
真正该衡量的是:
cost per completed job = model tokens + built-in tool fees + your tool costs + retries + operator time
这里的分母至关重要。便宜的一次运行如果在临近结束时因纠偏而重启,最终每份成品的成本可能高于一次更贵、却能保住有效工作的运行。
异步工具调用如何改写等待流程
常规 function call 会暂停模型,直到应用返回结果。使用 Astra 时,由应用执行的 function 或 custom tool可以带上 async: true。模型发出调用后,无须原地等待:它可以继续推理、调用另一个互不依赖的工具,或先回答请求中不依赖该结果的部分,而应用则在后台执行任务。
任务依然由服务器负责。服务器必须启动任务、维护任务注册表、保存原始 call_id,并在后续 Responses 请求中送回结果。如果结果返回前已经发生了其他回合,继续请求应使用最新的 response ID,而工具输出仍要指向最初的 call ID。
对研究类产品而言,慢速数据供应商请求可以在后台执行,Astra 同时整理已经拿到的来源。对内部运营智能体而言,两次相互独立的账户查询可以先启动,模型则先起草报告中不依赖查询结果的部分。它减少的是空等时间,并不会让执行成本消失。
中途干预如何减少整轮重启
回合中途干预允许用户在 Astra 仍在工作时纠正任务方向。应用在同一个 Responses WebSocket 上发送 response.steer 事件,通过 previous_response_id 指向正在执行的 response,并附上新指令。服务器会先完成当前 output Item 和已经运行的托管工具工作,然后根据更新创建一个 continuation。
例如,代理机构的操作人员发现报告面向了错误市场,或工程负责人需要缩小正在生成的迁移方案范围,都可以在整个回合结束前调整方向。
已经消耗的工作不会被退回。中途干预不能改写已交付的输出、撤销此前的操作,也不能取消已经启动的工具。原始 response 与 continuation 分别计算 token 和工具调用上限。它的商业价值在于减少纠偏来得较晚时的整轮重启,但是否足够常见、是否值得投入,仍要实测。
中途干预仅限 Astra,并且必须使用 Responses WebSocket。排队中的干预只存在于那条连接上,因此应用需要记录每一条已接受的更新,并在断线后谨慎恢复。OpenAI 将单条 WebSocket 连接限制为 60 分钟。对于包含 20 次或更多工具调用的 WebSocket 上线场景,WebSocket 指南称端到端执行速度最多可提升约 40%,但这是传输方式带来的结果,并非对中途干预节省幅度的承诺。

一套可直接执行的 Responses API 迁移路径
先选一条低风险的 function 流程,不要从生产环境中最繁忙的智能体开始。
盘点真实改动面
列出每一条会传入工具的 Chat Completions 路径,标记其请求构建器、工具结构、结果处理器、状态存储、流式消费端、重试策略和用量遥测。纯文本路径可以暂时保持不动,只迁移其中一条工具流程。
搭建 Responses 影子路径
让同一批符合条件的测试用例同时通过 Responses,比较已完成任务的质量、延迟、输入 token、缓存 token、输出 token、工具调用、失败情况和人工介入次数。在证据足够可靠之前,不要改变生产路由。
只为一个独立工具启用 async
选择一个速度较慢、且模型下一步工作不依赖其结果的 function。设置
async: true,连同call_id持久化任务,再以同一个 ID 返回结果。下面的官方 Python 示例展示了完整循环。恢复机制可用后再加入中途干预
使用 Responses WebSocket,记录已接受的干预 ID 与输入,并测试一次强制断线。纠偏功能如果没有重放和恢复机制,可能悄无声息地丢失用户指令。
按照 OpenAI 快速入门安装当前 Python SDK,并设置环境变量:
pip install openai
export OPENAI_API_KEY="your_api_key_here"下面是 OpenAI 提供的可运行异步工具示例,使用演示天气数据。API 项目获得 Astra 访问权限后即可运行:
import json
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI
from openai.types.responses import FunctionToolParam
def get_weather(city):
# Demo data. Replace this function with your weather service.
weather = {
"Paris": {
"city": "Paris",
"temperature_c": 22,
"condition": "Clear",
"source": "demo weather snapshot",
}
}
return weather[city]
worker = ThreadPoolExecutor()
def main():
client = OpenAI()
model = "gpt-6-astra"
tools: list[FunctionToolParam] = [
{
"type": "function",
"name": "get_weather",
"description": "Read the demo weather snapshot for a city.",
"async": True,
"strict": True,
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
"additionalProperties": False,
},
},
]
instructions = (
"Start the weather lookup and answer the independent packing "
"question without waiting. Use the actual tool result when it "
"arrives; never invent it. Identify the weather as demo data."
)
response = client.responses.create(
model=model,
tools=tools,
instructions=instructions,
input=(
"Check the demo weather in Paris. Meanwhile, "
"list three essentials for any city trip."
),
)
call = next(item for item in response.output if item.type == "function_call")
arguments = json.loads(call.arguments)
if call.name != "get_weather" or arguments != {"city": "Paris"}:
raise ValueError("Expected a weather lookup for Paris")
latest_response_id = response.id
if call.async_:
job = worker.submit(get_weather, **arguments)
print(response.output_text)
# Independent work or conversation turns can happen here.
# Update latest_response_id after each continuation.
result = job.result()
else:
result = get_weather(**arguments)
response = client.responses.create(
model=model,
tools=tools,
instructions=instructions,
previous_response_id=latest_response_id,
input=[
{
"type": "function_call_output",
"call_id": call.call_id,
"output": json.dumps(result),
},
],
)
print(response.output_text)
if __name__ == "__main__":
try:
main()
finally:
worker.shutdown(wait=True)最容易漏掉的是 call_id: call.call_id 这一行。即使后续对话已经改变了最新 response ID,稍后返回的结果仍属于最初那次工具调用。
哪类团队该使用哪些能力
已经在调用 function 的后端团队
在这条路径采用 Astra 之前,先为 Responses API 迁移安排预算。这样可以在日志和评测可比的前提下受控切换,而不是同时调试端点、解析器和模型三项变化。
需要等待慢速服务的 SaaS 智能体
异步只适合真正互不依赖的工作。CRM 查询、内部搜索或文档导出可以先启动,Astra 同时处理另一个分支;如果某项依赖会阻塞下一步决策,就应保持同步,或使用显式 wait 工具。
监督长任务的运营或代理机构团队
如果一类纠偏通常会导致取消并重启,就为它开放中途干预。记录它实际避免了多少次重启,以及每次纠偏保留了多少已完成工作。这样得到的是商业依据,而不只是功能演示。
使用 Zero Data Retention 的受监管企业
Responses WebSocket 模式可与 store: false 和 Zero Data Retention 配合使用,但状态管理将由应用负责。按需保留加密 reasoning Item;response ID 不再可用时重放完整上下文;在向用户开放中途干预前,先设计好这条恢复路径。
必须说清楚的现实
Astra 的访问权限仍在陆续开放。现在可以准备迁移,但全面切换生产环境,应等到项目真正获得访问权限并完成针对自身工作负载的评测。
异步工具会增加任务注册表和乱序结果;中途干预会增加连接状态、continuation 处理与恢复逻辑。两者都可能减少无效等待或重启,也都会引入可能出错的新代码。
在拿到自己的遥测数据之前,价格账算不清。token 用量相同时,Astra 的成本是 GPT-5.6 Sol 当前促销费率的 2.5 倍。更高的缓存利用率、更少的输出 token 和更少的重启,或许能在部分任务中缩小差距。先用硬性支出上限约束试点,再根据每个已完成任务的成本和人工时间判断 Astra 是否值得采用。
下周一就做什么
- 如果应用通过 Chat Completions 调用工具,并且计划使用 Astra,本周就盘点一条生产流程,为 Responses 影子路径安排资源。
- 如果应用只处理文本,在访问权限陆续开放期间保持现状;这条路径并不强制迁移端点。
- 如果慢速工具占据了大部分总耗时,试点一个异步 function,并衡量空等时间、失败情况和每个已完成任务的成本。
- 如果较晚到来的人工纠偏经常导致重启,先通过 WebSocket 重连与重放测试,再做中途干预原型。
- 如果 Astra 的 2.5 倍 token 费率在尚无实测抵消项时就已破坏单位经济性,让这类工作负载继续使用 GPT-5.6 Sol、Terra 或 Luna。
想继续把下一次平台变化转化为可执行的工作流与预算决策,欢迎订阅 newsletter。
2026年9月4日







