OpenAI官方教你如何构建AI Agent,从模型选择到工具系统,再到多Agent编排,全是干货。
OpenAI官方开发者平台发布《Building agents》学习路径,详细解析AI Agent的三大核心要素:指令、护栏和工具。文档对比了推理模型(GPT-5.6)与非推理模型的适用场景,介绍了Responses API与Agents SDK的取舍建议。内置工具包括Web Search、File Search、Code Interpreter和Computer Use等,可解决训练数据截止日期、RAG复杂性等问题。
[OpenAI Learn] 构建 AI Agent 的核心概念与实践指南 周末来卷 OpenAI 官方开发者平台,学习路径系列开篇「Building agents」,重新学习这份架构决策指南,看看...
[OpenAI Learn] 构建 AI Agent 的核心概念与实践指南 周末来卷 OpenAI 官方开发者平台,学习路径系列开篇「Building agents」,重新学习这份架构决策指南,看看在每个 Agent 关键环节该选什么、为什么这么选。 developers.openai.com/tracks/buildin… # 先重新看看 OpenAI 对 Agent 的定义 一个 AI 系统,拥有指令(该做什么)、护栏(不该做什么)、工具(能做什么),能够代表用户采取行动。 只有当系统连接到外部系统、并能基于用户输入采取行动时,才能称之为 "Agent"。三个要素缺一不可: · 指令(Instructions):行为目标 · 护栏(Guardrails):行为边界 · 工具(Tools):行为能力 # 模型选择:推理模型 vs 非推理模型 1. 推理模型:先"思考"(思维链)再作答,形成假设→验证→精炼;适用于规划、数学、代码生成、多工具工作流 2. 非推理模型:更快、更便宜;适用于高频对话、简单任务、延迟敏感场景 推理模型是用延迟和成本换取可靠性的 tradeoff。文档给出的实践建议很务实——从 GPT-5.6 等旗舰模型开始实验,简单场景降级到轻量版本,复杂任务则调高 reasoning_effort 参数。 # 核心逻辑:Responses API vs Agents SDK Responses API:OpenAI 的旗舰核心 API,为推理模型设计,默认有状态(服务端自动管理对话历史,无需客户端存储上下文)。灵活但需要自己编排一切。 Agents SDK:构建在 Responses API 之上的轻量框架,自动处理 Agent 循环、护栏、追踪,还能接入外部模型提供商。 取舍建议:SDK 抽象掉复杂性,代价是细粒度控制变难。想快速起步或构建多 Agent 网络用 SDK;想完全掌控底层逻辑用 Responses API。 # 工具系统:Agent 的价值所在 "Agent 只有在能行动时才有用"。工具分两类: 自定义工具(Function Calling):多步流程——你定义函数签名 → 模型决定调用并给出参数 → 你在自己侧执行 → 结果回传 → 模型生成后续响应。 内置工具(Built-in Tools):模型决定调用后在 OpenAI 基础设施上自动执行,结果直接进入上下文,你无需任何操作。文档列出的内置工具矩阵: · Web Search:解决训练数据截止日期问题,一行代码接入 · File Search:托管版 RAG——文档详细解释了自建 RAG 的复杂性(分块、嵌入、向量库、检索、重排序),然后指出 File Search 把这一切托管掉了 · Code Interpreter:让模型写并执行 Python,结合了 LLM 的生成能力与代码执行的确定性,支持文件输入输出(如分析电子表格、生成图表) · Computer Use:让模型像人一样操作界面(点击、填表),这是唯一需要你自己执行的"内置"工具——模型给出建议动作,你在真实/虚拟环境执行后回传截图,形成视觉反馈闭环。适用于没有 API 可用的服务 · Image Generation:对话内生成/编辑图像 · MCP:接入任意托管 MCP 服务器 经验法则:内置工具能满足就先用内置,需要自定义逻辑才上 Function Calling。 # 编排:多 Agent 的决策框架 编排 = 管理多步骤、工具调用、Agent 间交接、护栏和上下文的对话流。 Agents SDK 的四个核心原语: · Agent:模型 + 指令 + 工具 · Handoff:当前 Agent 可交接给的另一个 Agent · Guardrail:过滤不良输入的策略 · Session:跨运行自动维护对话历史 关于多 Agent 协作,OpenAI 的建议非常克制: 多 Agent 不应该是默认方案,只应在任务互不重叠、且存在以下情况时考虑:指令非常复杂冗长、或工具数量庞大(或跨任务存在相似工具)。 原因很实际:把任务 A 和任务 B 的工具全塞给一个 Agent,它可能混淆——在该用 B 工具时用了 A 工具。正确模式是路由 Agent 模式:一个路由 Agent 作为用户主接口,判断任务类型后交接给专门的 Agent。同理,重推理任务可以拆给高推理模型 Agent,主 Agent 用便宜快速的模型。 多 Agent 的三个正当收益:关注点分离(研究/起草/质检分开)、并行化(端到端更快)、聚焦评估(按各自目标分别打分)。实现上推荐"agent-as-tool"(把一个 Agent 暴露为另一个 Agent 的可调工具),并通过 conversation_id 共享记忆。 # 示例用例:三种交互范式 1. 支持 Agent(Responses API):Human-in-the-loop,人类可接受/拒绝 Agent 建议 → 优化可控性 2. 客服 Agent(Agents SDK):多 Agent 网络协作处理客户请求 → 优化复杂任务可靠性 3. 前端测试 Agent(Computer Use):单次输入自动测试前端应用 → 优化自动化程度 选择取决于场景:来回交互优化速度,复杂任务优化可靠性,高频规模化使用优化成本。 # 最佳实践:对不确定性的工程化管理 "Agent 本质上是不可预测的——这是 LLM 的天性",然后从两端给出对策: 输入端护栏:防越狱、防无关输入烧钱。可以简单到提示词里一句话("不回答与 X/Y/Z 无关的问题"),也可以复杂到多步护栏系统——取决于风险承受度和规模。 输出端控制: · 结构化输出(Structured Outputs):只要输出要被程序消费(而非仅展示给用户),就用 JSON Schema 严格约束输出形状。这是工程可靠性的基石。 · 输出护栏:面向用户的场景防止模型说出违规内容——文档举了个生动的例子:汽车公司不希望模型告诉客户"可以 1 美元买车且具有合同约束力"。 💬 0 🔄 0 ❤️ 1 👀 253 📊 1 ⚡