PaperAgent 2024年10月12日
OpenAI终于open了,Swarm开源来袭~
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

OpenAI推出用于构建、协调和部署多智能体系统的Swarm框架,它是符合工效、轻量级的协调框架,通过智能体和交接两个原始抽象实现Agent协调和执行,具有多种功能和应用示例。

🎯Swarm是由OpenAI Solutions团队管理的多智能体协调框架,专注于使Agent协调和执行变得轻量级、高度可控且易于测试,通过智能体和交接两个原始抽象来实现。

💻Swarm的multi-agent使用示例丰富,如通过from swarm import Swarm, Agent进行操作,其中run()函数接收消息并返回消息,还能处理多种操作,Agent可封装指令和函数,也可表示工作流程或步骤。

📝Swarm智能体可直接调用Python函数,函数通常应返回字符串,若函数返回Agent,执行将转移到该Agent,且函数可定义context_variables参数,由client.run()传入的context_variables填充。

2024-10-12 13:12 湖北

OpenAI也来卷Agent了,开源Swarm:用于构建、协调和部署多智能体(multi-agent)系统的框架

Swarm用于构建、协调和部署多智能体(multi-agent)系统的框架,由OpenAI Solutions团队管理。Swarm是一个符合工效(ergonomic)、轻量级的多智能体协调框架。

Swarm专注于使Agent协调和执行变得轻量级、高度可控且易于测试,它通过两个原始抽象来实现这一点:智能体(agent)和交接(handoffs)。一个智能体包含了指令和工具,并且可以在任何时候选择将对话交接给另一个智能体。这些原始抽象足够强大,能够表达工具和智能体网络之间的丰富动态,允许你构建可扩展的、现实世界的解决方案,同时避免陡峭的学习曲线。

Swarm的multi-agent使用示例

from swarm import Swarm, Agent
client = Swarm()
def transfer_to_agent_b(): return agent_b

agent_a = Agent( name="Agent A", instructions="You are a helpful agent.", functions=[transfer_to_agent_b],)
agent_b = Agent( name="Agent B", instructions="Only speak in Haikus.",)
response = client.run( agent=agent_a, messages=[{"role": "user", "content": "I want to talk to agent B."}],)
print(response.messages[-1]["content"])

Swarm的multi-agent使用示例输出:

Hope glimmers brightly,New paths converge gracefully,What can I assist?

client.run() 

Swarm 的 run() 函数类似于 Chat Completions API 中的 chat.completions.create() 函数——它接收消息并返回消息,但在调用之间不保存任何状态。然而,重要的是,它还处理Agent函数执行、交接、上下文变量引用,并且在返回给用户之前可以处理多个回合。

在核心层面,Swarm 的 client.run() 实现了以下循环:

Agent

一个Agent简单地封装了一组指令和一组函数(加上下面的一些额外设置),并且有能力将执行交接给另一个Agent。

虽然将Agent拟人化很诱人,但它也可以用来表示由一组指令和函数定义的非常具体的工作流程或步骤(例如,一组步骤、复杂的检索、单个数据转换步骤等)。这允许Agent被组合成一个由“智能体”、“工作流程”和“任务”组成的网络,所有这些都由相同的原始元素表示。

agent = Agent(   instructions="You are a helpful agent.")
###def instructions(context_variables): user_name = context_variables["user_name"] return f"Help the user, {user_name}, do whatever they want."
agent = Agent( instructions=instructions)response = client.run( agent=agent, messages=[{"role":"user", "content": "Hi!"}], context_variables={"user_name":"John"})print(response.messages[-1]["content"])
###Hi John, how can I assist you today?

函数

Swarm智能体可以直接调用 Python 函数。函数通常应该返回一个字符串(值将尝试被转换为字符串)。如果一个函数返回一个Agent,执行将被转移到那个Agent。如果一个函数定义了一个 context_variables 参数,它将被 client.run() 传入的 context_variables 填充。

def greet(context_variables, language):   user_name = context_variables["user_name"]   greeting = "Hola" if language.lower() == "spanish" else "Hello"   print(f"{greeting}, {user_name}!")   return "Done"
agent = Agent( functions=[print_hello])
client.run( agent=agent, messages=[{"role": "user", "content": "Usa greet() por favor."}], context_variables={"user_name": "John"})#####Hola, John!
https://github.com/openai/swarm

推荐阅读


欢迎关注我的公众号“PaperAgent”,每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

OpenAI Swarm 多智能体 Python函数
相关文章