具备记忆的代理:Agno 和 SurrealDB 如何实现可靠的 AI 系统
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 同时为你提供三件事:
- 一个运行时环境,在其中你的语言模型和代理运行。
- 一个运行时,你可以将其部署在自己的云上,从而保持对数据的控制。
- 一个用户界面,让你观察和管理你的代理。
-
当你使用 LLM 构建系统时,总会涉及两个部分:
- 运行时环境(Agno 的核心)——模型和代理执行的环境。
- 你提供给该环境的上下文——这正是 SurrealDB 发挥作用的地方。
-
Agno 提供用于编排代理的 Agent OS。
-
SurrealDB 提供为这些代理提供正确信息的 记忆与知识层。
-
从一开始,Agno 与 SurrealDB 的集成就是由已经同时使用两者的用户推动的。他们需要一种方式来运行多代理工作流 并且 使用能够同时处理记忆、知识和图关系的数据库。这种组合正是这次合作的核心。
团队在构建代理时面临哪些困难?
Tobie: 当开发者和公司在 Agno 上构建时,您看到的最大挑战是什么?
Ashpreet: 我们一次又一次地看到两个主要挑战。
-
可靠性和可视性 – 团队想了解他们构建的东西是否真的有效。他们会问:
- 系统的运行情况如何?
- 何时可以上线?
- 在这个特定交互中发生了什么?
仅仅偶尔能工作是不够的。他们需要可重复的行为以及检查它的方法。
-
上下文 – 对于语言模型,你能控制的主要是输入。如果上下文错误或噪声太多,输出将不可预测。团队在如何持续提供最相关、最新的上下文方面遇到困难,以便用户每次都能获得良好体验,而不是偶尔出现。
是答案仅仅是更大的上下文窗口?
Tobie: 许多开发者尝试通过向模型投喂更多上下文来解决这个问题。这有效吗?
Ashpreet: 并不真的。人们对巨大的上下文窗口感到兴奋,但实际上你不应该在每个请求中发送所有拥有的内容。如果你有一百万个 token 可用,你不应该发送一百万个 token。你应该只发送你真正需要的。
这里有两点很重要:
- 使用最适合任务的模型会有帮助,但即便如此,发送过多的上下文会让模型注意力分散并增加成本。
- 一致性并不是来源于规模,而是来源于向模型提供紧密限定且与任务明确相关的信息。
这就是为什么合适的记忆和知识架构很重要。你想要存储大量信息,但要精准检索。这正是 SurrealDB 在此技术栈中的角色:一个统一的地方,保存结构化事实、向量、关系和历史,Agno 可以以受控的方式查询它。
SurrealDB 是如何与 Agno 的 Agent OS 完全集成的?
Tobie: Agno × SurrealDB 集成到底为开发者带来了什么?
Martin: 该集成分为两个阶段完成。
-
向量存储集成 – 我们首先将 SurrealDB 作为知识的向量存储库进行集成。这使得 Agno 代理能够对存储在 SurrealDB 中的文档执行语义搜索,并将其用作知识库。
-
原生内存提供者 – 最近我们将 SurrealDB 合并为 Agent OS 内的原生内存提供者。现在,代理可以直接在 SurrealDB 中存储会话、记忆、知识快照、评估结果和指标。对于每一次代理运行,你可以在数据库中看到使用了多少 token、耗时多久、获取了什么上下文以及存储了哪些记忆。
实际效果: Agno 代理将 SurrealDB 同时用作长期记忆和自身行为分析的真实数据源。这让调试和改进代理变得更加容易,因为你可以检查实际发生的情况,而不是凭空猜测。
Agno 如何看待“上下文”和“记忆”?
Tobie: 行业使用了很多术语,如上下文、知识、记忆、大脑和推理。你在 Agno 中是如何看待这些概念的?
Ashpreet: 我们尽量避免流行词汇,而把一切都视为 上下文。这里的 上下文 指的是调用模型的程序可用的输入。可以将其拆分为三部分。
-
任务提示 – 对代理应执行的内容的描述。
- 示例:“你正在回答用户支持工单,需要以友好、简洁的风格作答。”
-
记忆 – 关于特定用户、会话或先前交互的信息。
- 示例:“用户居住在纽约,喜欢产品 X,偏好电子邮件沟通。”
- 这通常使用 SurrealDB 作为记忆存储。
-
知识 – 你的文档、过去的工单、产品文档、研究笔记等。
- SurrealDB 充当后端存储,使用向量、文档和图结构。
重要的设计选择是模型 并不会 始终被强行喂入所有信息。相反,代理拥有可以按需检索正确上下文的工具。
为什么 SurrealDB 适合作为代理的记忆和上下文?
Tobie: 许多存储系统都能保存向量。SurrealDB 作为代理的记忆层有什么优势?
Martin: 实际上,代理很少只需要 仅 嵌入向量。真实的工作负载往往同时涉及多种数据类型。
- 团队使用 SurrealDB 来存储 结构化事实、向量、图关系 和 时序 数据。
- 典型模式:存储用户和账户,通过图连接它们,为内容附加嵌入向量,并记录带时间戳的事件。
检索策略:
- 对向量数据进行 相似度搜索。
- 使用图关系 细化 结果(例如,按租户、时间窗口过滤,或沿关系链查找账户、工单、文档)。
- 时间感知 —— 每个块可以关联到某个月或某个时期,从而只保留相关的时间范围。
这样可以为代理提供 更清晰、更相关的上下文。不再是“前 N 个向量匹配”,而是让代理看到精心挑选的用户真实世界的切片,提高准确性并使系统更具确定性。
人们今天到底在用 Agno 和代理记忆构建什么?
Tobie: 在生产环境中,哪些类型的代理用例目前运行良好?
Ashpreet: 大多数成功的用例看起来相当实用——有时甚至有点乏味——但它们确实带来了真实价值。
常见模式
-
文档处理与提取流水线
- 发票处理、合同分析、从半结构化或可视化文档中提取关键字段。
- 多模态:PDF、图像和文本一起处理。
-
内部知识助理
- 帮助准备销售电话、总结事件、检索相关文档,并汇总特定客户或功能的历史。
-
支持工作流
- 代理读取历史工单,了解用户历史,检查截图或图表,然后起草回复或建议下一步操作。
- 多模态模型 + 强大的记忆层在此发挥优势。
在几乎所有这些情况下,SurrealDB 是知识和记忆的核心存储,而 Agno 提供了用于编排位于这些数据之上的代理的框架和工具。
我们是否接近全公司范围的完全自治代理?
Tobie: 许多组织梦想拥有一个可以遍历所有公司数据的大型代理。今天实现的可能性有多大?
Ashpreet: 我们还没有达到那个阶段,诚实面对这一点很重要。
- 当前状态: 可以实现令人印象深刻的演示以及针对特定工作流的高效代理。
- 在所有数据和工作流上的完全自治 仍然超出当前生态系统的能力。
情况的改善
- 更好的模型 – LLM 能力的持续进步。
- 成熟的框架与系统 – 如 Agent OS、更丰富的记忆/数据层(如 SurrealDB),以及更强的工程实践。
实用建议:
- 构建 小型、范围明确的代理,在解决明确定义的问题上表现极佳。
- 一旦拥有稳固的框架和强大的记忆层,就可以随着技术成熟,将这些代理扩展为更大的工作流。
开发者应如何开始使用 Agno 和 SurrealDB?
Tobie: 对于迄今只使用过聊天式交互的开发者来说,进入具备记忆功能的代理的好第一步是什么?
Ashpreet: 从小处入手,挑选一个对你有意义的问题。
- 选择一个你熟悉的个人或内部工作流(例如,笔记助理、每日消息摘要,或公司文档的内部助手)。
- 使用 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 示例来启动代理、测试记忆工作流,并尝试上下文丰富的行为。
👉