OpenAI终于又Open了,开源Agent框架Swarm

文摘   2024-10-14 16:03   重庆  

点击上方蓝色字“越山集” >右上角...>设为星标 ⭐

OpenAI前两天开源了Agent框架 Swarm。越山的第一反应与海波老师一样,学不过来。昨天抽空了解了下,感觉的确比较轻量。对智能体新手开发者来说,好理解,易上手。对有经验的开发者而言,多了一种可扩展的选择方案。

Swarm是什么

第一眼看到Swarm, 感觉很眼熟。早期有个容器编排工具 Docker Swarm,能够将配置好的 Docker 应用程序组合成一个集群,以便进行管理和部署,后来被Kubernetes替代。

取这个名字,Swarm (蜂群),应该也是借鉴其多体协作的概念。

Swarm框架就像是为搞智能体系统的开发者们准备的一个玩具盒子,它把这些复杂的东西简化了,让咱们建起多智能体系统来轻松不少。这个框架特别轻巧,用起来也挺顺手,而且还可以根据需要随便改改。

Swarm框架,主要就是两块:智能体和交接。

  • 智能体(Agent):这些助手自带指令和工具,随时都能把对话转给另一个智能体,每个都挺能干。
  • 交接(Handoff):这就像智能体之间的接力赛,它们互相传递任务,协同工作。

Swarm框架的好处就是代码简洁,容易上手。如果你的项目智能体多,Swarm框架的扩展性也能帮上忙。而且,它可以根据不同的项目需求来定制。最让人省心的是,Swarm框架基本上都是在客户端跑的,它和Chat Completions API一样,调用之间不会保存状态,这样咱们就不用太担心数据安全问题了。

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

注意

Swarm Agents 与 Assistants API 中的 Assistants 并无关联。它们名称相似仅出于方便考虑,但实际上完全不相关。Swarm 完全由 Chat Completions API 驱动,因此在调用之间是无状态的。

目前该框架仍处于实验阶段,OpenAI 表示不会提供任何官方支持。

安装和使用也很简单,这里举个客服场景中的栗子🌰

  1. 我们有一个客服中心,包含三个智能体:

  • 总客服小李:负责初步接待客户并决定是否需要转接。
  • 订单专员小王:专门处理订单相关问题。
  • 技术支持小张:专门处理技术相关问题。
  • 当客户提出问题时,总客服小李首先接待。

  • 根据客户的问题性质,总客服可以决定:

    • 自己回答简单问题
    • 将客户转接给订单专员小王(使用transfer_to_order_service函数)
    • 将客户转接给技术支持小张(使用transfer_to_tech_support函数)
  • 在这个例子中,客户询问了一个关于订单的问题:"你好,我的手机订单什么时候能到货?"

  • 系统会从总客服小李开始处理这个问题。根据问题的性质(订单相关),小李可能会选择将客户转接给订单专员小王。

  • 最后,系统会打印出对客户问题的最终回复,这个回复可能来自总客服小李,也可能来自订单专员小王。

  • from swarm import Swarm, Agent

    # 创建Swarm客户端
    client = Swarm()

    # 定义转移函数
    def transfer_to_order_service():
        return order_service_agent

    def transfer_to_tech_support():
        return tech_support_agent

    # 创建总客服智能体
    general_service_agent = Agent(
        name="总客服小李",
        instructions="你是客服中心的总客服。根据客户的问题,决定是否转接到专门的订单服务或技术支持。",
        functions=[transfer_to_order_service, transfer_to_tech_support],
    )

    # 创建订单服务智能体
    order_service_agent = Agent(
        name="订单专员小王",
        instructions="你是专门处理订单相关问题的客服。请用礼貌和专业的语气回答客户的订单问题。",
    )

    # 创建技术支持智能体
    tech_support_agent = Agent(
        name="技术支持小张",
        instructions="你是专门处理技术问题的客服。请用通俗易懂的语言解答客户的技术问题。",
    )

    # 模拟客户询问
    customer_query = "你好,我的手机订单什么时候能到货?"

    # 运行客服系统
    response = client.run(
        agent=general_service_agent,
        messages=[{"role""user""content": customer_query}],
    )

    # 打印最终回复
    print(response.messages[-1]["content"])

    Swarm能做什么

    Swarm框架就相当于给你一套灵活的工具,帮你把多个AI智能体安排得明明白白的。

    比如要打造个人IP,需要一堆技能:定位、选题、写作、私域运营……这些听起来是不是头都大了?但有了Swarm,事情就简单多了。

    每个环节你都可以找个智能体来帮忙。比如:

    • 定位:可以设置一个Agent, 拥有洋哥,潘达等大佬的智慧,为我解答个人IP定位和执行方面的疑问。。
    • 选题:选题难?有个智能体专门搞这个,它有一套方法论,还能从知识库里调出精华,帮你找到好选题。
    • 写作:设置一个Agent, 学习小林老师,皮特老师等,用他们的优质课程和经验为我指导,甚至直接帮我创作。
    • 私域运营:设置一个Agent, 拥有私域文姐的私域运营经验,解答或指导在私域运营上的疑惑。
    • ...

    这样一来,Swarm框架就是帮你把多个智能体组合起来,打造一个为你个人IP服务的超级团队。你只需要定义好每个智能体的角色和技能,剩下的就交给Swarm来搞定。这样,你就能更专注于自己的核心工作,让智能体帮你处理那些繁琐的事情。

    就像扣子Coze里的多Agent模式,不过扣子平台更友好,不用编码,对新手来说更简单。Swarm框架则给那些喜欢自己动手、喜欢探索的开发者提供了更多可能性。

    智能体复杂吗

    智能体很简单,借助于开放平台,比如扣子,元器等低代码平台,拖拖拽拽,写点提示词,搭配个插件,就能很方便地搭建好智能体。

    智能体也可以有点复杂,搭配工作流,知识库,插件,长期记忆等能力,会让它更像一个能力全面的助手。

    做得多了,你会发现,智能体本身不复杂,复杂的是场景和具体的问题。如果你能将场景和问题定义清楚,将解决问题的能力,步骤和标准定义好,搭建智能体,就是很简单的事情。

    怎么学习智能体

    今天一位破局圈友,问我该怎么学习。

    越山认为,在实践中学习是最有效的。

    03期破局行动今天开始报名,16个AI行动选题,涉及技能类,变现类,元能力类,以及一个最火爆的加强版行动。

    有教练带着,有小伙伴一起打卡学习。有兴趣,时间安排得过来的,建议赶紧报名。

    越山是这期AI智能体行动营的教练之一,会带来一些进阶的课程指导,比如 Dify平台,私有化部署等。

    相关阅读: 智能体学习路径  

    通知

    如果你想要参加破局行动,学习AI,需要成为破局会员。


    如果你对打造个人IP,成为超级个体感兴趣,需要系统的指导和赋能,推荐学习洋哥的商业IP课,即将公开发售。加群听公开课,领取“超级个体从零到百万变现”电子书。


    就酱,觉得有用的话,欢迎点赞点个“在看”。也欢迎加我好友, 交流, 围观, 学习。


    越山集
    专注AI智能体,分享AI应用,探索和实践AI应用落地,我是越山,关注我,让AI为你打工。
     最新文章