openai-agents-python v0.6.0¶
为什么要使用openai-agents-python¶
想象一下,你手中握有世界上最先进的引擎——大语言模型,它拥有令人惊叹的理解与生成能力。但问题是,如何让它不仅仅是回答一个问题,而是完成一连串复杂的任务?如何让它记住上下文、使用工具、在不同的专业“代理人”之间无缝交接,最终像一个真正的数字员工一样工作?
这就是每个开发者面前的矛盾:我们拥有了强大的“大脑”,却苦于为其构建一个灵活、可靠的“身体”与“协作网络”。从头开始?你将陷入状态管理、工具调用、记忆存储等无尽的基础设施泥潭,真正的智能逻辑反而被淹没在繁琐的工程细节中。
而 openai-agents-python,正是OpenAI官方为你提供的答案。它不是一个简单的SDK包装,而是一个**智能体(Agent)原生框架**。它的存在,就是为了将你从构建“身体”的重复劳动中解放出来,让你能直接专注于定义智能体的“思维”和“技能”。使用它,意味着你选择站在巨人的肩膀上,用官方最前沿的设计模式,将顶级AI模型的能力快速、优雅地转化为可用的、复杂的应用程序。拒绝它,你可能意味着选择了更漫长的道路和更多的不确定性。
openai-agents-python是什么¶
简单来说,openai-agents-python 是 OpenAI 官方发布的一个 Python 框架,专门用于构建和运行**智能体(Agents)**。
你可以把它理解为一个高级工具箱,它基于 OpenAI 的 Python SDK 构建,但提供了更高层次的抽象。它帮你处理了构建一个实用AI智能体时最麻烦的部分:管理对话记忆、定义和使用工具(函数)、在不同职责的智能体之间进行任务交接(Handoff),以及与外部系统(如电话、短信)的集成。它为你搭好了舞台,你只需专注于设计演员(智能体)的角色和剧本(业务逻辑)。
入门示例¶
让我们设想一个真实的电商客服场景。你需要一个智能客服系统,它能处理用户咨询、查询订单,并在遇到复杂投诉时,自动转接给专门的人工处理专员。
使用 openai-agents-python,你可以这样构建:
-
定义工具:首先,创建智能体可以调用的“技能”,比如查询数据库的
lookup_order函数。 -
创建智能体:接着,创建具有不同职责的智能体。比如,一个通用的“客服助手”和一个专门的“人工专员”。
from agents import Agent, HandoffToAgent # 通用客服智能体 customer_service_agent = Agent( name="客服助手", instructions="你是一个友好的电商客服助手,可以帮用户查询订单。如果用户情绪激动或要求人工服务,请转接给人工专员。", tools=[lookup_order], handoffs=[HandoffToAgent(agent="人工专员", reason="用户要求或复杂投诉")] # 定义可转接的路径 ) # 人工处理智能体 human_agent = Agent( name="人工专员", instructions="你是一个专业的人工客服代表,负责处理复杂问题和投诉。请以专业且共情的方式回应用户。", tools=[] # 可以接入工单系统等工具 ) -
运行与交互:最后,将智能体放入一个“运行时”环境中,开始对话。框架会自动管理对话历史,并在条件触发时完成智能体间的转接。
在这个交互中:“客服助手”会先尝试使用from agents import Runner # 用户消息 messages = [{"role": "user", "content": "我的订单123456怎么回事?一直没收到!我很生气!"}] # 运行对话 final_result = Runner.run(starting_agent=customer_service_agent, input=messages) print(final_result.final_output)lookup_order工具查询订单。但由于用户表达了强烈情绪,根据它的指令,它会自动触发**Handoff**(转接),将整个对话上下文打包交给“人工专员”。随后,“人工专员”会接替对话,以更专业的方式处理用户投诉。这一切流转都由框架自动、无缝地完成。
openai-agents-python v0.6.0版本更新了什么¶
v0.6.0版本引入了一项关键的行为变更:现在,当智能体将任务**转接(Handoff)**给另一个智能体时,之前的对话历史会被折叠汇总成一条消息传递。这可能会影响现有智能体的行为,建议在生产环境升级前进行测试。
此外,本次更新主要包含多项问题修复和功能改进:修复了Twilio集成的初始音频抖动问题;解决了与Redis-py v7的SSL连接兼容性问题;升级了底层OpenAI Python库以支持新模型;新增了输入护栏的并行运行参数和工具错误日志记录功能;并修复了内存泄漏问题。
更新日志¶
关键变更¶
此版本中包含一项破坏性变更,涉及智能体转交(Handoff)行为。具体来说,当向新智能体转交任务时,消息历史现在会被折叠成单条消息进行传递。我们已经验证和评估了此行为,认为其效果更优,但建议在生产环境中升级到 v0.6.0 之前,先对您的智能体进行测试。
更新内容¶
- 修复(Twilio):增加可配置的启动延迟以避免初始音频抖动(修复了 #1906)
- 修复:解决了使用 redis-py v7 时出现的 Redis SSL 连接错误问题(#2081)
- 默认情况下,在转交时折叠历史消息
- 将 openai-python 升级至 2.8.0 版本以支持 GPT-5.1
- 更新所有已翻译的文档页面
- 在 ModelSettings 中新增 prompt_cache_retention 设置项
- 功能:为输入护栏(input guardrails)新增 run_in_parallel 参数
- 修复:使用 weakref 修复了智能体内存泄漏问题(#2008)
- 文档:修复了部分文件中的拼写错误
- 功能:新增工具错误日志记录
完整更新日志:v0.5.1...v0.6.0
总结¶
总的来说,v0.6.0 是一次以**优化智能体转交体验**为核心的更新。其最重要的变化是默认将转交时的对话历史进行折叠,旨在提升交互效率。同时,版本也包含了从音频处理、数据库连接到内存管理等多个方面的稳定性修复和功能增强,并保持了与最新AI模型版本的同步。