驾驭AI:OpenAI Agents SDK入门指南

June 04, 2025

项目描述

OpenAI智能体(Agents)SDK是一个基于Python的框架,专为构建多智能体工作流设计。它不限于特定提供商,既支持OpenAI Responses和Chat Completions API,也支持超过100种其他大型语言模型(LLMs)。该SDK注重轻量化设计,并具备强大的能力来编排多个智能体之间的交互。

智能体追踪UI图片

核心概念: - 智能体(Agents):配置了特定指令、工具、防护栏和交接(handoffs)能力的LLMs。 - 交接(Handoffs):一种特殊的工具调用,用于在不同智能体之间转移控制权。 - 防护栏(Guardrails):可配置的安全检查,用于验证输入和输出。 - 追踪(Tracing):内置功能,用于跟踪、调试和优化智能体运行。

使用说明

1. 设置Python环境:

python -m venv env
source env/bin/activate

2. 安装智能体SDK:

pip install openai-agents
如需语音支持,请安装带可选语音组的版本:
pip install 'openai-agents[voice]'

3. 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)
(请确保已设置OPENAI_API_KEY环境变量。)

4. 交接示例: 根据语言演示智能体交接:

from agents import Agent, Runner
import asyncio

spanish_agent = Agent(
    name="Spanish agent",
    instructions="You only speak Spanish.",
)

english_agent = Agent(
    name="English agent",
    instructions="You only speak English",
)

triage_agent = Agent(
    name="Triage agent",
    instructions="Handoff to the appropriate agent based on the language of the request.",
    handoffs=[spanish_agent, english_agent],
)

async def main():
    result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

5. 函数示例: 将自定义函数集成为智能体的工具:

import asyncio
from agents import Agent, Runner, function_tool

@function_tool
def get_weather(city: str) -> str:
    return f"The weather in {city} is sunny."

agent = Agent(
    name="Hello world",
    instructions="You are a helpful agent.",
    tools=[get_weather],
)

async def main():
    result = await Runner.run(agent, input="What's the weather in Tokyo?")
    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

开发(贡献SDK): 1. 确保已安装uv。 2. 安装依赖:make sync 3. 代码检查/测试:make testsmake mypymake lint

主要特性

  • 多智能体工作流:构建多个LLM智能体之间复杂交互的框架。
  • 提供商无关:支持OpenAI API以及超过100种其他LLMs。
  • 智能体配置:智能体可配置指令、工具、防护栏和交接。
  • 交接机制:专用工具调用,实现智能体之间无缝的控制转移。
  • 防护栏:实现可配置的安全检查,用于输入和输出验证。
  • 内置追踪:自动追踪和调试智能体运行,并支持自定义跟踪跨度(spans)和外部目的地(如Logfire、AgentOps、Braintrust)。
  • 结构化输出:支持为智能体定义output_type,以生成结构化的最终输出。
  • 灵活的智能体循环:持续运行直到产生最终输出,迭代处理工具调用和交接;通过max_turns参数进行控制。
  • 工具集成:允许智能体使用自定义函数作为工具。

目标用户

  • 构建多智能体AI应用的开发者。
  • 从事LLMs和AI工作流研究及实践的人员。
  • 需要编排涉及多个AI智能体的复杂任务的用户。

项目链接

应用场景

  • 复杂信息抽取与处理:智能体可协同从不同来源抽取、处理和汇总信息。
  • 自动化客户服务:分诊智能体可将查询路由到专业智能体,或智能体处理客户交互的不同阶段(如初始问候、问题诊断、解决方案建议)。
  • 代码生成与调试:智能体可专门针对不同编程语言或调试任务,并根据需要进行交接。
  • 内容创作工作流:智能体可协作起草、编辑和完善创意内容,并通过防护栏确保符合风格指南或安全协议。
  • 数据分析与报告:智能体可被分配数据检索、分析、可视化和报告生成的角色。
  • 交互式教程与学习环境:智能体可引导用户完成步骤,提供反馈,并根据用户输入或进度调整响应。

分享本文