微信扫码
与创始人交个朋友
我要投稿
Agent 目前我见到的最多的翻译是“智能体”,但是直译是“代理”。
那 Agentic 又要翻译成什么呢?我感觉“代理型”这样的词更合适。
所以为了不让读者混淆,我在本文直接用英文表示。
随着 LLM 的发展,AI 的能力已不再局限于简单的任务自动化,它们能够处理复杂且连续的工作流。例如,我们可以使用 LLM 来创建智能助手,自动代替用户在电商平台上订购商品,并安排配送。这些基于LLM的助手被称为 AI Agent。
说的具体一点,AI Agent 是一个由 LLM 驱动的智能助手,能够根据预设的任务和工具,帮助完成特定的工作。在最基础的形式下,AI Agent 具备以下几个关键特性:
内存管理:AI Agent 可以存储并管理与用户的交互记录。
外部数据源交互:能够与外部系统进行通信,获取数据或完成任务。
函数执行:通过调用函数来完成实际工作。
举个例子,AI Agent 可以执行以下任务:
餐厅预订:比如,在餐厅系统中的 AI Agent 可以帮助用户在线预订座位、比较不同餐厅,并通过语音互动帮用户直接呼叫餐厅。
虚拟协作同事:AI Agent 可以作为你项目中的“小秘”,与用户协作完成特定的任务。
自动化日常操作:AI Agent 能够处理多个步骤的操作,甚至完成日常电脑操作。比如,Replit Agent 可以模拟开发人员在开发环境中执行的操作,自动安装依赖和编辑代码;Anthropic 的 Computer Use Agent 可以指导 Claude 以用户常用的方式操作计算机,包括移动鼠标、点击按钮、输入文本等。
虽然我们可以使用 Python、React 等技术栈从零开始构建 AI Agent,但借助像 Phidata、OpenAI Swarm、LangGraph、Microsoft Autogen、CrewAI、Vertex AI 和 Langflow 等 Multi-Agent(多代理)框架,开发过程会变得更加高效。这些框架提供了预先打包的工具和功能,从而帮助我们快速构建 AI 助手。
那么,使用这些框架的优势在哪里呢?
选择合适的LLM:你可以根据具体的应用场景,使用 OpenAI、Anthropic、xAI、Mistral 等 LLM,或像 Ollama 和 LM Studio 等工具来构建 AI Agent。
添加知识库:这些框架允许你将特定文档(如 json、pdf 文件或网站)添加为知识库,帮助 AI Agent 获取并理解信息。
内置记忆功能:无需自己构建复杂的系统来存储和管理聊天记录或个性化对话。框架自带的记忆功能可以帮助 AI Agent 长时间记住并查阅先前的交互内容。
自定义工具:Multi-Agent 框架允许我们为 AI Agent 添加自定义工具,并与外部系统进行无缝集成,执行如在线支付、网页搜索、API 调用、数据库查询、视频观看、邮件发送等操作。
简化工程挑战:这些框架帮助我们简化复杂的工程任务,比如知识和记忆管理,从而在开发 AI 产品时减少技术难度。
加速开发与部署:框架提供了构建 AI 系统所需的工具和基础设施,帮助我们更快速地开发和将 AI 系统部署到云平台(如 AWS)。
通过这些框架,我们可以更轻松地开发出高效、智能的 AI Agent,提升产品开发的速度和质量。
接下来,我们将深入了解构建 AI Agent 的五大平台,帮助你快速上手,打造属于自己的 AI 助手!
Agent 的基本结构
下面的代码片段展示了一个最简单的 AI Agent。 AI Agent 通过使用语言模型来解决问题。AI Agent 的定义可能包括选择的大型或小型语言模型、内存、存储、外部知识源、向量数据库、指令、描述、名称等。
例如,像 Windsurf 这样的现代 AI Agent 可以帮助任何人快速生成、运行、编辑、构建和部署全栈 Web 应用程序。它支持多种 Web 技术和数据库的代码生成与应用构建,如 Astro、Vite、Next.js、Superbase 等。
企业中 Multi-Agent 的应用案例
Agentic AI 系统在企业环境中有着广泛的应用,尤其是在执行自动化和重复任务方面。以下是 AI Agent 在企业领域中有用的关键应用场景:
呼叫与其他分析:分析参与者的视频通话,获得人们的情感、意图和满意度等洞察。Multi-Agent 系统擅长分析和报告用户的意图、人口统计和互动。它们的分析/报告能力帮助企业锁定目标客户或市场。
呼叫分类:根据参与者的网络带宽和强度自动对呼叫进行分类,以便高效处理。
市场倾听:监控和分析市场应用中的客户情感。
调查与评论分析:利用客户反馈和调查数据获取洞察并改善客户体验。
差旅与费用管理:自动化费用报告、跟踪和审批。
对话式银行:通过 AI 驱动的聊天或语音助手帮助客户进行银行业务。
通用AI支持聊天机器人:客户支持 Agent 可以处理客户投诉、排除故障,并将复杂任务委派给其他 Agent。
金融:金融 Agent 可以用于预测经济、股票和市场趋势,并提供切实可行的投资建议。
营销:企业的营销团队可以利用 AI Agent 为不同目标受众创作个性化内容和广告文案,从而提高转化率。
销售:AI Agent 可以帮助分析系统中的客户互动模式,帮助销售团队聚焦于潜在客户的转化。
技术:在技术行业,AI 编码 Agent 可以帮助开发人员和工程师通过加速代码完成、生成、自动化、测试和修复错误来提高工作效率。
2024 五大 Agent 框架
你可以使用多个 Python 框架来创建并将 Agent 添加到应用程序和服务中。这些框架包括无代码(可视化 AI Agent 构建器)、低代码和中代码工具。现在我将向你介绍 2024 年五个顶尖的的基于 Python 的 Agent 构建器,你可以根据自己的业务需求进行自由选择。
1 Phidata
Phidata 是一个基于 Python 的框架,可将 LLM 转化为 AI 产品中的 Agent。它支持主流大厂的闭源和开源 LLM,如 OpenAI、Anthropic、Cohere、Ollama 和 Together AI 等。通过其对数据库和向量存储的支持,我们可以轻松地将 AI 系统连接到 Postgres、PgVector、Pinecone、LanceDb 等。使用 Phidata,我们可以构建基础 Agent,也可以通过函数调用、结构化输出和微调来创建高级 Agent。
内置 Agent UI:Phidata 提供了一个现成的用户界面,用于本地或云端运行 Agent 项目,并在后台管理会话。
部署:你可以将 Agent 发布到 GitHub 或任何云服务,也可以连接 AWS 账户将其部署到生产环境。
监控关键指标:提供会话快照、API 调用、token 使用情况,并支持设置调整和 Agent 改进。
模板支持:通过预配置的代码库模板,加速 AI 代理的开发和生产过程。
支持 AWS:Phidata 与 AWS 无缝集成,可以在 AWS 账户上运行完整的应用程序。
模型独立性:支持使用来自 OpenAI、Anthropic、Groq 和 Mistral 等先进的模型和 API 密钥。
构建 Multi-Agent:使用 Phidata 可以创建一个 Agent 团队,让它们相互传递任务并协作完成复杂任务。Phidata 会在后台无缝处理 Agent 的协调工作。
现在我将向你展示如何使用 Phidata 框架和 OpenAI 的 LLM 在 Python 中构建一个查询 Yahoo Finance 的金融数据的基本 AI Agent。该 Agent 旨在通过 Yahoo Finance 汇总各公司分析师的推荐意见。
安装依赖项:
新建一个 financial_agent.py:
import openai
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.yfinance import YFinanceTools
from dotenv import load_dotenv
import os
# 从 .env 文件加载环境变量
load_dotenv()
# 从环境中获取 API 密钥
openai.api_key = os.getenv("OPENAI_API_KEY")
# 初始化 Agent
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,
)
# 输出分析师对 NVDA 的推荐摘要
finance_agent.print_response("Summarize analyst recommendations for NVDA", stream=True)
上述代码:
导入模块和加载 API 密钥
首先,导入所需的模块和包,并通过 .env 文件加载 OpenAI 的 API 密钥。这种加载 API 密钥的方式同样适用于其他模型提供商,如 Anthropic、Mistral 和 Groq。
创建代理
使用 Phidata 的 Agent 类创建一个新的 Agent,并指定其独特的功能和特性,包括模型、工具、指令等。
打印响应
调用 print_response 方法输出代理对问题的响应,并指定是否以流式方式显示(stream=True)。
Swarm 是 OpenAI 最近发布的一种开源实验性 Agent 框架,是一种轻量级的 Multi-Agent 编排框架。
注意:Swarm 仍处于实验阶段。可用于开发和教育目的,但不建议用于生产环境。最新的信息可以去参考官方仓库:
https://github.com/openai/swarm
Swarm 使用 Agents 和 Handoffs(交接) 作为抽象概念,用于 Agent 的编排和协调。它是一种轻量级框架,便于测试和管理。Swarm 的 Agent 可以配置工具、指令和其他参数,以执行特定任务。
除了其轻量和简单的架构,Swarm 还具备以下关键特性:
对话交接:Swarm 支持构建 Multi-Agent 系统,一个 Agent 可以在任意时间将对话交接给其他 Agent。
可扩展性:凭借其简化的交接架构,Swarm 易于构建能够支持数百万用户的 Agent 系统。
可扩展性:Swarm 设计上具有很高的可定制性,可用于创建完全定制化的 Agent 体验。
内置检索系统和内存处理:Swarm 内置了存储和处理对话内容的功能。
隐私保护:Swarm 主要在客户端运行,并且不会在调用之间保留状态,极大地提高了数据隐私性。
教育资源:Swarm 提供了一系列基础到高级的 Multi-Agent 应用示例,可供开发者测试和学习。
接下来,我给你演示一下如何使用 Swarm:
from swarm import Swarm, Agent
# 初始化 Swarm 客户端
client = Swarm()
mini_model = "gpt-4o-mini"
# 定义协调函数,用于将任务交接给 Agent B
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.",
)
# 运行 Agent 系统并获取响应
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "I want to talk to Agent B."}],
debug=False,
)
# 打印 Agent B 的响应
print(response.messages[-1]["content"])
上述代码
初始化
Swarm 用于创建一个客户端实例。
Agent 定义了 Agent 的名称、功能和语言模型(如 gpt-4o-mini)。
交接逻辑
transfer_to_agent_b 是一个协调器函数,将任务从 agent_a 转移到 agent_b。
运行代理系统
client.run() 执行代理系统,传入 messages 和 debug 参数,用于跟踪任务执行过程。
如果将 agent_b 的指令中语言更改为其他语言(如英语、瑞典语、芬兰语),将会得到相应语言的响应结果。
CrewAI 是最受欢迎的基于 Agent 的 AI 框架之一,可快速构建 AI Agent 并将其集成到最新的 LLM 和代码库中。像 Oracle、Deloitte、Accenture 等大公司都在使用并信任 CrewAI。
与其他基于 Agent 的框架相比,CrewAI 功能更加丰富,特性更加多样。
可扩展性
支持集成 700 多种应用程序,包括 Notion、Zoom、Stripe、Mailchimp、Airtable 等。
工具
开发者可以使用 CrewAI 框架从零开始构建 Multi-Agent 自动化系统。
设计师可以通过其 UI Studio 和模板工具,在无代码环境中创建功能齐全的 Agent。
部署
你可以使用自己喜欢的部署方式,将开发的 Agent 快速迁移到生产环境。
Agent 监控
像 Phidata 一样,CrewAI 提供直观的仪表盘,用于监控 Agent 的进度和性能。
内置训练工具
使用 CrewAI 的内置训练和测试工具,提高 Agent 的性能和效率,并确保其响应质量。
首先我们需要安装 CrewAI:
上述命令会安装 CrewAI 及其工具,并验证安装是否成功。
安装完成后,可运行以下命令创建一个新的 CrewAI 项目:
运行该命令后,系统会提示我们从以下模型提供商列表中选择一个,例如 OpenAI、Anthropic、xAI、Mistral 等。选择提供商后,还可以从列表中选择具体模型,例如 gpt-4o-mini。
以下命令可用于创建 Multi-Agent 系统:
完整的 CrewAI 应用已上传到 GitHub 仓库,可通过以下命令下载并运行:
https://github.com/GetStream/stream-tutorial-projects/tree/main/AI/Multi-Agent-AI
运行后,你将看到类似以下的响应结果:
Autogen 是一个开源框架,用于构建 Agent 系统。借助该框架,可以创建 Multi-Agent 协作和 LLM 工作流。
Autogen 具备以下关键功能:
跨语言支持
使用 Python 和 .NET 等编程语言构建 Agent。
本地 Agent
可在本地运行和实验 Agent,以确保更高的隐私性。
异步消息通信
使用异步消息进行 Agent 之间的通信。
可扩展性
支持开发者构建分布式 Agent 网络,适用于不同组织之间的协作。
可定制性
通过其可插拔组件,自定义构建完全个性化的 Agent 系统体验。
下面的代码块构建了一个简单的 AI 天气 Agent 系统:
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.task import Console, TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models import OpenAIChatCompletionClient
import os
from dotenv import load_dotenv
load_dotenv()
# 定义工具
async def get_weather(city: str) -> str:
return f"The weather in {city} is 73 degrees and Sunny."
async def main() -> None:
# 定义 Agent
weather_agent = AssistantAgent(
name="weather_agent",
model_client=OpenAIChatCompletionClient(
model="gpt-4o-mini",
api_key=os.getenv("OPENAI_API_KEY"),
),
tools=[get_weather],
)
# 定义终止条件
termination = TextMentionTermination("TERMINATE")
# 定义 Agent 团队
agent_team = RoundRobinGroupChat([weather_agent], termination_condition=termination)
# 运行团队并将消息流至控制台
stream = agent_team.run_stream(task="What is the weather in New York?")
await Console(stream)
asyncio.run(main())
上述代码
工具定义:get_weather 是一个示例工具函数,返回城市天气信息。
代理定义:使用 AssistantAgent 定义 Agent,并设置模型客户端为 OpenAI 的 GPT-4o-mini。API 密钥从 .env 文件中加载。
终止条件:通过 TextMentionTermination 定义终止条件,当提及 "TERMINATE" 时终止任务。
Agent 团队:使用 RoundRobinGroupChat 创建一个 Agent 团队,以轮询方式分配任务。
运行此代码后,控制台将显示类似于以下的输出结果:
LangGraph 是基于节点的 AI 框架,专为构建处理复杂任务的 Multi-Agent 系统而设计。作为 LangChain 生态系统的一部分,LangGraph 是一种图结构的 Agent 框架。用户可以通过节点和边来构建线性、层次化和顺序化的工作流。其中,节点(node)表示 Agent 的动作,边(edge)表示动作之间的转换,状态(state)则是 LangGraph Agent 的另一重要组成部分。
免费开源
LangGraph 是一个免费的库,遵循 MIT 开源许可证。
流式支持
提供逐字流式支持,展示 Agent 的中间步骤和思考过程。
部署选项
支持多种大规模部署方式,可通过 LangSmith 监控 Agent 性能。企业版选项允许完全在用户自有基础设施上部署 LangGraph。
企业适配
Replit 使用 LangGraph 为其 AI 编码 Agent 提供支持,证明了 LangGraph 的企业适用性。
高性能
在处理复杂的 Agent 工作流时,不会增加代码负担。
循环与可控性
可以轻松定义包含循环的 Multi-Agent 工作流,并对 Agent 的状态进行完全控制。
持久化
LangGraph 会在图中每一步操作后自动保存 Agent 状态,还支持在任意点暂停和恢复图的执行。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-09-04
2024-10-30
2024-12-25
2024-09-26
2024-09-03
2024-09-06
2024-10-30
2024-11-23
2024-08-18
2024-11-19