2025年3月11号,OpenAI正式推出其下第一款企业级Multi-Agent开发框架Agents-SDK,该框架是此前OpenAI在去年推出的Swarm的升级版,在保留了Swarm的高效便捷的Multi-Agent开发特性的同时,加入了更多面向企业级应用的功能。
- Agent(智能体):即带有指令和工具的大语言模型(LLM)
- Handoff(交接):允许智能体将特定任务委托给其他智能体
- Guardrail(护栏):用于对输入内容进行验证
同时,在2025年3月27号,Agents SDK正式官宣支持MCP使用,这也使得Agents SDK的实际应用场景得到待拓展:
因此仅需在创建Agent的时候,将MCP服务器视作为一项工具,即可顺利调用MCP服务器进行Agent开发。
- Agents SDK安装流程
- Agents SDK简单调用流程
接下来尝试快速调用Agents SDK进行模型响应。需要注意的是,Agents SDK作为一个工业级的Multi-Agent开发框架,实际使用过程中有非常多的的技术细节,但如果希望快速测试一些功能,则只需要导入Agent和Runner两个模块即可快速运行。
然后可以按照如下方式创建一个Agent对象,并调用DeepSeek模型作为基础模型:
然后即可创建一个Agent:
当创建完一个Agent后,接下来即可测试进行调用:
不同于传统的模型 API是Messages驱动(传入Message、传出Message),Agents SDK是事件驱动,既Agents SDK会将整个运行过程看成是一次次的事件。例如上述创建完俳句后,全部的事件都保留在result中,我们可以通过属性来查看全部的事件,全部的事件用一个列表进行表示:
而在此前的对话中,只发生了一次事件:
就是一次MessageOutputItem,也就是消息创建事件(也就是大模型发生一次回复):
而具体回复的内容,则可以通过来查看:
而Agents SDK为了方便我们快速构造多轮对话机器人,专门提供了一个to_input_list()方法,可以直接将用户的输入和本次输出结果拼接成一个消息列表:
而此时,我们只需要将此前对话消息,加上新一轮的对话消息,即可快速进行多轮对话:
多轮对话构造:
对于任意一个Agent开发框架,能够顺利调用外部工具都是基础要求,而Multi-Agent框架则进一步要求不仅能够顺利调用多个外部工具,还需要能够在多个不同的Agent中进行切换,以便于执行不同类型任务。
Agents SDK调用外部工具的流程相对来说简单很多,只需要按照如下方式执行即可:
- 导入functionAgent 智能体_tool类
- 使用Python装饰器,构建一个外部工具:
- 创建代理,并在tools参数中增加一个get_weather工具:
- 测试调用结果
这里我们还是采用weather_agent来进行多地天气查询,即可测试Agents SDK是否会开启多工具并联调用:
接下来继续尝试进行多工具串联调用测试。此时我们再定义一个write_file函数,用于将“文本写入本地”:
然后再创建一个同时可以调用天气查询和写入本地文件的Agent:
然后尝试运行:
如果以上介绍的Agents SDK的相关功能只是对于大模型基础能力的增强的话,那Agents SDK的Handoffs(交接)功能,则是搭建Multi-Agent的关键技术。
所谓Multi-Agent,指的是在某些场景下、为了解决一些更加复杂的任务,我们则可以考虑通过多个智能体协作的方式来完成。相比使用一个Agent来调用多种工具,我们使用不同的Agent来管理不同类别的工具,将会使整个架构更加清晰、维护更加便捷,同时也会使得整个Agent系统功能更加灵活、运行更加稳定。
接下来我们就通过一个简单的示例,来查看Agents SDK的Handoffs基础功能实现方法。这里先创建一组只能用某种语言进行回复的智能体:
然后创建一个可以自由调度其他几个智能体的分诊智能体triage_agent,这里我们可以通过handoffs参数,来确定当前分诊智能体能够调用的智能体范围。而当分诊智能体运行时,会根据用户的需求,以及分诊智能体的实际功能,将任务转交给对应的智能体来完成:
从上述例子不难看出,Agents SDK的Handoffs功能能够非常便捷的调用不同的Agent来实现某一项具体的需求。但这个分诊的Agent到底是如何判断可以将需求转交给哪个Agent的呢?由于Handoffs采用了和Function calling相同的机制,因此默认会根据Agent的名字和Instruction来判断Agent的功能。但有的时候这种识别并不能描述全部情况。
有一种更加稳妥的方法是使用参数来描述Agent的功能,才能进行更加准确的转交。
外部函数组创建流程
核心Agent提示词模板
航班修改智能体(Flight Modification Agent)
航班取消智能体(Flight Cancel Agent)
航班更改智能体(Flight Change Agent)
行李找寻智能体(Lost Baggage Agent)
客户信息
分诊智能体(Triage Agent)
增加智能体之间的转交功能Handoffs
创建对话函数
最终执行:
点击查看航班转移代码
发布者:Ai探索者,转载请注明出处:https://javaforall.net/244486.html原文链接:https://javaforall.net
