OpenAI Agents SDK
The OpenAI Agents SDK 使您能够使用轻量级、易于使用的软件包构建具有代理能力的 AI 应用程序,且抽象程度非常低。它是我们之前关于代理的实验的生产级升级版本,即 Swarm。Agents SDK 具有非常少量的基本组件
- Agents(代理),即配备指令和工具的 LLM
- Handoffs(交接),允许代理将特定任务委托给其他代理
- Guardrails(护栏),用于验证代理的输入和输出
- Sessions(会话),自动维护跨代理运行的对话历史记录
结合 Python,这些基本组件足以表达工具和代理之间的复杂关系,并允许您构建实际应用程序,而无需陡峭的学习曲线。此外,SDK 带有内置的 tracing(追踪) 功能,可让您可视化和调试代理流程,以及评估它们甚至为您的应用程序微调模型。
为什么使用 Agents SDK
SDK 有两个主要的驱动设计原则
- 具有足够的功能使其值得使用,但基本组件足够少,使其易于学习。
- 开箱即用,效果很好,但您可以自定义发生的确切情况。
以下是 SDK 的主要功能
- 代理循环:内置代理循环,处理调用工具、将结果发送到 LLM 以及循环直到 LLM 完成。
- Python 优先:使用内置语言功能来编排和链接代理,而不是需要学习新的抽象概念。
- Handoffs:一种强大的功能,用于协调和在多个代理之间委托任务。
- Guardrails:并行运行输入验证和检查,如果检查失败则提前中断。
- Sessions:自动会话历史记录管理,跨代理运行,无需手动状态处理。
- 函数工具:将任何 Python 函数转换为工具,并自动生成模式和由 Pydantic 驱动的验证。
- Tracing:内置追踪,可让您可视化、调试和监控您的工作流程,以及使用 OpenAI 的评估、微调和知识蒸馏工具套件。
安装
Hello world 示例
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)
# Code within the code,
# Functions calling themselves,
# Infinite loop's dance.
(如果运行此代码,请确保设置 OPENAI_API_KEY 环境变量)