GPTMap

OpenAI 官方 Agent 优化 Cookbook 解读:客服智能体的四轮降本方法论

openai-cookbook 新增的 Agent 优化教程:先测基线、每轮只改一处、质量过关才接受省钱。四个优化轮次(提示与工具控制、模型路由、prompt caching、工作流拆分)与九步调优顺序逐项拆解。

TL;DR
openai-cookbook 于 2026-09-18 合入 Agent 优化教程(PR #3073,notebook 自标 last verified 2026-09-14;本站 2026-09-22 核对):用合成客服工单与确定性模拟演示可复用的优化循环——先测基线、每轮只改一处、质量不过关不接受省钱。九个旋钮依次:提示与输出控制、工具面收敛(allowed_tools)、模型路由(GPT-5.4 nano/mini/full 三层,GPT-5.6 luna/terra/sol 同层对照)、prompt caching(GPT-5.6 写入按 1.25 倍输入价计费、顶层 instructions 不能放显式断点)、把 QA/标签/审计移出同步路径。官方明示:模拟数字不是生产基准,部署决策要换真实 traces。
Agent 成本优化方法论指在不牺牲质量门槛的前提下,按固定顺序逐项收紧智能体工作流的成本结构:先建立可测量的基线,再依次应用提示与输出控制、工具面收敛、上下文治理、模型路由、prompt caching 与同步/异步工作流拆分,并以『每次已验证解决的成本』而非单次 token 成本作为最终指标。openai-cookbook 的 optimizing_agents_for_cost_and_quality 教程用电商客服场景把这套循环做成了可运行的开源示例。

操作步骤

  1. 建立基线

    在同一套评估集上测量质量、延迟、工具调用与总成本;教程用一个故意低效的客服智能体做起点。

  2. 应用提示与输出控制

    把宽泛的『尽量详尽』换成具体任务规则与简洁回复契约,调低 text.verbosity 与推理力度,给输出设上限(上限含可见与推理 token,调低后要检查不完整回复)。

  3. 收敛工具面

    保留完整稳定工具清单,用 tool_choice.allowed_tools 按任务授权子集;schema 只留决策必需参数,工具载荷瘦身到下一步决策所需字段。

  4. 上下文治理

    对长会话谨慎评估压缩或截断——删早先上下文可能丢掉下一步决策需要的事实。

  5. 模型路由

    分类、抽取、低风险路由用 nano 层;常规工单用 mini 层;高风险场景留全量模型。先沿用现有 effort,再试低一档,用同一套带标签工单对比。

  6. 配置 prompt caching

    稳定前缀(指令、工具、政策、schema)在前,易变工单数据在后;GPT-5.6 用显式断点与稳定 prompt_cache_key,盯 cached_tokens 与 cache_write_tokens。

  7. 缓存感知的上下文调优

    检查最长被缓存前缀是否真的匹配——默认断点在最新消息之后,工单细节一变就可能错开。

  8. 拆分工作流

    同步路径只留分类、必要查询、解决/升级决策与客户回复;QA、标签、内部摘要、审计移到后台跟进。

  9. 选择处理档位

    延迟敏感走 default 或 priority;离线任务用 Batch(24 小时窗口);flex 换更低成本但更慢且偶发无容量;background 只做异步、不给折扣。

给『智能体太贵』一个官方答案:openai-cookbook 在 2026-09-18 合入了 Agent 优化教程(Optimizing customer support agents for cost and quality,PR #3073),用一套合成电商客服工单和一个确定性模拟,把『先测基线、每轮只改一处、质量过关才接受省钱』做成了可运行的示例。本篇按本站惯例在 2026-09-22 重抓仓库原文逐项核对后转述:教程的方法论、九个优化旋钮、GPT-5.6 缓存行为的变化,以及教程自己先承认的模拟局限。所有数字凡出自模拟的,本文都保持它『示例』的身份,不当基准转述。

1. 这份教程讲什么

一句话:给『用工具的智能体』一个可复用的优化冲刺(optimization sprint)——测量基线,改变工作流的一处,质量过关后才接受省下的钱。场景是电商客服:合成工单、客户查询、订单与政策工具、退款与升级决策。教程自己的 Outline 是八步:定义成功标准与小评估集 → 搭一个故意低效的基线智能体 → 测基线成本/token/质量/延迟/工具调用 → 应用提示、输出、工具与上下文控制 → 简单步骤路由给小模型 → 为缓存重排请求结构 → 拆分实时与跟进工作 → 加监控、评估与护栏。

代码默认 dry-run 模式,不花 API 钱;可选的 live 助手需要 OPENAI_API_KEY 且 RUN_LIVE_API_CALLS=true。可选的 LLM judge 需要 RUN_LLM_JUDGE=true,judge 模型是 gpt-5.4-mini(live_api.py 中定义)。依赖只有五个:openai、pandas、matplotlib、jinja2、ipykernel。

2. 先说教程自己承认的局限:模拟数字不是基准

这是整份教程最值得学的一段写作。Simulation contract 一节开宗明义:默认路径用 mock 数据和建模指标,它的数字不是生产基准。具体地:

  • harness 测的是序列化文本长度,token 计数由长度估计;
  • 推理 token、延迟、缓存命中与综合质量分走示例公式;
  • 成本项倒是把『已核实的价格表』套在估计用量上;
  • 路由与优化动作来自夹具标签——所以这个模拟根本不测模型选对路由的能力;
  • 回复检查是大小写不敏感的字面短语匹配,可能误杀合法转述,也建立不了事实正确性。

教程的结论:部署决策要换成真实用量、真实时延、真实工具结果、真实路由决策与校准过的评审或人工评估。本站把这一节放在方法论之前讲,因为它是读者最容易误用这份教程的地方。

3. 九个优化旋钮总览

教程用一张表列出全部旋钮、低效基线与优化后形态:

旋钮低效基线优化后形态主指标
提示与输出宽泛的『尽量详尽』指令与长回复具体任务规则、简洁回复契约、text.verbosity 调低、输出设上限输出 token、简洁度、质量
推理力度每张工单都高推理常规工作调低,高风险决策才调高推理 token、延迟
工具面每个请求暴露全部工具完整稳定工具清单 + tool_choice.allowed_tools 按任务授权子集工具调用次数、可缓存性
工具 schema冗长描述与宽泛载荷预期只含决策必需参数的小 schema输入 token
工具载荷原始 CRM、物流、审计与附录大块瘦身到下一步决策所需字段工具输出 token
模型路由一步一个全量大模型nano 管分诊/标签,mini 管常规解决,全量管高风险成本、延迟、升级准确率
prompt caching易变工单数据混进前缀稳定指令、工具、政策框架与 schema 在前,工单数据在后缓存输入 token、成本
工作流拆分QA、分析、摘要、审计都在客户路径客户解决同步;QA/标签/报表经 background、flex 或 Batch 异步p50 延迟、同步成本
护栏与评估非正式抽查确定性检查 + 面向 live traces 的评审 schema回归率、安全通过率

4. 第一轮:提示、输出与工具控制

先立规矩再换模型。教程的组合拳:把 text.verbosity 与推理力度调低,加输出上限与 allowed_tools 子集。三个容易忽略的提醒:

  • 输出上限同时约束可见与推理 token——压低之后要检查不完整回复;
  • helper 还限制了工具轮数、返回瘦身载荷;
  • 对长会话,压缩或截断要谨慎评估:删掉早先上下文可能丢掉下一步决策需要的事实。

还有一个工程诚实的备注:demo 里用已知工单元数据限制工具,生产环境的路由器需要单独评估与低置信度回退;如果做提示优化,要针对一个具体观测到的失败,并在同一套评估上重跑。

5. 第二轮:按步骤选模型,而不是全局一个模型

教程的分层(以 GPT-5.4 为基线):

层模型适合要测的指标
分类/抽取/低风险路由gpt-5.4-nano工单分类、实体抽取、简单标签意图准确率、高风险漏报、结构化输出可靠性、延迟、每正确分类成本
常规支持gpt-5.4-mini订单状态、损坏送达、简单退款资格判定等可重复任务解决正确性、工具调用准确性、政策合规、p50/p95、每成功解决成本
复杂/高风险gpt-5.4账户访问、重复扣款升级、退款争议等高后果交互解决质量、政策遵守、延迟、端到端成本;保留确定性授权/退款检查与人工复核

GPT-5.6 侧的同层对照:gpt-5.6-luna 对 nano 层(分类与高吞吐任务)、gpt-5.6-terra 对 mini 层(常规支持工作流)、gpt-5.6-sol 对全量模型层(复杂或高风险场景)——每层都可以用同一批工单与质量标准对 GPT-5.4 基线做评估。两个方法论细节值得抄走:对比时先沿用现有推理力度设置,再评估低一档;新模型在任务层面反而更省是可能的——如果它重试、多余工具调用或升级更少。微调只有在选定模型明确支持时才考虑。

6. 第三轮:prompt caching——GPT-5.6 的三个变化

所有客服请求共享同样的核心指令、政策、工具定义与回复 schema,缓存让这部分跨工单复用;客户特有细节(订单 ID、账户信息、检索记录)放在共享前缀之后。

gpt-5.4-mini 的行为:API 自动识别重复前缀,客户细节变化也能复用共享上下文,写新前缀不收单独的缓存写入费。教程给出的请求形态(取自教程代码单元,行宽有压缩):

cache_friendly_request = {
    "model": "gpt-5.4-mini",
    "instructions": CACHE_FRIENDLY_PROMPT,
    "tools": SLIM_TOOLS,
    "tool_choice": allowed_tool_choice(["lookup_order"], mode="auto"),
    "prompt_cache_key": "support_order_status_v1",
    "reasoning": {"effort": "low"},
    "text": {"verbosity": "low"},
    "max_output_tokens": 300,
    "input": [
        {"role": "user", "content": json.dumps({
            "ticket_id": "T-001", "customer_id": "C-100",
            "message": "Where is order O-1001?", "order_id": "O-1001",
        })},
    ],
}

GPT-5.6 家族(luna / terra / sol)有三点不同:

  1. 缓存写入计费:写内容进缓存按正常输入 token 价的 1.25 倍收费——反复缓存每次都不同的消息,只会增加成本而不产生复用;
  2. 默认断点在最新消息之后:如果那条消息在工单之间变化,最长被缓存前缀可能匹配不上;implicit 模式仍可复用更早的合格消息结尾(包括开头的 developer 消息块);
  3. 显式断点:把共享手册放进 developer 消息的 input_text 块,在块尾把 prompt_cache_breakpoint 标为 explicit 模式,订单细节放断点之后;顶层 instructions 不能含断点。

配套设置:prompt_cache_options 用显式模式、ttl 为 30m,两笔请求用同一个 prompt_cache_key(教程例:support_order_status_v1)。观测指标:cached_tokens 与 cache_write_tokens,连同延迟与每解决工单成本一起比较。

7. 第四轮:把非客户工作移出同步路径

同步路径只留四件事:分类、必要查询、解决或升级决策、客户回复。QA、标签、内部摘要、审计与报表——只要不影响当下结果——移到跟进工作。档位选择:延迟敏感走 default 或 priority;flex 用更低成本换更慢响应与偶发容量不可用(确认模型支持并处理超时);Batch 适合有 24 小时完成窗口的离线任务;background 模式只是异步化,本身不给价格折扣。

8. 权衡与场景映射:没有万能最优解

教程明确说:不存在普适最优配置,甜点取决于流量形态、对客户的承诺、政策风险、缓存命中率、工具延迟、可观测性成熟度,以及多少工作能挪出同步路径。七组典型权衡摘三组:

约束推着你走向当心
高政策或账户安全风险高风险路径用更大模型、更严格升级、评审型评估过度升级会伤害客户体验与支持产能
高工单量 + 重复工作流稳定前缀、prompt caching、更小模型、跟进工作用 Batch大前缀缓存未命中会反加延迟
严格成本目标分诊与常规路径用 nano/mini、输出上限、离线用 flex 或 Batch只抠成本会在质量门槛薄弱时删掉护栏

教程还专门为『低重复长尾』场景画了全部架构组合的对比图,理由是:缓存本地性低的场景里,重缓存设计不划算——这一点不该被『只展示最优解』藏掉。

9. 监控:按『每次已验证解决』算成本

上线后要保持循环评估,目标不是孤立地最小化 token,而是以最低总成本正确、安全、快速地解决客户问题。教程的公式:

blended cost per verified resolution = (模型、工具、基础设施、重试、人工复核、升级与返工的总成本) / 已验证解决的客户问题数

三条配套纪律:分子必须计入失败尝试,不能只算最终通过的 traces;自主解决与人工协助解决分开统计,否则智能体降本可能只是把工作转移给了支持团队;教程自己给的示例数字是说明性的——单票 0.02 美元、解决率 50%,等于每个成功解决 0.04 美元;单票 0.03 美元、解决率 90%,约 0.033 美元。第二次每一次尝试更贵,但每个成功结果更便宜(示例不含人工支持成本)。

上线后要跟踪的清单:质量分、政策合规、动作准确率、升级准确率、工具调用次数、token 用量、缓存 token 量、p50/p95 延迟、同步成本、异步跟进成本、每工单总成本。一个配置只有在守住质量线的前提下降了成本,才算更好。

10. 九步调优顺序(官方推荐)

教程的收束是这条顺序——把它做成了本文 frontmatter 的 howTo,这里原样列出:建立基线 → 提示/输出控制 → 工具控制 → 上下文治理 → 模型路由 → prompt caching → 缓存感知的上下文调优 → 拆分工作流 → 处理档位。最强结果不是来自单一技巧,而是按安全顺序逐个上杠杆;核心工程习惯是按步骤优化,不全局优化——常规分类器、高风险退款争议、客户回复与离线 QA 标注器不该共享同一个模型、上下文、工具、延迟目标或服务档。

11. 如何运行与常见错误

运行要点:pip install -r requirements.txt(openai、pandas、matplotlib、jinja2、ipykernel),默认 dry-run 零花费;live 路径需 OPENAI_API_KEY 且 RUN_LIVE_API_CALLS=true;可选 judge 需 RUN_LLM_JUDGE=true(模型 gpt-5.4-mini,judge 失败时评分标 error 并说明原因,不阻塞其余评估)。

常见错误:

  • 把模拟数字当基准写进汇报——重读第 2 节:模拟合同明示数字不是生产基准,token 是长度估计、路由来自夹具标签;
  • 只算 token 不算解决率——重读第 9 节:便宜的模型若重试更多,每个已验证解决的成本反而更高;
  • 把断点写进顶层 instructions——教程原文:顶层 instructions 不能含断点,断点要标在 developer 消息 input_text 块尾;
  • 每张工单换一个 prompt_cache_key——同业务场景要用稳定 key(教程例:support_order_status_v1),key 碎了缓存就废了(教程在『季节性高峰』权衡里同样点名 routing key 过碎会让缓存失效);
  • 输出上限压得过低没检查不完整回复——上限含可见与推理 token。

12. 下一步

关键要点

  • 来源与定位:openai-cookbook 仓库 examples/agent_optimization 目录(PR #3073,2026-09-18 合入),以合成电商客服工单 + 确定性模拟演示优化循环;notebook 自标 last verified 2026-09-14,示例用 GPT-5.4 模型,模型选择与缓存两节另述 GPT-5.6 考量
  • 默认零花费:代码默认 dry-run,模拟在无 API 花费下运行;可选 live 助手需要 OPENAI_API_KEY 且 RUN_LIVE_API_CALLS=true;可选 LLM judge 需 RUN_LLM_JUDGE=true,judge 模型为 gpt-5.4-mini(live_api.py)
  • 官方自带的诚实声明:模拟数字不是生产基准——token 由序列化长度估计、推理 token 与延迟走示例公式、路由来自夹具标签(不测模型选路由的能力)、回复检查是大小写不敏感的字面短语匹配;部署决策要换成真实 traces 与校准过的评审
  • 模型路由三层:gpt-5.4-nano 管分类/抽取/低风险路由,gpt-5.4-mini 管常规支持与订单工作流,gpt-5.4 管高风险场景(账户访问、重复扣款升级、退款争议);GPT-5.6 侧 luna/terra/sol 与之同层对照,比较时先沿用现有 effort 再试低一档
  • GPT-5.6 缓存三件事:写入计费(1.25 倍输入 token 价)、默认缓存断点在最新消息之后(消息一变最长匹配前缀就错开)、可用显式断点——共享手册放 developer 消息 input_text 块尾并标 prompt_cache_breakpoint 为 explicit 模式,顶层 instructions 不能含断点;prompt_cache_options 用显式模式 ttl 30m + 稳定 prompt_cache_key
  • 成本指标要按结果算:blended cost per verified resolution——分子必须含失败尝试、重试、人工复核、升级与返工;自主解决与人工协助分开统计;教程举例:单票 0.02 美元解决率 50% 等于每成功 0.04 美元,单票 0.03 美元解决率 90% 约每成功 0.033 美元(示例数字,不含人工支持成本)

常见问题

不可以。教程的 Simulation contract 一节写得很直白:默认路径用 mock 数据和建模指标,数字不是生产基准——token 计数由序列化文本长度估计,推理 token、延迟、缓存命中与质量分走示例公式,路由与优化动作来自夹具标签(因此模拟并不测模型选对路由的能力),回复检查是大小写不敏感的字面短语匹配。做部署决策前要换成真实用量、真实时延、真实工具结果与校准过的评审或人工评估。

官方参考

相关文章

订阅 GPTMap Weekly

每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。

提交后将在新标签页打开 Buttondown 完成订阅确认。

GPTMap Editorial发布于 2026-09-22 18 分钟阅读
测试环境(EEAT)
最后测试时间:2026-09-22
使用模型:gpt-5.6