openai-agents:OpenAI智能体Swarm升级


OpenAI今天发布的另一项重大公告:用于构建“代理/智能体/agent”的 Python 库( openai-agents),以替代他们之前的swarm 研究项目。

在这个openai-agents项目里,“代理agent”其实就是一个类,它的作用是给LLM(大语言模型)设置一个系统提示,让它能够使用特定的工具。

这里有个挺有意思的概念,叫做“交接handoffs”:简单来说,就是一个代理可以决定把任务交接给另一个代理,这个被交接的代理也有自己的系统提示和工具,就像是一个工具一样被使用。

此代码示例说明了这个想法:

from agents import Agent, handoff

billing_agent = Agent(
    name="Billing agent"
)
refund_agent = Agent(
    name=
"Refund agent"
)
triage_agent = Agent(
    name=
"Triage agent",
    handoffs=[billing_agent, handoff(refund_agent)]
)

攻击检测
该库还包括guardrails (道德围墙),您可以添加的类,用于尝试过滤用户输入以确保其符合预期标准。

这个道德围墙看起来就像是试图用更多的人工智能来解决人工智能安全问题:

  • 对传入的用户文本进行第一遍分类,查看它是否包含注入攻击。如果包含,则拒绝它。
  • 在提供输出之前,运行分类以查看输出本身是否看起来已被颠覆。如果是,则返回错误。
  • 继续执行单个 AI,但修改生成的提示以缓解攻击。例如,将硬编码指令附加在末尾而不是开头,以尝试覆盖“忽略先前的指令并...”语法。
大型语言模型仍然是无法理解的黑匣子。没有人,甚至模型的创建者,能够完全理解它们能做什么。这不像常规的计算机编程!这容易引起针对提示注入攻击

原文大意:
OpenAI Agents SDK 是一个让你可以轻松构建代理 AI 应用程序的工具包,它非常轻便、容易使用,而且几乎不需要复杂的抽象概念。这是我们之前对代理群体(Swarm)实验的一个升级版,现在可以直接用于实际生产。Agents SDK 提供了一些非常基础但强大的功能模块:

  • 代理人:这是一个配备了指令和工具的大语言模型(LLM)。
  • 交接:这个功能允许一个代理人把特定的任务交给另一个代理人去完成。
  • 护栏:这个功能用来检查代理人的输入是否正确。
结合 Python 语言,这些基础模块足以表达工具和代理人之间复杂的关系,并且让你能够构建现实世界的应用程序,而不需要经历艰难的学习过程。此外,SDK 还自带内置的跟踪功能,让你可以可视化和调试代理人的工作流程,评估它们的表现,甚至为你的应用程序微调模型。

为什么要使用 Agents SDK?
这个 SDK 的设计遵循两个原则:

  1. 提供足够多的功能让你觉得有用,但基本元素很少,可以快速上手。
  2. 开箱即用,但你可以根据需要自定义具体的行为。

以下是该 SDK 的主要功能:

  • 代理循环:内置的代理循环功能,负责调用工具、将结果发送给 LLM,并循环直到 LLM 完成任务。
  • Python 优先:使用 Python 的内置语言功能来协调和链接代理人,不需要学习新的抽象概念。
  • 交接:在多个代理人之间进行协调和任务委派的强大功能。
  • 护栏:与你的代理人并行运行输入验证和检查,如果检查失败则提前中断。
  • 函数工具:将任何 Python 函数转换成工具,并自动生成模式和 Pydantic 支持的验证。
  • 跟踪:内置的跟踪功能,让你可以可视化、调试和监控你的工作流程,还可以使用 OpenAI 的评估、微调和提炼工具套件。
简单来说,这个 SDK 让你能够轻松地构建和调试 AI 应用程序,而不需要太多复杂的学习过程。