六、OpenAI Agent简介
前言
北京时间3月12日凌晨,OpenAI 发布了一系列专为构建 AI Agents 而设计的全新工具包,来帮助开发者更方便地创建能自动完成任务的 AI Agents。
全新开发的工具包中包括,新Responses API、多款内置工具以及OpenAI首个开源Agents SDK。
OpenAI首席产品官Kevin Weil在直播中提到:“2025年将会是AI智能体爆发的一年,也是ChatGPT和我们开发者工具从‘仅仅回答问题’升级为‘真正能在现实世界里为你执行任务’的一年。”
AI Agents工具包
Responses API
Responses API 融合了Chat Completions API的简洁性和Assistants API的工具使用能力,为开发者提供了一个强大的基础架构。通过单次API调用,开发者就能使用多种工具和模型轮次解决复杂任务,极大地简化了开发流程。
Chat Completions API主要用来生成对话回复,Assistants API能让AI调用外部功能,比如查找资料、操作东西。
三大内置工具
包括Web搜索工具、文件搜索工具、计算机使用工具。
-
Web搜索工具支持GPT-4o和GPT-4o-mini模型,能够实时从互联网上抓取最新数据,并提供清晰且相关的引用来源。这就像给智能体配备了一个实时更新的知识库,让它们能够随时掌握最新的动态。开发者可以利用网络搜索构建多种应用场景,比如购物、研究和旅行预订agent。
-
文件搜索工具支持多种文件格式,能优化查询、过滤元数据、自定义排序,支持向量存储与元数据过滤,能让开发者从大量文档中迅速检索关键信息。该搜索工具可应用于多种现实场景,比如帮助客服人员便捷获取常见问题解答,协助法律助理快速查阅过往案例以供专业参考。
-
计算机使用工具则相当于在API中内置了Operator,由 Computer-Using Agent (CUA) 模型提供支持,可捕获模型生成的鼠标和键盘操作,让 AI 能像人一样操作电脑界面。可以自动控制计算机,实现点击、输入、拖动等复杂操作。这对于需要与传统系统交互的场景来说,是一个巨大的突破。
Agents SDK
Agents SDK 基于 Swarm 框架升级,是一个开源的多智能体工作流编排框架。它让开发者能够轻松定义智能体角色和工具,实现智能体之间的无缝交接任务,还提供了安全检查机制和实时监控功能,让智能体的协作更加高效、可控。适用于多种现实世界应用场景,包括客户支持自动化、多步骤研究、内容生成、代码审查以及销售线索挖掘。
开始开发
配置开发环境
-
登录到 https://platform.openai.com/account/api-keys;创建新的API密钥
-
配置环境变量:export OPENAI_API_KEY="your_api_key_here"
-
安装官方SDK
-
使用 Python:
pip install openai
-
使用Java
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>0.31.0</version>
</dependency>
-
Responses API
OpenAI API:提供了一个简单的接口,用于访问最先进的 AI 模型,包括文本生成、自然语言处理、计算机视觉等。
文本提示简单示例
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4o",
input="Write a one-sentence bedtime story about a unicorn."
)
print(response.output_text)
模型生成的内容数组位于响应的 output
属性中。在这个简单的例子中,只有一个输出。output
数组通常包含多个元素,它可以包含工具调用、推理模型生成的推理标记数据以及其他项目。不能假设模型在 output[0].content[0].text
处有文本输出。
[
{
"id": "msg_67b73f697ba4819183a15cc17d011509",
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Under the soft glow of the moon, Luna the unicorn danced through fields of twinkling stardust, leaving trails of dreams for every child asleep.",
"annotations": []
}
]
}
]
消息指令instructions参数为模型提供高级指令,说明它在生成响应时应如何表现,包括语气、目标和正确响应的示例。通过这种方式提供的任何指令都将优先于 input
参数中的提示。
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4o",
instructions="Talk like a pirate.",
input="Are semicolons optional in JavaScript?",
)
print(response.output_text)
角色说明(role)
-
developer:应用开发者提供的指令,其权重高于
user
消息。 -
user:用户提供的指令消息,权重低于
developer
消息。 -
assistant:模型生成的消息具有
assistant
角色。
内置工具
使用内置工具,如网络搜索和文件搜索,以扩展模型的功能。帮助模型从网络或您的文件中访问额外的上下文和信息。
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4o",
tools=[{"type": "web_search_preview"}],
input="What was a positive news story from today?"
)
print(response.output_text)
-
Computer-Using Agent(CUA):结合了 GPT-4o 的视觉能力与高级推理,以模拟控制计算机界面和执行任务。
-
如何工作
-
工具在一个连续循环中运行。它发送计算机操作,如
click(x,y)
或type(text)
,您的代码在计算机或浏览器环境中执行这些操作,然后将结果截图返回给模型。 -
代码模拟了人类使用计算机界面的行为,而我们的模型使用截图来理解环境状态并建议下一步操作。
-
这个循环可以自动化许多需要点击、输入、滚动等操作的任务。例如,预订航班、搜索产品或填写表格。
-
-
第一步发送请求给模型:此请求应包括有关您环境的详细信息,以及一个初始输入提示。指定显示大小和环境,以及可以在第一个请求中包含环境的初始状态截图。
-
第二步收到模型响应:检查响应中是否包含任何 computer_call 项。此工具调用包含一个建议采取的动作以向指定目标迈进。这些动作可能是点击指定位置、输入文本、滚动,甚至是等待。
-
第三步执行请求的操作:通过代码在您的计算机或浏览器环境中执行相应的操作。
-
第四步捕获更新后的状态:执行动作后,以截图形式捕获环境的更新状态。
-
第五步重复:以
computer_call_output
作为更新后的状态发送新的请求,并重复此循环,直到模型停止请求操作或您决定停止。
-
-
函数调用(Function Calling)
通过函数调用让模型访问自己定义的代码。根据系统提示和消息,模型可能会决定调用这些函数。
- 将定义好的函数注册给大模型,包括用户输入的信息。
-
模型根据输入和已经注册的函数,返回决定调用的函数名称和入参。
-
执行函数,解析模型响应返回的函数所需入参并调用函数。
-
将模型返回的函数注册结果及函数调用结果传给模型,模型生成最终结果。
-
解析模型响应,输出最终结果。
Agents SDK
Agnets SDK 简介
构建代理涉及组装多个领域的组件(例如模型、工具、知识和记忆、护栏和编排) ,并且 OpenAI 为每个领域提供了可组合的原语。
Domain |
Description |
OpenAI Primitives |
---|---|---|
核心智能能够推理、决策和处理不同模式。 |
||
与世界接口,与环境交互,函数调用,内置工具等。 |
||
利用外部和持久的知识来增强代理。 |
||
防止不相关的、有害的或不良的行为。 |
||
开发、部署、监控和改进代理。 |
Agents SDK, Tracing, Evaluations, Fine-tuning |
-
模型:大型语言模型 (LLMs) 是代理系统的核心,负责做出决策并与世界互动。OpenAI 的模型支持多种功能:
Model
Agentic Strengths 代理优势
o1 & o3-mini
最适合长期规划、艰巨任务和推理。
GPT-4.5
最适合代理执行。
GPT-4o
代理能力和延迟之间的良好平衡。
GPT-4o-mini
最适合低延迟。
-
工具:工具使代理能够与世界互动。OpenAI 支持函数调用以连接您的代码,并支持内置工具来执行网络搜索和数据检索等常见任务。
Tool 工具
Description 描述
Interact with developer-defined code.
与开发人员定义的代码交互。Fetch up-to-date information from the web.
从网络获取最新信息。Perform semantic search across your documents.
在您的文档中执行语义搜索。Understand and control a computer or browser.
了解并控制计算机或浏览器。 -
知识和记忆
知识和记忆可帮助代理存储、检索和利用其初始训练数据以外的信息。向量存储使代理能够以语义方式搜索文档并在运行时检索相关信息。同时,嵌入可以有效地表示数据以便快速检索,为动态知识解决方案和长期代理记忆提供支持。
-
护栏,护栏可确保您的代理安全、一致地在预期的范围内运行,这对于生产部署至关重要。使用 OpenAI 的免费Moderation API自动过滤不安全的内容。利用指令层次结构进一步控制代理的行为,该层次结构优先考虑开发人员定义的提示并减轻不必要的代理行为。
-
编排,构建代理是一个过程。OpenAI 提供工具来有效地构建、部署、监控、评估和改进代理系统。
Phase 阶段
Description 描述
OpenAI Primitives OpenAI 原语
Build & Deploy 构建和部署
使用 Agents SDK 快速构建代理、执行护栏并处理对话流。
Monitor 监视器
实时观察代理行为,调试问题并通过跟踪获得见解。
Evaluate & Improve 评估和改进
衡量代理商的绩效,找出需要改进的领域,并优化您的代理商。
Agent SDK 特点
1.轻量但强大设计
此 SDK 遵循极简主义设计理念,大多数 AI 工具需要重量级的框架和复杂的 API,但 OpenAI 保持了轻量级且高度灵活。
-
仅需少量核心组件,即可实现强大功能
-
轻量级架构,支持复杂的 AI 工作流
-
从第一天起即可投入生产使用
这不仅仅是一个实验性工具,而是专为现实世界的 AI 应用打造的框架。
OpenAI Agents SDK 架构
Runner:负责协调 Agent 的执行。
Agent:内容包括:指令、工具、交接、验证规则(Guardrails)、模型设置和输出类型。
Models(模型):接口包括:LLM API 的接口、OpenAIChatCompletions、OpenAIResponses
Tools(工具):可扩展工具包括:函数工具(FunctionTool)、网络搜索工具(WebSearchTool)、文件搜索工具(FileSearchTool)、计算工具(ComputerTool)
Guardrails(验证规则):提供输入与输出的验证。
Run Artifacts(运行结果):包括:、运行结果(RunResult)、消息输出项(MessageOutputItem)、工具调用项(ToolCallItem)、交接调用项(HandoffCallItem)、使用信息(Usage Info)
Tracing(追踪):包含:跟踪、时间跨度(Traces, Spans)、agent_span()、function_span()、generation_span()、导出及处理器(Exporters & Processors)
Handoffs(交接):负责代理之间的控制转移。
Agent Loop(代理循环):
-
使用消息调用 LLM
-
处理响应:工具调用或最终输出
-
运行工具或交接到另一个代理
-
重复以上步骤直至得到最终输出
2.内置代理循环
以往,开发者需要手动编写数百行代码来实现 AI 代理循环,包括:调用正确的工具;处理 AI 生成的响应;维护任务循环逻辑;监测任务是否完成。
Agent SDK 自动化了这些流程,开发者无需再手动编写循环逻辑。它支持:
-
无需手动编写循环逻辑
-
代理智能调用工具并处理结果;
-
自动化多步骤 AI 工作流;
极大缩短开发时间,提高 AI 代理的执行效率。
3.函数工具:将任何 Python 函数转换为 AI 工具
使用简单的 Python 装饰器,您可以将任何函数转换为 AI 驱动的工具。这意味着无需重写现有代码——可以立即使现有的功能具备 AI 能力。
-
瞬时模式生成(Instant schema generation)
-
使用 Pydantic 进行自动输入验证
-
无缝 AI 集成
这对使人工智能在实际应用中变得实用来说意义重大。
4.Handoffs Between Agents
AI 代理不再是单独运行的个体,使用 Agent SDK,不同的专业代理可以无缝交接任务——就像一支 AI 专家团队共同协作。Agent SDK 让多个 AI 代理能够无缝交接任务。想象一个工作流程,其中:
-
Agent 1 负责收集信息
-
Agent 2 进行信息总结
-
Agent 3 进行事实核查
-
Agent 4 负责格式化报告
这种 AI 代理协作模式曾经难以实现,如今已成为 SDK 的内置功能:
-
AI 代理可以委派任务
-
专用的 AI 组件协同工作
-
支持强大的多智能体工作流程
这是自动化和人工智能驱动生产力方面的一项重大突破。
5.内置安全防护措施
人工智能最大的问题之一是幻觉和不稳定的输出。Agent SDK 通过提供实时验证和安全检查来解决这一问题。
-
在 AI 处理请求之前进行输入验证
-
并行检查以在数据传播之前捕捉到不良数据
-
提前退出以防止打断工作流程
这意味着人工智能应用将更加可靠和安全,不再有不可预测的 AI 输出——安全防护已内置。
6.跟踪和调试变得简单
调试 AI 工作流程过去一直是一场噩梦。Agent SDK 包含内置跟踪工具,让你可以:
-
实时监控执行情况
-
可视化展示 AI agents 和 tools 工具间的交互
-
快速调试和优化工作流程
你可以清楚地看到 AI 在每一步都在做什么,并快速修复任何问题。这极大地提高了人工智能开发的效率。
7.极其简单易上手
不需要高级 AI 知识就可以开始:一行安装、首个可以工作的AI Agent分钟级搞定、完全开源且面向开发者友好。开发者已经在发布后数小时内构建自动化代理、AI 驱动的工具和研究助手。
更多推荐
所有评论(0)