这篇关于 AI Agent 的讲解和代码实践分享来自 Agno 创始人 Ashpreet Bedi,他曾就职于 Airbnb 和 Facebook,后创建了 Agno(前身是 Phidata),一个非常优质的开源 Agent 框架,咱们一起看看他对 Agent 的理解是怎样的。
如果想构建优秀的 Agents,你需要知道如何将模型、工具、指令、推理、知识、存储和记忆组合在一起。
以下是 Ashpreet Bedi 如何使用它们的方法(最下方包含代码链接和信息卡)👇
首先,什么是 Agents?
"Agents 是自主运行的 AI 程序。"
就是这样,保持简单。过度复杂化只会让事情变得更难。
Agents 的 “brain”(大脑)
Agents 的 “brain”(大脑)是模型,它为 Agents 提供推理、行动和有效沟通的能力。
这里有一个基本的 Agent 示例,它调用模型 API 来生成响应。
Agno 提供了一个统一的接口,可以连接 23 家以上的模型提供商,包括 OpenAI、Anthropic、Deepmind 等等,这样你可以测试不同的提供商并根据需要切换模型。
Agents 的 “body”(身体)
Agents 的 “body”(身体)是它可以访问的工具。
工具使 Agents 能够与现实世界互动。
上面的 Agent 会产生幻觉(hallucinate),因为它没有获取股票价格的能力。让我们给它一个工具来获取最新的股票价格。
Agents 的 “behavior”(行为)
Agents 的 “behavior”(行为)由清晰、精确的指令引导;模型越好,它就越能更好地遵循指令。
上面的 Agent 会给你最新的股票价格,但同时也会喋喋不休(yap along with it)。让我们改进指令。
推理(Reasoning)
推理让 Agents 在响应之前“思考”,并“分析”其行动(工具调用)的结果,这提高了 Agents 解决需要顺序工具调用的问题的能力(几乎所有有用的任务都需要这一点)。
Agno 的 ReasoningTools 是提高 Agents 响应质量的最佳 hack 之一。
知识(Knowledge)
知识是 Agent 可以按需搜索的领域特定信息,以做出更好的决策并提供准确的响应。
知识存储在向量数据库中,这种按需搜索的模式被称为 Agentic RAG。
Agno Agents 默认使用 Agentic RAG,这意味着它们会在运行时搜索其知识库,以获取完成任务所需的具体信息。
存储(Storage)
存储让 Agents 将其会话历史和状态保存在数据库中。因为模型 API 是无状态的,所以在生产环境中,存储是必不可少的,它使我们能够继续进行多轮对话。
我认为我构建的每一个 Agent 都使用了存储。
记忆(Memory)
记忆使 Agents 能够分类、存储和回忆用户在之前交互中的信息。
这允许 Agents 学习用户偏好,并个性化其响应,随着时间的推移变得更智能、更直观。
如果我告诉 Agent 我住在格林威治村,并要求它找一个好的披萨店,它就知道去哪里找。
为了透明起见,我并不经常使用记忆,但我希望在接下来的几个月里花更多时间研究它。
额外提示(Bonus)
Agents 在具有单一目的、狭窄范围和少量工具时效果最佳。
当工具数量超过语言模型所能处理的范围时,可以使用一组 Agents 来分担负载。
Agno 提供了一个行业领先的多智能体架构,允许你构建 Reasoning Agent Teams。你可以以三种模式运行团队:route、coordinate 和 collaborate。
在这个示例中,我们将构建一个由两个 Agents 组成的团队来分析半导体市场的表现,逐步推理。
Agno: https://github.com/agno-agi/agno
下面是我的简要解读:
AI Agent 的关键组成部分
- 大脑(模型)
-
Agent 的基础是它使用的 AI 模型
-
为推理、行动和用户交互提供动力
-
Agno 提供连接 23+ 模型提供商的统一接口,允许灵活测试和切换模型
- 身体(工具)
-
工具使 Agent 能够与现实世界互动
-
没有工具,Agent 可能会产生幻觉(提供错误信息)
-
例如:股票顾问 Agent 需要工具来获取实际股票价格
- 行为(指令)
-
由清晰、精确的指令引导
-
更好的模型更能有效地遵循指令
-
良好的指令引导 Agent 执行任务,不带不必要的评论
- 附加能力
推理:
-
允许 Agent 在响应前"思考"
-
帮助分析行动/工具调用的结果
-
对解决序列问题至关重要
-
Agno 的 ReasoningTools 被强调为提高响应质量的有效方法
知识:
-
Agent 可按需搜索的特定领域信息
-
存储在向量数据库中
-
使用 Agentic RAG 模式
-
允许 Agent 在运行时提取特定信息
存储:
-
在数据库中保存会话历史和状态
-
由于模型 API 是无状态的,这一点至关重要
-
实现对话的连续性
-
创始人认为这对生产环境是必不可少的
记忆:
-
使 Agent 能够存储和回忆以前交互的信息
-
允许学习用户偏好以提供个性化响应
-
例如:在推荐披萨店时记住用户住在格林威治村
-
创始人承认尚未广泛使用此组件
最佳实践
-
Agent 在具有单一目的、狭窄范围和有限工具时效果最佳
-
当复杂性增加时,使用专业 Agents 团队
-
Agno 提供 Multi Agents 架构,用于构建推理 Agents 团队
-
团队可以在三种模式下运行:路由、协调和协作
