构建多智能体 AI 应用的5个最佳框架

向量数据库大模型容器

本文旨在帮助你选择并构建支持以下能力的 AI 智能体系统:

记忆功能(Memory)知识库支持(Knowledgebase)工具调用能力(Tools)推理能力(Reasoning)

picture.image

并通过命令行界面(CLI)或精美的图形界面(UI)与智能体进行交互。

什么是智能体(Agent)?

picture.image

大型语言模型(LLMs)可以自动化复杂且具有连续性的工作流和任务。例如,你可以使用 LLM 构建一个助手,能够在应用内自主为你下单购买商品并安排送货。这类基于 LLM 的助手被称为“智能体(Agent)”。

一个智能体是由 LLM 驱动的助手,被赋予特定的任务和工具,以完成这些任务。在其基本形式中,一个典型的 AI 智能体可能配备有用于存储和管理用户交互的记忆系统,能与外部数据源通信,并使用函数来执行任务。以下是智能体能完成的一些常见示例:

餐厅预订 :例如,一个内置在餐饮系统中的 AI 智能体可以帮助用户在线预订、比较不同餐厅,并通过实时语音交互联系用户偏好的餐厅。•资深协作者 :一个智能体可以作为副驾驶,与用户在具体项目上协作。•自动化操作 :智能体可以执行需要多个甚至上百个步骤的任务,例如日常使用电脑。比如,Replit Agent(一个实验性项目)通过模拟开发者在集成开发环境(IDE)中的操作来完成构建任务,该智能体可以像开发者一样安装依赖和编辑代码。而 Anthropic 的 Computer Use(公开测试版)智能体可以指导 Claude 执行电脑任务,就像人类一样使用计算机。该智能体能够查看屏幕并在其中导航,移动鼠标、点击按钮并输入文本。

从零开始构建这些具备“智能体”能力的助手需要大量的团队协作与工程投入,还要考虑用户-智能体聊天历史的管理、与其他系统的集成等问题。接下来的章节将介绍用于构建和集成 AI 智能体到你应用中的五大顶级平台。我们将探讨这些框架的核心特性与优势,并展示部分框架的智能体构建代码示例。

为什么使用多智能体 AI 框架?

有多种方式可以从零开始构建一个 AI 智能体。你可以使用 Python、React 或其他技术栈来实现。然而,像 Agno、OpenAI Swarm、LangGraph、Microsoft Autogen、CrewAI、Vertex AI 和 Langflow 这样的智能体框架则提供了极大的优势。这些框架配备了预设的工具和功能,帮助你快速构建任何 AI 助手。

选择偏好的 LLM :使用来自 OpenAI、Anthropic、xAI、Mistral 的大型语言模型,以及 Ollama 或 LM Studio 等工具,为任何使用场景构建智能体。•添加知识库 :这些框架允许你将特定文档(如 JSON、PDF 或网站)作为知识库添加进来。•内置记忆功能 :该功能消除了你为聊天记录和个性化对话实现记忆系统的需要,无论对话有多长。它允许你轻松浏览长期的历史提示内容。•添加自定义工具 :这些多智能体框架允许你为智能体添加自定义工具,并无缝集成外部系统,以执行例如在线支付、网页搜索、API 调用、数据库查询、观看视频、发送电子邮件等操作。•解决工程挑战 :这些框架有助于简化在构建 AI 产品过程中所涉及的知识管理和记忆管理等复杂工程任务。•加速开发与交付 :它们提供了构建 AI 系统所需的工具和基础架构,帮助你更快地开发系统,并部署到如 Amazon Web Services (AWS) 等云服务平台上。

智能体的基本结构

下面的代码片段展示了一个 AI 智能体最简单、最基础的形式。一个智能体使用语言模型来解决问题。你定义的智能体可以包括大模型或小模型、记忆模块、存储系统、外部知识源、向量数据库、执行指令、描述信息、名称等内容。

  
agent =Agent(  
    model=OpenAI(id="o1-mini"),# 指定使用的语言模型  
    memory=AgentMemory(),# 记忆模块,用于记录对话历史等  
    storage=AgentStorage(),# 存储系统  
    knowledge=AgentKnowledge(# 外部知识系统,接入向量数据库  
        vector_db=PgVector(search_type=hybrid)  
),  
    tools=[Websearch(),Reasoning(),Marketplace()],# 可用工具列表  
    description="You are a useful marketplace AI agent",# 智能体描述  
)

例如,一个现代智能体如 Windsurf[1],可以帮助任何人在几分钟内完成提示、运行、编辑、构建和部署全栈 Web 应用的全过程。它支持使用多种 Web 技术与数据库进行代码生成和应用构建,如 AstroViteNext.jsSuperbase 等。

多智能体在企业中的应用场景

在企业环境中,Agentic AI 系统具有广泛的应用,从任务自动化到重复性操作都有巨大价值。以下是智能体在企业领域中发挥作用的关键方向:

通话与其他数据分析 :分析会议视频通话[2]内容,洞察与会者的情绪、意图和满意度。多智能体系统非常擅长分析并报告用户意图、人口属性及互动行为,其分析与报告能力帮助企业精准定位客户并优化营销策略。•通话分类 :根据与会者的网络带宽与质量自动对通话[3]进行分类,以便更高效地处理与响应。•电商平台监听 :实时监控并分析电商应用各个渠道上的用户情绪[4]与反馈。•投票与评价分析 :通过分析用户反馈与问卷调查数据[5],洞察客户需求,从而优化客户体验。•差旅与报销管理 :自动化处理费用申报、跟踪与审批流程。•对话式银行服务[6] :客户可以通过由智能体驱动的 AI 聊天助手或语音助手完成银行业务操作。•通用型 AI 客服聊天机器人[7] :客服智能体可以排查问题、处理客户投诉,并将复杂任务委托给其他更合适的智能体。•金融领域 :金融[8]智能体可用于预测经济走势、股市变化和市场趋势,并提供可行的投资建议。•市场营销 :营销团队可使用 AI 智能体为不同受众群体生成个性化内容和营销文案,从而提高转化率。•销售 :智能体可以分析客户的互动模式,帮助企业销售团队更有针对性地转化潜在客户。•科技行业 :在科技领域,AI 编码智能体可辅助开发者和工程师高效完成代码生成、自动化操作、测试与错误修复,从而提升开发效率和产品质量。

AI 智能体的局限性

尽管目前已有多个框架可以用来构建智能体助手,但真正投入生产使用的智能体应用仍然较少,仅有少数如 CursorWindsurf 被应用于 AI 辅助编程领域。以下几点解释了为何目前只有少量基于智能体的应用进入了实际生产阶段。

质量问题 :这些智能体在多种应用场景中可能无法提供高质量的结果,表现不稳定或准确性不足。•构建成本高 :开发、维护并将 AI 智能体系统扩展到生产环境的成本很高。训练模型不仅需要大量算力,还需 AI 专家参与。•高延迟 :AI 智能体处理用户输入并生成响应所需的时间可能较长,会影响实时服务的用户体验,例如实时客服、下单流程和问题上报等场景。•安全问题 :将智能体部署到实际应用中,尤其是在企业环境中,可能引发伦理与安全方面的担忧。

欲了解更多关于这些限制的信息,请参阅 LangChain 发布的《State of AI Agent-2024 报告[9]》。

顶级五大多智能体 AI 框架

picture.image

你可以使用多种 Python 框架将智能体集成到应用与服务中。这些框架覆盖无代码(可视化 AI 智能体构建器)、低代码和中代码开发工具。以下将介绍五个领先的 Python 智能体构建框架,可根据企业或业务需求选择适合的方案。

  1. Agno

Agno 是一个基于 Python 的框架,用于将大型语言模型(LLMs)转换为 AI 产品中的智能体。它支持主流供应商的闭源和开源语言模型,如 OpenAI、Anthropic、Cohere、Ollama、Together AI 等。

借助内置的数据库与向量存储支持,你可以轻松将 AI 系统与 Postgres、PgVector、Pinecone、LanceDb 等数据源集成。通过 Agno,你可以构建基础型智能体,也可以通过函数调用、结构化输出、微调等能力构建高级智能体。

Agno 提供免费版、专业版和企业版定价方案。可前往其官网了解更多信息并开始使用。

注意 :Agno 的前身名为

Phidata

Agno 的核心功能

内置智能体 UI :Agno 自带本地与云端运行界面的 UI,可用于运行智能体项目,并自动管理会话信息。•部署能力 :你可以将智能体发布到 GitHub、任何云服务,或连接 AWS 账户将其部署至生产环境。•关键指标监控 :查看会话快照、API 调用情况、Token 使用量、设置参数,持续优化你的智能体。•模板支持 :使用预配置代码模板,加速智能体开发与上线流程。•Amazon Web Services(AWS[10])支持 :Agno 与 AWS 无缝集成,可以将整个应用部署并运行在 AWS 账户中。•模型无关性 :可自由接入来自 OpenAI、Anthropic、Groq、Mistral 等主流供应商的模型与 API Key。•构建多智能体系统 :你可以使用 Agno 构建一个智能体团队,使它们之间可以相互转交任务、协同完成复杂工作。Agno 在后台自动处理智能体的协调与调度。

使用 Agno 和 OpenAI 构建基础 AI 智能体

picture.image

本节将演示如何使用 Python 构建一个基础的 AI 智能体,用于查询 Yahoo Finance[11] 的财经数据。该智能体基于 Agno 框架OpenAI 的大型语言模型 ,目标是汇总 Yahoo Finance 上不同公司的分析师推荐意见。

第一步:为你的 Python 项目创建虚拟环境

创建 Python 虚拟环境可以确保本项目中智能体所需的依赖包不会干扰你设备上其他 Python 项目的环境。虚拟环境能够帮助你组织项目依赖,避免与全局 Python 安装中的库发生冲突或错误。有关环境配置的更多信息,可参考相关教程[12]。

本示例中我们将在 Cursor AI 代码编辑器 中创建 Python 项目,但你也可以使用任何你喜欢的 IDE。请先创建一个空文件夹,并在 Cursor 中打开它。然后新建一个 Python 文件 financial\_agent.py。接下来,在终端中使用以下命令设置虚拟环境:

  
# 创建虚拟环境  
python -m venv venv  
  
source venv/bin/activate

第二步:安装依赖项

在终端中运行以下命令,将 AgnoOpenAI 添加为项目依赖项。同时,我们还需要安装 yfinance 用于获取 Yahoo Finance 财经数据,以及 python-dotenv 用于加载环境变量。

  
# 安装 Agno 和 OpenAI  
pip install -U agno openai  
  
# 安装 python-dotenv(用于加载 .env 中的环境变量)  
pip install python-dotenv  
  
# 安装 yfinance(用于从 Yahoo Finance 获取财经数据)  
pip install yfinance

第三步:创建财经类 AI 智能体

新建一个名为 financial\_ai\_agent.py 的文件,并将其内容替换为以下代码:

  
import openai  
from agno.agent importAgent  
from agno.model.openai importOpenAIChat  
from agno.tools.yfinance importYFinanceTools  
from dotenv import load_dotenv  
import os  
  
# 从 .env 文件加载环境变量  
load_dotenv()  
  
# 从环境变量中获取 OpenAI API 密钥  
openai.api_key = os.getenv("OPENAI_API_KEY")  
  
# 初始化智能体  
finance_agent =Agent(  
    name="Finance AI Agent",  
    model=OpenAIChat(id="gpt-4o"),  
    tools=[  
YFinanceTools(  
            stock_price=True,# 获取股票价格  
            analyst_recommendations=True,# 获取分析师推荐  
            company_info=True,# 获取公司信息  
            company_news=True,# 获取公司新闻  
)  
],  
    instructions=["Use tables to display data"],# 指令:使用表格展示数据  
    show_tool_calls=True,# 显示工具调用过程  
    markdown=True,# 输出格式为 Markdown  
)  
  
# 请求智能体总结 NVDA 的分析师推荐  
finance_agent.print_response("Summarize analyst recommendations for NVDA", stream=True)

下面我们来总结一下这个基础 AI 智能体的示例代码逻辑:

1.导入所需模块与包 :我们首先引入了 Agno 框架、OpenAI 模型模块、Yahoo Finance 工具模块、环境变量加载工具 dotenv 等。2.加载 OpenAI API 密钥 :从 .env 文件中读取 OPENAI\_API\_KEY 环境变量。该方式同样适用于使用其他模型提供商,如 AnthropicMistralGroq 。3.创建智能体实例 :通过 Agno 提供的 Agent 类创建一个新智能体,并为其定义一系列关键特性与能力,包括:•使用的语言模型(如 GPT-4o)•工具(如 Yahoo Finance 工具集)•指令(例如用表格展示结果)•输出配置(是否以 Markdown 显示、是否展示工具调用过程等)4.调用智能体响应 :通过 print\_response 方法请求智能体生成分析师对某公司的推荐摘要,并设置 stream=True 表示答案以流式方式实时输出。

在终端中使用以下命令运行智能体脚本:

  
python3 financial\_agent.py

picture.image

🎉 恭喜你!👏 你已经构建了你的第一个 AI 智能体,它能够为指定公司提供财务洞察和摘要,并以表格形式呈现。

使用 Agno 构建高级/多智能体系统

picture.image

前一节介绍了如何使用 Agno 和 OpenAI 构建一个基础 AI 智能体,并通过 Yahoo Finance 获取金融数据。本节将在此基础上进行扩展,将该智能体升级为一个多智能体系统(由多个智能体组成的团队)。之前的智能体示例只解决了一个单一且具体的问题。现在我们可以利用多智能体的能力,创建一个由多个智能体组成的团队,让每个智能体承担特定职责,从而共同解决复杂问题。

该智能体团队将包含两个成员,他们将协同工作:一位负责从网络搜索信息,另一位负责总结指定公司的财务数据。

Step 1: 安装额外依赖

由于本示例使用 DuckDuckGo[13] 搜索功能从网页获取信息,因此我们需要安装对应的包。创建一个新的 Python 文件 multi\_ai\_agent.py,并在终端中运行以下命令将 DuckDuckGo 添加为项目依赖项:

  
pip install duckduckgo-search

接下来请将以下示例代码填入 multi\_ai\_agent.py文件中。

  
from agnio.agent importAgent  
from agno.model.openai importOpenAIChat  
from agno.tools.duckduckgo importDuckDuckGo  
from agno.tools.yfinance importYFinanceTools  
  
# 定义第一个智能体:网页搜索智能体  
web_search_agent =Agent(  
    name="Web Search Agent",# 名称  
    role="Search the web for information",# 角色职责  
    model=OpenAIChat(id="gpt-4o"),# 使用 GPT-4o 模型  
    tools=[DuckDuckGo()],# 使用 DuckDuckGo 搜索工具  
    instructions=["Always include sources"],# 指令:始终附带信息来源  
    show_tool_calls=True,# 显示工具调用  
    markdown=True,# 输出为 Markdown 格式  
)  
  
# 定义第二个智能体:财经数据智能体  
finance_agent =Agent(  
    name="Finance Agent",  
    role="Get financial data",  
    model=OpenAIChat(id="gpt-4o"),  
    tools=[  
YFinanceTools(# 使用 Yahoo Finance 工具  
            stock_price=True,  
            analyst_recommendations=True,  
            company_info=True  
)  
],  
    instructions=["Use tables to display data"],# 指令:使用表格展示数据  
    show_tool_calls=True,  
    markdown=True,  
)  
  
# 组建多智能体团队  
multi_ai_agent =Agent(  
    team=[web_search_agent, finance_agent],# 将两个智能体组合为一个团队  
    instructions=["Always include sources","Use tables to display data"],  
    show_tool_calls=True,  
    markdown=True,  
)  
  
# 发起任务:总结 NVDA 的分析师推荐意见,并提供相关新闻  
multi_ai_agent.print_response(  
"Summarize analyst recommendations and share the latest news for NVDA",  
    stream=True  
)

由于本节中的示例智能体是在前一个基础上扩展而来,因此我们添加了对 DuckDuckGo 的导入:from agno.tools.duckduckgo import DuckDuckGo,然后,我们创建两个独立的子智能体 web\_search\_agentfinance\_agent,分别为它们分配不同的角色,并配置完成任务所需的工具和指令。

使用python3 multi\_ai\_agent.py命令运行你的多智能体文件 multi\_ai\_agent.py。你将看到类似如下预览的输出结果。

picture.image

从上面的示例代码可以看出,multi\_ai\_agent 由两个团队成员组成:team=[web\_search\_agent, finance\_agent] 其中,web\_search\_agent 负责链接金融相关信息,而 finance\_agent 的职责与前一节中相同。

Agno:构建具备推理能力的 AI 智能体

借助 Agno 简洁易用的特性,我们可以用更少的代码构建一个具备“思考能力”的完整智能体。 例如,当我们指示该推理型智能体用某种编程语言编写代码时,它不会立即输出结果,而是先进行思考,逐步分析并构建解决方案的步骤,最后才给出答案。创建一个新文件 reasoning\_ai\_agent.py,并将以下示例代码填入该文件中。

  
from agno.agent importAgent  
from agno.model.openai importOpenAIChat  
  
task ="Create a SwiftUI view that allows users to switch between the tab bar and sidebar views using TabView and .tabView(.sidebarAdaptable) modifier. Put the content in TabSidebar.swift"  
  
reasoning_agent =Agent(  
    model=OpenAIChat(id="gpt-4o-mini"),  
    reasoning=True,  
    markdown=True,  
    structured_outputs=True,  
)  
reasoning_agent.print_response(task, stream=True, show_full_reasoning=True)

在此示例中,我们按照代码所示指定了提示任务。然后,我们通过设置 reasoning=True 创建了一个新的智能体,使其成为一个具备思考能力的智能体。
当你运行 reasoning\_ai\_agent.py 时,你将看到类似于下方预览的输出结果。

picture.image

  1. OpenAI Swarm

picture.image

Swarm [14]是由 OpenAI 最近发布的一个开源实验性智能体框架,是一个轻量级的多智能体编排框架。

注意 :本文撰写时,Swarm 仍处于实验阶段。它可用于开发和教育目的,但不建议用于生产环境 。该状态可能会有所变化,请查看上方的 GitHub 仓库以获取最新信息。

Swarm 通过 Agents(智能体) 和 handoffs(交接机制) 作为抽象概念,实现智能体间的协调与编排。它是一个轻量级框架,可高效地进行测试与管理。Swarm 的智能体组件可以配备工具、指令和其他参数,以执行特定任务。

Swarm 的优势与核心功能

除了架构轻量、简单外,Swarm 还具备以下关键特性:

对话交接(Handoff conversations) :使用 Swarm 构建多智能体系统时,某个智能体可以在任何时刻将对话任务交接给其他智能体,极大提升了系统灵活性与协作效率。•可扩展性(Scalability) :Swarm 架构简单且支持交接机制,使得构建能够支持百万级用户的智能体系统成为可能。•可扩展性(Extendability) :Swarm 设计之初就考虑到了高度自定义能力,你可以使用它构建完全个性化的智能体交互体验。•内置检索与记忆系统 :Swarm 提供了内置的内容检索机制和记忆管理能力。•隐私保护(Privacy) :Swarm 主要在客户端运行,调用之间不保留状态 ,这一点对于数据隐私保护极为重要。•教育资源丰富(Educational resources) :Swarm 提供了一系列激发灵感的智能体示例用例,涵盖从基础到高级的多智能体应用,可供运行和测试,作为学习和开发的起点。

构建一个基础的 Swarm 智能体

要开始使用 Swarm ,请访问其 GitHub 仓库[15],并运行以下命令安装。Swarm 需要 Python 3.10 及以上版本。 pip install git+ssh://git@github.com/openai/swarm.git 或者: pip install git+https://github.com/openai/swarm.git

注意 :如果运行上述命令时遇到错误,建议在命令末尾添加 --upgrade 进行升级安装,如下所示:

pip install --upgrade git+ssh://git@github.com/openai/swarm.git

pip install --upgrade git+https://github.com/openai/swarm.git

以下是一个使用 OpenAI 的 gpt-4o-mini 模型构建的多智能体示例,它展示了如何通过 Swarm 实现基础的双智能体协作系统,并支持任务交接(handoff)。

  
from swarm importSwarm,Agent  
  
client =Swarm()  
mini_model ="gpt-4o-mini"  
  
# Coordinator function  
def transfer_to_agent_b():  
return agent_b  
  
# Agent A  
agent_a =Agent(  
    name="Agent A",  
    instructions="You are a helpful assistant.",  
    functions=[transfer_to_agent_b],  
)  
  
# Agent B  
agent_b =Agent(  
    name="Agent B",  
    model=mini_model,  
    instructions="You speak only in Finnish.",  
)  
  
response = client.run(  
    agent=agent_a,  
    messages=[{"role":"user","content":"I want to talk to Agent B."}],  
    debug=False,  
)  
  
print(response.messages[-1]["content"])

在上述示例中,协调器 transfer\_to\_agent\_b 负责将对话从 agent\_a 交接给 agent\_b,由 agent\_b 用指定语言生成回应,并跟踪其任务进度。
如果你将 agent\_b 的指令语言修改为不同的语言(例如:英语、瑞典语、芬兰语),你将看到类似下图的输出效果。

picture.image

Swarm 的企业适用性(Enterprise Readiness of Swarm)

从 Swarm 的 GitHub 仓库[16]可以看出,该项目仍处于开发阶段,未来可能会有较大变动。
你可以将其用于实验性目的进行测试与学习。如需了解更高级的 Swarm 智能体应用场景,请查阅 OpenAI 官方 GitHub 中的相关示例[17]项目。

  1. CrewAI

CrewAI 是目前最受欢迎的智能体框架之一。它可以帮助你快速构建 AI 智能体,并将其与最新的 LLM(大型语言模型)以及你的代码库集成。
包括 Oracle、Deloitte、Accenture 等大型企业都在使用并信任该框架。

CrewAI 的优势与核心功能

与其他智能体框架相比,CrewAI 拥有更丰富的功能与特性

可扩展性(Extensibility) :CrewAI 可集成超过 700 种应用,包括 Notion、Zoom、Stripe、Mailchimp、Airtable 等。•工具支持(Tools) :•开发者可以使用 CrewAI 框架从零开始构建多智能体自动化系统;•设计师可使用其 UI Studio 和模板工具,在无代码环境中构建完整功能的智能体。•部署能力(Deployment) :你可以根据自己的偏好快速将开发中的智能体部署到生产环境。

picture.image智能体监控(Agent Monitoring) :和 Agno 类似,CrewAI 提供直观的监控面板,用于跟踪你所构建智能体的进展与表现。•内置训练工具(Ready-made training tools) :CrewAI 提供内置的训练与测试工具,帮助提升智能体的性能与效率,并确保其响应质量。

使用 CrewAI 创建你的第一个 AI 智能体团队

要在 CrewAI 中构建一个智能体团队,你需要安装相关的 Python 包和工具。

在终端中运行以下命令:

  
pip install crewai  
pip install 'crewai[tools]'  
pip freeze | grep crewai

上述命令用于安装 CrewAI 及其智能体工具,并验证是否安装成功。安装完成后,你可以通过以下命令创建一个新的 CrewAI 项目:

crewai create crew your\_project\_name

运行该命令后,你会被提示从多个模型提供商中选择,例如:OpenAI,Anthropic,xAI,Mistral,其他提供商。选择提供商后,你还可以从模型列表中选择具体模型,例如:gpt-4o-mini

现在,我们来创建一个多智能体系统,运行以下命令:

crewai create crew multi\_agent\_crew

完整的 CrewAI 应用已托管在我们的 GitHub 仓库[18]中。你可以下载并使用以下命令运行它:

crewai run

运行后,你将看到类似如下图所示的响应结果。

picture.image

要开始使用 CrewAI 创建你的智能体项目,请查阅官方的 “入门指南[19]”和 “使用教程[20]”。

  1. Autogen

Autogen[21]是一个开源框架,用于构建智能体系统。你可以使用它来构建多智能体协作机制以及基于 LLM 的工作流。

Autogen 的核心功能

Autogen 具备以下关键特性:

跨语言支持 :你可以使用 Python、.NET 等多种编程语言来构建智能体。•本地运行智能体 :支持在本地实验和运行智能体,以增强数据隐私性。•异步通信机制 :通过异步消息系统实现智能体之间的通信。•可扩展性(Scalability) :支持开发者在不同组织之间构建分布式智能体网络。•可定制性(Extensibility) :可通过可插拔组件定制,构建完全个性化的智能体系统体验。

Autogen:安装与快速开始

要开始使用 Autogen 构建智能体,请运行以下命令安装框架:

pip install 'autogen-agentchat==0.4.0.dev6' 'autogen-ext[openai]==0.4.0.dev6

安装完成后,你可以复制并运行下面的示例代码,体验一个基于 Autogen 构建的基础天气查询智能体系统。

  
import asyncio  
from autogen_agentchat.agents importAssistantAgent  
from autogen_agentchat.task importConsole,TextMentionTermination  
from autogen_agentchat.teams importRoundRobinGroupChat  
from autogen_ext.models importOpenAIChatCompletionClient  
  
import os  
from dotenv import load_dotenv  
  
load_dotenv()  
  
# Define a tool  
async def get_weather(city: str)-> str:  
return f"The weather in {city} is 73 degrees and Sunny."  
  
async def main()->None:  
# Define an agent  
    weather_agent =AssistantAgent(  
        name="weather_agent",  
        model_client=OpenAIChatCompletionClient(  
            model="gpt-4o-mini",  
            api_key=os.getenv("OPENAI_API_KEY"),  
),  
        tools=[get_weather],  
)  
  
# Define termination condition  
    termination =TextMentionTermination("TERMINATE")  
  
# Define a team  
    agent_team =RoundRobinGroupChat([weather_agent], termination_condition=termination)  
  
# Run the team and stream messages to the console  
    stream = agent_team.run_stream(task="What is the weather in New York?")  
    await Console(stream)  
  
asyncio.run(main())

在上述 Autogen 智能体示例中,需要使用 OpenAI 的 API 密钥。你可能已经注意到,我们通过 .env 文件加载了该密钥。

运行示例代码后,你将看到类似如下图的输出结果。

picture.image

注意 :与 Agno 和 CrewAI 不同,Autogen 不具备对其他框架和数据源的集成支持 ,内置智能体数量也相对较少。
如需了解更多信息,请参考 Autogen 的 GitHub 仓库[22]。

  1. LangGraph

LangGraph[23]是一个基于节点的 AI 框架,是目前最受欢迎的多智能体系统构建工具之一。它属于 LangChain 生态系统 ,专用于图结构化的智能体流程编排。在 LangGraph 中,你可以使用节点(nodes)与边(edges)构建线性、层级化或顺序性的工作流。每个智能体的动作被定义为一个节点 ,动作之间的转移称为 ,而状态 是 LangGraph 智能体的另一个核心组成部分。

LangGraph 的优势与核心功能

免费开源 :LangGraph 是一个基于 MIT 许可证的免费库。•流式输出支持 :支持逐 token 流式输出,可展示智能体的中间步骤和思考过程。•部署能力 :•支持大规模部署;•提供多种部署选项;•可通过 LangSmith[24] 实现性能监控;•支持自托管企业部署,可将 LangGraph 智能体完全部署在企业私有基础设施中。•企业级可用性 :如 Replit 的 AI 编程智能体[25]就基于 LangGraph 构建,验证了其在企业场景中的实用性。•高性能 :即使在处理复杂的智能体工作流时,LangGraph 也不会给代码带来额外负担。•循环与可控性 :可以轻松定义包含循环的多智能体流程,并对智能体状态实现全面控制。•持久性(Persistence) :LangGraph 会在图中每一步后自动保存智能体状态,允许你在任何时刻暂停和恢复智能体的执行流程。

LangGraph 安装与快速开始

使用 LangGraph 创建一个智能体需要几个步骤:首先,初始化语言模型、工具、图结构和状态;接着,定义图中的节点、入口点和边;最后,编译并执行该图结构。

在终端中运行以下命令安装 LangGraph:

pip install -U langgraph

设置模型 API 密钥,你需要获取并存储所选 AI 模型服务商的 API 密钥。本示例中使用的是 Anthropic 提供的 API,但过程与其他服务商相同。

  
pip install langchain-anthropic  
export ANTHROPIC_API_KEY="YOUR_API_KEY"

另一种方式是将上面的 export 命令复制并粘贴到你的 .zshrc 文件中,并保存,以便每次终端启动时自动加载。

运行示例代码,你可以尝试一个基础的 LangGraph 智能体示例:复制`langgraph_agent.py[26]的内容,并在你喜欢的 Python 编辑器中运行它。该示例[27]源自 LangGraph 的官方 GitHub 仓库。

注意 :在运行 Python 示例代码前,请确保你已在 Anthropic 官方网站[28]上填写好计费信息,以便正常调用 API。

接下来做什么?

本文介绍了构建复杂任务与工作流所需的顶级智能体框架,我们还讲解了如何准备你的开发环境,逐一分析了这些框架的核心功能与优势,并通过基础示例展示了如何快速上手。

你还可以尝试使用其他多智能体平台来构建你的智能体系统,例如:LlamaIndex,Multi-Agent Orchestrator,LangFlow,Semantic Kernel,Vertex AI。在创建完这些智能体和工作流之后,你可以使用智能体内容审核服务 来对其进行管理与监督,以保障用户安全。

更多信息

山行AI希望本文对你有所帮助,由笔者翻译整理自:https://medium.com/@amosgyamfi/best-5-frameworks-to-build-multi-agent-ai-applications-1f88530ef8d8,请帮忙点赞、转发,谢谢!

References

[1] Windsurf:https://windsurf.com/editor
[2]会议视频通话:https://getstream.io/video/
[3]通话:https://getstream.io/video/docs/javascript/
[4]各个渠道上的用户情绪:https://getstream.io/blog/building-an-ecommerce-chatbot-with-react-native-and-dialogflow/
[5]问卷调查数据:https://getstream.io/blog/swiftui-polls/
[6]对话式银行服务:https://getstream.io/blog/conversational-banking/
[7]通用型 AI 客服聊天机器人:https://getstream.io/blog/ai-chat-nextjs/
[8]金融:https://getstream.io/blog/fintech-chatbots-conversational-banking/
[9]State of AI Agent-2024 报告:https://www.langchain.com/stateofaiagents
[10]AWS:https://aws.amazon.com/cn/?nc2=h\_lg
[11]Yahoo Finance:https://github.com/ranaroussi/yfinance
[12]相关教程:https://getstream.io/blog/set-up-coding-environment/#setting-up-a-python-environment
[13]DuckDuckGo:https://duckduckgo.com/
[14]Swarm :https://github.com/openai/swarm
[15]GitHub 仓库:https://github.com/openai/swarm
[16]GitHub 仓库:https://github.com/openai/swarm
[17]GitHub 中的相关示例:https://github.com/openai/swarm/tree/main/examples
[18]GitHub 仓库:https://github.com/GetStream/stream-tutorial-projects/tree/main/AI/Multi-Agent-AI
[19]入门指南:https://docs.crewai.com/introduction
[20]使用教程:https://docs.crewai.com/how-to/create-custom-tools
[21]Autogen:https://github.com/microsoft/autogen
[22]GitHub 仓库:https://github.com/microsoft/autogen
[23]LangGraph:https://www.langchain.com/langgraph
[24]LangSmith:https://www.langchain.com/langsmith
[25]AI 编程智能体:https://docs.replit.com/replitai/agent
[26]langgraph_agent.py:https://github.com/GetStream/stream-tutorial-projects/blob/main/AI/Multi-Agent-AI/langgraph\_ai\_agent.py
[27]该示例:https://langchain-ai.github.io/langgraph/
[28]Anthropic 官方网站: https://www.anthropic.com/api

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论