具备记忆的代理:Agno 和 SurrealDB 如何实现可靠的 AI 系统

发布: (2026年1月9日 GMT+8 06:53)
16 分钟阅读
原文: Dev.to

Source: Dev.to

SurrealDB CEO Tobie Morgan Hitchcock 最近邀请了 Agno 创始人兼 CEO Ashpreet Singh,以及 SurrealDB 解决方案工程师 Martin Schaer,进行了一场直播,讨论如何可靠地构建具备记忆功能的代理。对话涵盖了构建生产级代理系统的现实挑战、为何上下文比单纯的模型算力更重要,以及 Agno 的 Agent OS 与 SurrealDB 如何协同构成现代代理记忆栈。本文将该直播内容浓缩为针对开发者和团队的聚焦问答,帮助他们让代理实现超越单次提示的功能。

什么是 Agno,它为何能与 SurrealDB 完美配合?

Tobie: 对于还没有使用过 Agno 的人,它是干什么的,SurrealDB 又是如何融入的?

Ashpreet:

  • Agno 是一个高性能的多代理框架。如果你想构建严肃的代理系统,Agno 同时为你提供三件事:

    1. 一个运行时环境,在其中你的语言模型和代理运行。
    2. 一个运行时,你可以将其部署在自己的云上,从而保持对数据的控制。
    3. 一个用户界面,让你观察和管理你的代理。
  • 当你使用 LLM 构建系统时,总会涉及两个部分:

    1. 运行时环境(Agno 的核心)——模型和代理执行的环境。
    2. 你提供给该环境的上下文——这正是 SurrealDB 发挥作用的地方。
  • Agno 提供用于编排代理的 Agent OS

  • SurrealDB 提供为这些代理提供正确信息的 记忆与知识层

  • 从一开始,Agno 与 SurrealDB 的集成就是由已经同时使用两者的用户推动的。他们需要一种方式来运行多代理工作流 并且 使用能够同时处理记忆、知识和图关系的数据库。这种组合正是这次合作的核心。

团队在构建代理时面临哪些困难?

Tobie: 当开发者和公司在 Agno 上构建时,您看到的最大挑战是什么?

Ashpreet: 我们一次又一次地看到两个主要挑战。

  1. 可靠性和可视性 – 团队想了解他们构建的东西是否真的有效。他们会问:

    • 系统的运行情况如何?
    • 何时可以上线?
    • 在这个特定交互中发生了什么?

    仅仅偶尔能工作是不够的。他们需要可重复的行为以及检查它的方法。

  2. 上下文 – 对于语言模型,你能控制的主要是输入。如果上下文错误或噪声太多,输出将不可预测。团队在如何持续提供最相关、最新的上下文方面遇到困难,以便用户每次都能获得良好体验,而不是偶尔出现。

是答案仅仅是更大的上下文窗口?

Tobie: 许多开发者尝试通过向模型投喂更多上下文来解决这个问题。这有效吗?

Ashpreet: 并不真的。人们对巨大的上下文窗口感到兴奋,但实际上你不应该在每个请求中发送所有拥有的内容。如果你有一百万个 token 可用,你不应该发送一百万个 token。你应该只发送你真正需要的。

这里有两点很重要:

  • 使用最适合任务的模型会有帮助,但即便如此,发送过多的上下文会让模型注意力分散并增加成本。
  • 一致性并不是来源于规模,而是来源于向模型提供紧密限定且与任务明确相关的信息。

这就是为什么合适的记忆和知识架构很重要。你想要存储大量信息,但要精准检索。这正是 SurrealDB 在此技术栈中的角色:一个统一的地方,保存结构化事实、向量、关系和历史,Agno 可以以受控的方式查询它。

SurrealDB 是如何与 Agno 的 Agent OS 完全集成的?

Tobie: Agno × SurrealDB 集成到底为开发者带来了什么?

Martin: 该集成分为两个阶段完成。

  1. 向量存储集成 – 我们首先将 SurrealDB 作为知识的向量存储库进行集成。这使得 Agno 代理能够对存储在 SurrealDB 中的文档执行语义搜索,并将其用作知识库。

  2. 原生内存提供者 – 最近我们将 SurrealDB 合并为 Agent OS 内的原生内存提供者。现在,代理可以直接在 SurrealDB 中存储会话、记忆、知识快照、评估结果和指标。对于每一次代理运行,你可以在数据库中看到使用了多少 token、耗时多久、获取了什么上下文以及存储了哪些记忆。

实际效果: Agno 代理将 SurrealDB 同时用作长期记忆和自身行为分析的真实数据源。这让调试和改进代理变得更加容易,因为你可以检查实际发生的情况,而不是凭空猜测。

Agno 如何看待“上下文”和“记忆”?

Tobie: 行业使用了很多术语,如上下文、知识、记忆、大脑和推理。你在 Agno 中是如何看待这些概念的?

Ashpreet: 我们尽量避免流行词汇,而把一切都视为 上下文。这里的 上下文 指的是调用模型的程序可用的输入。可以将其拆分为三部分。

  1. 任务提示 – 对代理应执行的内容的描述。

    • 示例:“你正在回答用户支持工单,需要以友好、简洁的风格作答。”
  2. 记忆 – 关于特定用户、会话或先前交互的信息。

    • 示例:“用户居住在纽约,喜欢产品 X,偏好电子邮件沟通。”
    • 这通常使用 SurrealDB 作为记忆存储。
  3. 知识 – 你的文档、过去的工单、产品文档、研究笔记等。

    • SurrealDB 充当后端存储,使用向量、文档和图结构。

重要的设计选择是模型 并不会 始终被强行喂入所有信息。相反,代理拥有可以按需检索正确上下文的工具。

为什么 SurrealDB 适合作为代理的记忆和上下文?

Tobie: 许多存储系统都能保存向量。SurrealDB 作为代理的记忆层有什么优势?

Martin: 实际上,代理很少只需要 嵌入向量。真实的工作负载往往同时涉及多种数据类型。

  • 团队使用 SurrealDB 来存储 结构化事实向量图关系时序 数据。
  • 典型模式:存储用户和账户,通过图连接它们,为内容附加嵌入向量,并记录带时间戳的事件。

检索策略:

  1. 对向量数据进行 相似度搜索
  2. 使用图关系 细化 结果(例如,按租户、时间窗口过滤,或沿关系链查找账户、工单、文档)。
  3. 时间感知 —— 每个块可以关联到某个月或某个时期,从而只保留相关的时间范围。

这样可以为代理提供 更清晰、更相关的上下文。不再是“前 N 个向量匹配”,而是让代理看到精心挑选的用户真实世界的切片,提高准确性并使系统更具确定性。

人们今天到底在用 Agno 和代理记忆构建什么?

Tobie: 在生产环境中,哪些类型的代理用例目前运行良好?

Ashpreet: 大多数成功的用例看起来相当实用——有时甚至有点乏味——但它们确实带来了真实价值。

常见模式

  1. 文档处理与提取流水线

    • 发票处理、合同分析、从半结构化或可视化文档中提取关键字段。
    • 多模态:PDF、图像和文本一起处理。
  2. 内部知识助理

    • 帮助准备销售电话、总结事件、检索相关文档,并汇总特定客户或功能的历史。
  3. 支持工作流

    • 代理读取历史工单,了解用户历史,检查截图或图表,然后起草回复或建议下一步操作。
    • 多模态模型 + 强大的记忆层在此发挥优势。

在几乎所有这些情况下,SurrealDB 是知识和记忆的核心存储,而 Agno 提供了用于编排位于这些数据之上的代理的框架和工具。

我们是否接近全公司范围的完全自治代理?

Tobie: 许多组织梦想拥有一个可以遍历所有公司数据的大型代理。今天实现的可能性有多大?

Ashpreet: 我们还没有达到那个阶段,诚实面对这一点很重要。

  • 当前状态: 可以实现令人印象深刻的演示以及针对特定工作流的高效代理。
  • 在所有数据和工作流上的完全自治 仍然超出当前生态系统的能力。

情况的改善

  1. 更好的模型 – LLM 能力的持续进步。
  2. 成熟的框架与系统 – 如 Agent OS、更丰富的记忆/数据层(如 SurrealDB),以及更强的工程实践。

实用建议:

  • 构建 小型、范围明确的代理,在解决明确定义的问题上表现极佳。
  • 一旦拥有稳固的框架和强大的记忆层,就可以随着技术成熟,将这些代理扩展为更大的工作流。

开发者应如何开始使用 Agno 和 SurrealDB?

Tobie: 对于迄今只使用过聊天式交互的开发者来说,进入具备记忆功能的代理的好第一步是什么?

Ashpreet: 从小处入手,挑选一个对你有意义的问题。

  1. 选择一个你熟悉的个人或内部工作流(例如,笔记助理、每日消息摘要,或公司文档的内部助手)。
  2. 使用 Agno 文档SurrealDB 集成手册来快速搭建 Agent OS 并连接 SurrealDB。
    • 让 SurrealDB 存储你的知识、会话和指标。
    • 让 Agno 协调代理和工具。

关键提示: 不要对首个版本想得太复杂。目标是感受框架、记忆和模型之间的交互。随着迭代,你会发现改进往往更多来自更好的检索和记忆设计,而不是单纯切换到更大的模型。

接下来代理记忆会有什么新发展?(Agno 与 SurrealDB)

Tobie: 展望未来,Agno 与 SurrealDB 在代理领域最让人兴奋的是什么?

Ashpreet: 我们非常激动的一个想法是 Agent OS 作为网络化运行时 的概念。

  • Agent OS 可以以多种方式公开代理,包括作为 MCP 工具和 API。
  • 在公司内部,你可以想象有许多不同的代理运行时,每个由不同团队拥有并专注于特定领域。
  • 这些代理可以 相互通信,而 SurrealDB 则充当它们底层的共享或作用域记忆层。

SurrealDB 路线图

  • 更丰富的多模态支持——处理图像、音频、视频以及文本。
  • 统一的抽象层,覆盖事实、向量、图和时间序列等记忆形式。
  • 目标:代理只需描述所需信息的类型,Agno 与 SurrealDB 的组合即可负责获取并构建相应的上下文。

结论:可靠的代理需要强大的外壳和强大的记忆层。Agno 专注于外壳;SurrealDB 提供记忆。二者携手,为更强大、互联的代理铺平道路。

Harness

SurrealDB 专注于 记忆上下文。它们共同帮助团队从“炫酷演示”迈向真正的、具备生产级别的、能够实际记住的代理。

开始构建

  • 创建你的 SurrealDB 账户 – 获取一个可直接使用的免费环境,用于存储代理的记忆、知识和上下文。
    👉

  • 查看 Agno 与 SurrealDB 的集成 – 了解 Agent OS 如何使用 SurrealDB 来进行记忆、会话、评估和知识检索。
    👉

  • 探索 Agno 中全新的 SurrealDB 集成 – 使用 cookbook 示例来启动代理、测试记忆工作流,并尝试上下文丰富的行为。
    👉

Back to Blog

相关文章

阅读更多 »

你好,我是新人。

嗨!我又回到 STEM 的领域了。我也喜欢学习能源系统、科学、技术、工程和数学。其中一个项目是…