Skip to main content
传统的软件遵循预先编程的步骤顺序。Agents 使用机器学习模型动态确定其行动方案,其核心组件包括:
  • Model: 控制执行流程。它决定是进行推理、行动还是响应。
  • Tools: 使 Agent 能够采取行动并与外部系统进行交互。
  • Instructions: 是我们对 Agent 进行编程的方式,教它如何使用工具和进行响应。
Agents 还拥有记忆知识存储推理能力:
  • Reasoning: 使 Agents 在响应前能够“思考”并“分析”其行动(即工具调用)的结果,这提高了响应的可靠性和质量。
  • Knowledge: 是 Agent 在运行时搜索以做出更好决策和提供准确响应的领域特定信息(RAG)。知识存储在向量数据库中,这种运行时搜索模式称为 Agentic RAG/Agentic Search。
  • Storage: 用于 Agents 将会话历史和状态保存到数据库。模型 API 是无状态的,而存储使我们能够从中断的地方继续对话。这使得 Agents 具有状态,能够实现多轮、长期的对话。
  • Memory: 使 Agents 能够存储和回忆先前交互的信息,从而允许它们学习用户偏好并个性化其响应。
让我们构建几个 Agents 来看看它们是如何工作的。

Level 1: 具有工具和指令的 Agents

最简单的 Agent 拥有模型、工具和指令。让我们构建一个可以使用 yfinance 库获取数据的 Agent,并附带显示结果的表格的指令。
level_1_agent.py
创建虚拟环境,安装依赖项,导出你的 API 密钥并运行 Agent。
1

设置你的虚拟环境

2

安装依赖项

3

导出你的 Anthropic 密钥

4

运行 Agent

设置 debug_mode=Trueexport AGNO_DEBUG=true 以查看系统提示和用户消息。

Level 2: 具有知识和存储的 Agents

Knowledge: 虽然模型拥有大量的训练数据,但我们几乎总是需要为它们提供特定领域的信息,以便做出更好的决策和提供准确的响应(RAG)。我们将这些信息存储在向量数据库中,并让 Agent 在运行时进行搜索 Storage: 模型 API 是无状态的,Storage 驱动程序将聊天历史和状态保存到数据库。当 Agent 运行时,它从数据库读取聊天历史和状态,并将其添加到消息列表中,从而恢复对话并使 Agent 具有状态。 在这个示例中,我们将使用:
  • UrlKnowledge 来加载 Agno 文档到 LanceDB,使用 OpenAI 进行嵌入。
  • SqliteStorage 来将 Agent 的会话历史和状态保存在数据库中。
level_2_agent.py
安装依赖项,导出你的 OPENAI_API_KEY 并运行 Agent
1

安装新依赖项

2

运行 Agent

Level 3: 具有记忆和推理的 Agents

  • Reasoning: 使 Agents 能够**“思考”和“分析”**,提高可靠性和质量。ReasoningTools是提高 Agent 回应质量的最佳方法之一。
  • Memory: 使 Agents 能够对用户偏好进行分类、存储和回忆,从而实现个性化响应。记忆帮助 Agent 构建用户画像并从先前的互动中学习。
level_3_agent.py
运行 Agent
你可以单独使用 MemoryReasoning,不必同时使用它们。