10 月 22 日,OpenAI 把 Decisions API 从公测转成了正式可用。它不做聊天,也不写文章:你给它一段上下文和一组问题,每个问题预先划好允许的答案,它只回一个概率、一个选项或者一个等级分。官方的说法是,这条路比走 Responses API 调用 GPT-6 Luna 快最多 10 倍,输入每百万 token 收 0.10 美元,命中缓存的输入每百万 token 收 0.01 美元,输出 token 一律不收费。

听起来像是“AI 又降价了”。但把账单摊开算一遍会发现,输出免费这件事在你真实的请求里只值两成;它真正卖的不是便宜,是一个能塞进 if 语句的确定性返回值。

这篇按四件事讲:它返回什么、账怎么算、怎么接进去、什么时候别用。

一、它到底是什么:把“写一段话”换成“选一个答案”

接口形状变了,不是模型变小了。传统做法是把分类任务伪装成对话,让模型“请输出 Billing 或 Technical”,再在外层写正则把那句话抠出来。Decisions API 直接把生成这一步删掉:你提交“一组问题 + 每个问题的封闭答案集”,它回结构化的判定。

只有三种返回类型,没有第四种。这一点决定了它能干什么、不能干什么:

类型你给它什么它返回什么适合的活
predicate一句可判真假的陈述probability,0 到 1 的真值概率这张图里的产品有没有破损;这条评论是不是在投诉
choice2 个以上的候选标签选中的那一项 + 概率 + 置信度工单该分给哪个组;Agent 下一步是继续、重试还是反问
score2 到 10 个有序档位档位索引的概率加权平均值破损严重程度;紧急度打分

没有“解释为什么”的字段。这是它和普通大模型最本质的差别:返回值里没有理由,只有概率和标签。好处是外层不用再解析散文、不会因为模型多说一句“不过我认为”而解析失败;代价是出了错你没法从返回里看出它为什么错,只能靠人工抽检或者另外挂一个模型来解释。

目前只支持 gpt-6-luna 一个模型。OpenAI 的 API 产品负责人 Nikunj Handa 对 TechCrunch 说,团队是看到 TypeSafe AI 的 Jev 之后才意识到这类需求的面有多大,于是选择在现有 Luna 上调整推理方式,而不是从头训一个专门的决策模型;未来才可能针对这类任务做专门训练。换句话说,现在这套东西是“改出来的”,不是“训出来的”。

二、定价:输出免费是真的,但它只占两成

先把牌面摆齐。这一档“决策模型”已经不止 OpenAI 一家:

产品输入价(每百万 token)缓存输入输出价备注
OpenAI Decisions API$0.10$0.01免费仅 gpt-6-luna;单请求最多 400 问
Microsoft-Decision-1$0.042未公开免费微软自家博客口径
Perplexity pplx-decider$0.04—免费同档最低价一档
GPT-6 Luna 走 Responses$0.10—$0.50通用接口,要自己解析
Claude Haiku 5.5$0.10$0.01$0.5010 万 token 以内;超过后涨到 $0.50/$2.50
DeepSeek V4.1 Flash—$0.003—缓存价是这一档里最低的

OpenAI 的输入价和自家 Luna 的通用输入价一模一样,都是 0.10 美元。所以“每百万 0.1 美元”不是折扣,是原价;真正的变化在输出端和延迟端。

那就把一笔真实请求算出来。假设一次判定送进去 1200 输入 token(问题、答案集、待判的上下文),模型回 60 token 的 JSON:

走法单次成本1,000 次10 万次
GPT-6 Luna 走 Responses(1200 进 + 60 出)$0.00015$0.15$15.00
Decisions API,无缓存$0.00012$0.12$12.00
Decisions API,900 token 命中缓存$0.000039$0.039$3.90

输出免费只省下 20%。因为判定结果的 JSON 本来就只有几十个 token,按 Luna 的 0.50 美元输出价算,60 token 值 0.00003 美元,而输入那 1200 token 值 0.00012 美元。省掉输出,等于省掉总额的五分之一,不是“免费一半”。

真正让成本掉下来的是缓存命中,不是输出免费。同一套判定规则反复用,那 900 token 的指令和答案集走缓存价,单次成本从 0.00012 掉到 0.000039,省 74%。官方博客写明缓存支持 30 分钟与 12 小时两种写入时长,这就是给“固定 rubric + 变动的待判内容”这种结构准备的。

在同行面前,OpenAI 是这一档里最贵的一家。微软 10 月公布的 Decision-1 挂 0.042 美元,不到 OpenAI 的一半;Perplexity 的 pplx-decider 报 0.04 美元,输出同样免费。微软自己举的例子更直观:一次 86 输入 + 2 输出的请求约 0.0000036 美元,1 美元能跑 27.5 万次。这个例子用的是 88 token 的极短请求,和上面 1200 token 的现实场景不是一回事,但方向很清楚——按 token 单价打,OpenAI 输。

400 个问题一批,省的是轮次不是单价。单次请求的问题上限从公测的 200 提到 400。如果这 400 个问题共享同一段上下文,你省掉的是 399 次网络往返和 399 次排队;官方没有把“共享上下文是否只计一次费”写清楚,做预算时按每问重复计一次输入做最坏估计更稳妥。

三、速度:这才是它唯一替代不了的地方

官方口径 10 倍,落到毫秒是 100 到 180。OpenAI 说比走 Responses API 调用 Luna 快最多 10 倍;Handa 对 TechCrunch 给的区间更具体:部分任务的响应时间从 1 到 3 秒压到 100 毫秒、120 毫秒或 180 毫秒。公测阶段的实测口径是一次调用约 150 毫秒,而同样的工单三分类走普通生成要 1.6 秒左右。

五家客户的数字都是“快 + 不降准确率”的组合。这些是 OpenAI 官方博客里的客户引语,属于自报,不是第三方复测:

客户场景官方引语里的数字
Box保险凭证分类后路由30 个案例上路由选择快约 5 倍,准确度与 Responses API 相同
Datadog执行 Agent 生成的命令前做风险评分p95 比现有前沿模型快 40 倍,准确度相当
Ramp把 AI 成本归因到具体工作快 4 倍、便宜 30%,不牺牲准确率
Sierra实时客服对话里选下一步动作p95 低于 280 毫秒,比原方案快约 3 倍、单次成本低 90%
Speak语言学习里的下一步动作1.4 秒降到 0.13 秒,减少超过 90%

延迟为什么值钱:它决定这个判断能不能待在热路径上。1.6 秒的判定只能放在异步任务里,等结果回来用户早走了;150 毫秒的判定可以塞进一次语音对话的间隙、一次点击的响应链、一个 Agent 循环的每一步。Datadog 的说法最直白:正是因为快到这个程度,才可能把“给 Agent 生成的命令打风险分”放在修复动作的热路径上,而不是事后审计。

快到一定程度,产品形态会变。OpenAI 把 Decisions 原生接进了 GPT-Live(实时语音),官方举的例子是虚拟形象在用户说话时按措辞当场换表情:高兴、难过、关切,全部由一个 choice 判定驱动。这类交互在 1 秒延迟下根本不成立。

四、怎么接进去:四步,加五个必踩的坑

第一步,从一个你已经人工在做、而且答案封闭的判断开始。官方给的建议就是这个顺序:选一件应用里高频重复的小判断,定义问题和可能的答案,再想清楚区分它们需要哪些上下文。反过来做——先接 API 再找场景——基本都会退化成“用大炮打蚊子”。

第二步,把答案集压到最窄。候选标签越多,单次判定越容易在边界上摇摆。工单路由就老老实实给三个组,别把“其它/待定/无法判断”和真实分类混在一个 choice 里;后者应该用置信度阈值来处理,而不是当成一个标签。

第三步,先去 Playground 用你自己的文本或图片试。官方提供了 Decisions Playground,可以拿自有样本打第一轮,这一步能提前暴露“答案集定义错了”这种最贵的错误。

第四步,在读结果之前先判 answer.type。部分问题会因为内容安全等原因被拒答,返回 refusal。直接把返回当标签用的代码,会把一次拒答当成一个分类结果写进数据库。

接实时语音的话,配置是加进现有 GPT-Live 会话的 session.triggers。官方示例按 YAML 重排后是这样:

1
2
3
4
5
6
7
8
type: decisions
event_type: session.input_transcript.delta
decisions:
  questions:
    - type: choice
      name: reaction
      instructions: 根据用户最新消息为虚拟形象选择合适反应
      choices: [neutral, happy, sad, concerned]

会话会发出 decision.event,应用读选中的 reaction 去驱动动画。这里的 event_type 用的是转写的增量事件,也就是用户还没说完就在判——这正是低延迟才有意义的场景。

五个坑,按踩到的概率排序:

  • 图片必须 base64 内联成 data URL,不能给外链。单请求图片上限 128 张,超了要拆批。
  • 消息只支持 user 角色。想把“系统规则”写成 system message 的老习惯在这里不成立,规则只能写进问题的 instructions。
  • 拒答是正常返回,不是异常。上面第四步说的 refusal,要在业务层显式分支。
  • 数据处理只在美国和欧盟。官方写明区域处理在美欧可用、零数据保留对符合条件的客户开放;亚洲多区扩的是服务容量,不是把数据处理放到亚洲。国内业务要接,这一条是合规前置条件,不是性能问题。
  • 缓存有两种写入时长(30 分钟 / 12 小时),选错了命中率会明显掉。固定 rubric 用 12 小时,一次性任务用 30 分钟。

五、传闻与实锤:哪些能引用,哪些只能当参考

实锤部分:转正日期 10 月 22 日、三档定价、三种返回类型、400 问上限、缓存两种时长、GPT-Live 原生集成、美欧区域处理、五家客户的引语,全部出自 OpenAI 官方博客与官方定价页,中文侧 IT之家、艾瑞网的译文与原文一致。

只能当自报的部分:10 倍提速、40 倍 p95、5 倍路由、90% 成本下降,这些数字都没有第三方复测,也没有公开的 benchmark。官方没有给出任何准确率对比表,只有“与 Responses API 相同”这类定性表述。

背景时间线值得记一笔:TypeSafe AI 9 月 15 日放出 Jev,不到 36 小时 14 万名开发者申请,三天内被 Vercel、Cloudflare、LangChain 接走;OpenAI 9 月 29 日在开发者日公布 Decisions API,10 月 6 日公测,10 月 22 日转正。从“看到别人做了”到“全线开放”只用了五周,而且走的是调现有模型这条捷径。同一时间,微软 Decision-1、Perplexity 的 pplx-decider、Cloudflare 的 Clef、AWS 的 Strands Decider 2B 也都在这个价位段上架——“决策模型”正在被打包成一个独立品类,而不是大模型的一个功能。

还没说清的两件事:400 个问题共享上下文时的计费方式;以及调过推理方式的 Luna,在边界样本上的校准是否和原生 Luna 一样好。后者决定你敢不敢把置信度阈值直接写进自动化逻辑。

六、我的判断

该上的人:手里已经有“高频、答案封闭、延迟敏感”的判断,而且现在靠通用模型硬扛的。工单路由、内容审核初筛、Agent 下一步动作、客服对话里的意图切换、文档瑕疵判定,这几类接进去的收益最直接。特别是那种一个请求要问十个问题的场景,400 问一批加上缓存价,成本曲线会明显往下折。

可以再等等的人:主要成本压在长输入上、判定只是顺带做的场景。比如你本来就要模型读 5 万字报告再给结论,那 Decisions 帮不了你,它只判不写,读完还得让另一个模型来总结,反而多一次调用。另一种是必须给出理由的合规场景——风控拒贷、保险拒赔这类需要“说明依据”的地方,它只给概率不给理由,审计过不去。

别碰的人:要开放生成的、要写文案的、要解释推理过程的。这不是它的设计目标,硬用只会得到一堆无法追溯的标签。

最后一句判断:这次开放最容易被误读成“又降价了”。按单价它比微软和 Perplexity 都贵,输出免费在你的真实账单里只值两成。它真正改变的是判断这件事的调用成本结构——从“一次生成 + 一次解析 + 一次重试”变成“一次 150 毫秒的结构化返回”。如果你现在的架构里,分类逻辑外面还包着一层正则和一层重试,那才是它要替你省掉的东西。

顺带一提:想把这类“执行层”模型和通用模型的价位摆在一起看,Mercury 3 那篇算过另一笔账,同一档里 Claude Haiku 5.5的 0.10/0.50 和这里正好对照;GPT-6 三档定价解释了 Luna 为什么会被拿来当底座,缓存价怎么算则在 Claude Fable 5.1 的缓存账里拆过。

本文由拾光札记编辑部整理,勘误请联系我们