新闻中心
OpenAI今天Open了一下:开源多智能体框架Swarm
毫无疑问,多智能体肯定是 openai 未来重要的研究方向之一,前些天 openai 著名研究科学家 noam brown 还在 x 上为 openai 正在组建的一个新的多智能体研究团队招募机器学习工程师。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜


项目地址:https://github.com/openai/swarm

pip install git+ssh://git@github.com/openai/swarm.git
from swarm import Swarm, Agentclient = Swarm()def transfer_to_agent_b():return agent_bagent_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"])Hope glimmers brightly,New paths converge gracefully,What can I assist?

易标AI
告别低效手工,迎接AI标书新时代!3分钟智能生成,行业唯一具备查重功能,自动避雷废标项
135
查看详情
from swarm import Swarmclient = Swarm()
先让当前智能体完成一个结果 执行工具调用并附加结果 如有必要,切换智能体 如有必要,更新上下文变量 如果没有新的函数调用,则返回

响应字段


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 Agent 可以直接调用 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() p
or f*or."}],context_variables={"user_name": "John"})Hola, John!
如果某个 Agent 函数调用出错(缺少函数、参数错误等),则会在聊天之中附加一条报错响应,以便 Agent 恢复正常。
如果 Ageny 调用多个函数,则按顺序执行它们。
交接和更新上下文变量
通过在返回的函数中包含一个 Agent,可将执行过程交接给这个 Agent。sales_agent = Agent(name="Sales Agent")def transfer_to_sales():return sales_agentagent = Agent(functions=[transfer_to_sales])response = client.run(agent, [{"role":"user", "content":"Transfer me to sales."}])print(response.agent.name)Sales Agent
sales_agent = Agent(name="Sales Agent")def talk_to_sales():print("Hello, World!")return Result(value="Done",agent=sales_agent,context_variables={"department": "sales"})agent = Agent(functions=[talk_to_sales])response = client.run(agent=agent,messages=[{"role": "user", "content": "Transfer me to sales"}],context_variables={"user_name": "John"})print(response.agent.name)print(response.context_variables)Sales Agent{'department': 'sales', 'user_name': 'John'}文档字符串会转换为函数 description。 没有默认值的参数会设置为 required。 类型提示会映射到参数的 type(默认为 string)。 不明确支持对每个参数进行描述,但如果只是在文档字符串中添加,应该能以相似的方式工作。
def greet(name, age: int, location: str = "New York"):"""Greets the user. Make sure to get their name and age before calling.Args:name: Name of the user.age: Age of the user.location: Best place on earth."""print(f"Hello {name}, glad you are {age} in {location}!"){"type": "function","function": {"name": "greet","description": "Greets the user. Make sure to get their name and age before calling.\n\nArgs:\n name: Name of the user.\n age: Age of the user.\n location: Best place on earth.","parameters": {"type": "object","properties": {"name": {"type": "string"},"age": {"type": "integer"},"location": {"type": "string"}},"required": ["name", "age"]}}}stream = client.run(agent, messages, stream=True)for chunk in stream:print(chunk)
{"delim":"start"} 和 {"delim":"start"},用于在 Agent 每次处理单个消息(响应或函数调用)时发出信号。这有助于识别 Agent 之间的切换。 为方便起见,{"response": Response} 将在流的末尾返回带有已聚合的(完整)响应的 Response 对象。
Ilan Bigio - ibigio James Hills - jhills20 Shyamal Anadkat - shyamal-anadkat Charu Jaiswal - charuj Colin Jarvis - colin-openai
以上就是OpenAI今天Open了一下:开源多智能体框架Swarm的详细内容,更多请关注其它相关文章!
# openai
# swarm
# python
# 入门
# seo自学简单方法
# SEO入门微单入门
# 哪个小说网站推广多些好
# 提交网站建设美丽文案
# 高校专业推广营销方案
# 山东闲鱼关键词排名
# seo优化点是什么
# 推广24小时免费网站
# 快速收录内页方法seo教程
# 佳木斯seo排名电话
# 如何使用
# 将由
# 客户端
# 腾讯
# 都能
# 如有
# 多个
# 转换为
# 它还
# 开源
# type
# descript
# follow
# nginx
# git
相关栏目:
【
行业资讯67740 】
【
技术百科0 】
【
网络运营39195 】
相关推荐:
科技型企业成长"十步法"
1kb等于多少字节
台达plc只有power灯亮是什么意思
typescript怎么加号
如何右键打开命令窗口
夸克缺什么登录不了
春运哪天抢票最好
市盈率tt的扣非是什么意思
如何用adb命令停用系统软件
eraser是什么意思
ready是什么意思
春运抢票哪个城市好抢
路由器power闪红绿灯闪是什么意思
ai文件里无法找到链接文件要怎么解决步骤
j*a如何运行curl命令行
苹果16有哪些亮点功能
系统如何装进固态硬盘
市盈率和市净率是什么意思
按键精灵datediff函数怎么用 如何使用按键精灵中的Datediff函数教程
如果公司ttm市盈率为负数是什么意思
j*a中如何创建列表数组
如何将系统移到固态硬盘
折叠屏有哪些手机
typescript参数怎么用
类似微信的聊天软件有哪些
阿里云盘的会员怎么用
shell如何注释所有命令
adb 命令如何后台运行
iphone拍电子屏有横条如何解决
单片机*计步器怎么用
课程伴侣登不上怎么办
夸克用的什么服务器
typescript是做什么用的
苹果16日发售哪些机型
为什么夸克下载不到
单片机速度怎么看
如何使用命令行界面
如何编写一个linux命令
忐忑不安是什么意思
sausage是什么意思
电瓶车充电器power是什么意思
ai文件在线打开工具有哪些
怎么下载360桌面壁纸
春运抢票技巧攻略
如何用好typescript
跨境电商gmv是什么意思?跨境电商GMV:理解其含义、计算方法和影响因素
命令行如何运行c
drawing是什么意思
电动车充电器上的power是什么意思
春运抢票用不用取票码


2024-10-13
浏览次数:次
返回列表
or f*or."}],context_variables={"user_name": "John"})