智能体记忆架构:文件接口与数据库存储解耦

深度The New Stack2026年3月13日6 分钟阅读
智能体记忆架构:文件接口与数据库存储解耦
顶级工程团队构建智能体记忆系统时,普遍采用文件系统接口供智能体交互,底层则用数据库持久化存储。这场争论从来不是二选一,而是在不同层级各司其职。

观察顶级工程团队如何构建智能体记忆系统,你会发现一个清晰的模式:智能体看到的是文件系统接口,而实际持久化存储的是数据库。这场争论从来不是“文件系统还是数据库”,而始终是两者在合适的层级协同工作。

文件系统作为智能体接口并非新概念。Dust.tt 在 2025 年中就将公司数据投影到合成文件系统。Letta 的记忆基准测试显示文件系统工具优于其他方案。LangChain 的上下文工程研究为此奠定了基础。

2026 年 1 月,讨论热度骤升。Vercel 发布了评估报告。Harrison Chase 分享了LangSmith Agent Builder 如何实现记忆。Jerry Liu 宣称“文件即一切所需”,相关文章登上 Hacker News。Anthropic 的 Skills 功能——将智能体能力打包为 Markdown 文件文件夹——也悄然强化了这一模式。

“争论从来不是‘文件系统还是数据库’,而始终是两者在合适的层级协同工作。”

为何重新受到关注?Cursor、Claude Code、Windsurf 等编码智能体证明,文件系统接口效果显著——至少在代码领域如此。问题在于这种成功能否推广。

吸引力显而易见。一个能干的智能体可能需要与 REST API、SQL 数据库、向量存储、云控制台、文件系统、网页浏览器和人类用户交互——每种都有不同的协议和惯例。要处理的接口太多了。

但看看这些团队实际如何构建系统,你会发现另一幅图景:他们底层使用数据库,并且非常坦率地解释了原因。

文件系统接口与文件系统存储有何区别?

Harrison Chase 在 X 上坦承了 LangSmith Agent Builder 的架构:智能体看到文件系统接口,但实际存储是数据库。他在技术深度解析中解释:

“大语言模型擅长处理文件系统,但从基础设施角度看,使用数据库更简单高效。”

这并不矛盾,而是深思熟虑的架构选择:

  • 接口 = 智能体看到并交互的内容
  • 存储 = 数据实际持久化的位置

Alt text: 两面板图表对比“混淆之处”(文件系统与数据库作为竞争选择)和“现实情况”(智能体访问与数据持久化作为独立层级——接口按用例选择,存储作为统一后端)。

争论不是“文件系统还是数据库”,而是认识到接口和存储是独立决策。

一旦理解这一区别,问题就从“文件系统还是数据库?”转变为“针对何种智能体类型选择何种接口,基于何种需求选择何种存储?”


文件系统接口为 AI 智能体提供了什么?

MCP和文件系统抽象出现前,连接智能体与外部数据意味着为每个数据源定义自定义工具模式。每个端点都需要文档,每个模式都需要示例。Arize 的 Tony Powell指出:“等大语言模型学会使用特定 API,你已经消耗了大量上下文窗口……花了几千个 token 在教育上,而不是推理上。”

文件系统接口提供了不同思路:一小套通用操作,大语言模型已从训练数据中理解。这是 1970 年代 Unix“万物皆文件”哲学在新规模下的重现。正如 Unix 将多样设备接口压缩为文件操作,DevOps 将基础设施压缩为代码制品,智能体 AI 正将多样数据源压缩为文件系统操作。

核心操作:

  • 列出 — 显示位置内容(如 ls)
  • 读取 — 获取文件内容(如 cat)
  • 写入 — 创建或更新文件
  • 搜索 — 按名称或内容查找文件(如 find 和 grep)

实际好处是 token 效率:教育已在预训练阶段完成。Turso 的 Pekka Enberg 在AgentFS 文章中指出:“给智能体 grep、sed、awk、cat 和 git 访问权限,它会变得异常能干高效,无需自定义工具。”

Dust.tt 通过创建“合成文件系统”扩展了这一思路——将 API 和数据库投影为类文件系统层级。Slack 频道变为目录,Notion 工作区变为文件夹。底层数据存在于 API 和数据库中,但智能体看到的是连贯的文件树。

表格对比 AI 智能体数据接口的演进——自定义工具、MCP 和文件系统接口,突出显示通用文件系统操作相比自定义模式需要零教育 token。

智能体到数据接口如何从自定义工具演进为标准文件系统操作。


文件系统接口在哪些场景对 AI 智能体效果好?

文件系统模式在编码智能体中已证明明确价值。

这并不意外。代码本就以目录中的文件形式组织。开发者以文件系统术语思考。操作自然映射:读取文件、编辑文件、搜索代码库。Cursor、Claude Code、Windsurf 等工具都采用此模式。

Letta 团队在基准分析中提供了重要背景:“当今智能体使用文件系统工具极为有效,主要归功于针对智能体编码任务的后训练优化。”关键短语是“智能体编码任务”——这正是训练数据存在的领域。

文件系统接口适用场景:

  • 编码智能体(代码已在文件中)
  • 文档处理(文档映射为文件)
  • DevOps 和基础设施(配置即文件)
  • 知识库导航(层级结构有效)

文件系统接口在哪些场景对 AI 智能体失效?

文件系统模式并非万能。多个场景暴露其局限性,实践者尝试后也坦承失败。

结构化数据查询

你无法用 grep 处理“查找 Q3 订购了产品 X 但未订购产品 Y 的所有客户”。涉及连接、聚合或图遍历的查询,文件系统操作显得笨拙。

Vercel 的基准测试清晰说明了这一点。当他们测试文件系统操作与数据库查询处理结构化数据时:

基准表格对比 AI 智能体方法,显示数据库查询实现 100% 准确率,且 token 使用、成本和耗时显著低于 Bash 和文件系统方法。

结论:对于具有清晰模式的结构化数据,专用查询语言——无论是 SQL、MongoDB 查询 API 还是其他数据库接口——始终优于文件系统操作。

大规模性能

文件系统抽象隐藏了一个关键问题:每个文件操作都可能变成 API 调用。Hacker News 上一位实践者描述完全放弃此方法:“如果通过 fuse 使用 grep,最终会打开大量文件,导致向某些 API 发起获取请求,速度会很慢……我们甚至用 Rust 实现此想法进行测试,最终放弃,因为效果不佳。”

LlamaIndex 的 Jerry Liu 在“文件即一切所需”中提出类似观察:“编码智能体已使用 CLI 工具作为文件搜索主要手段,但我们注意到此方法无法扩展到海量文档集合(1k-1m+)。”

问题本质在于:文件系统缺乏使数据库查询快速的索引机制。

无服务器和云原生环境

文件系统隐喻假设存在文件系统,但许多生产环境——如无服务器函数、基于浏览器的智能体和边缘计算——没有持久本地存储。

非编码智能体类型

客户服务智能体需要结构化客户数据。分析智能体需要数据库查询。使文件系统接口对编码智能体强大的训练数据优势,可能无法转移到这些领域。

为何领先团队使用数据库存储智能体记忆?

无论选择何种接口模式,领先团队底层都收敛于数据库存储:

表格说明 LangChain、Dust.tt、Turso、Letta 等领先 AI 团队如何使用不同文件系统接口层,同时统一依赖底层数据库存储层处理智能体记忆。

原因一致:

  • 多智能体协调需要事务。多个智能体共享状态时,需要 ACID 保证。
  • 扩展要求索引。Grep 适用于小集合;生产系统需要数据库级查询优化。
  • 治理需要审计追踪。企业部署需要可追溯性:谁在何时访问了什么,原因何在。
  • 混合检索是基本要求。生产系统需要向量搜索、全文搜索和结构化查询协同工作。

集成向量搜索的文档数据库特别适合此处。结合灵活文档存储、向量嵌入和全文搜索的平台,无需拼接多个系统。

开发者如何选择智能体记忆的接口和存储?

文件系统接口并非唯一选项。对某些智能体类型,它也不是最佳选择。

像 MongoDB Atlas 这样的文档数据库将数据存储为 JSON 文档,结构上已“类文件”。具备原生向量搜索、全文搜索和聚合管道,智能体可通过MCP 工具或 API 直接查询——无需文件系统转换层。对于分析智能体、客户服务智能体或任何涉及结构化数据查询的工作流,这种直接路径可能优于文件系统接口。

文件系统接口在智能体训练数据使 ls 和 grep 比自定义工具更可靠时表现突出,主要是编码智能体。但这种训练数据优势并非适用于所有领域。

[DIAGRAM 3: 解耦架构]

三层架构图显示顶部的智能体连接到接口层(含文件系统、MCP 工具和直接 API 选项),再连接到存储层(文档数据库 + 向量搜索 + 全文搜索 + ACID)

新兴架构解耦了接口和存储选择,允许团队独立优化每层。

真正要问的问题:

  • 何种智能体类型? 编码、文档、分析、客户服务?
  • 何种接口适合该类型? 编码智能体用文件系统,结构化数据用 MCP/直接查询。
  • 何种存储需求? 扩展性、多智能体协调、治理、检索模式?
  • 需要转换层吗? 还是智能体可直接查询数据库?

架构正在收敛,这对开发者意味着什么

“文件系统 vs. 数据库”的框架掩盖的比揭示的更多。构建生产智能体系统的团队已超越这场争论。他们将接口与存储分离,无论向智能体暴露何种接口,底层都使用数据库。

“结构化数据、非编码工作流和无服务器环境需要不同方法。”

文件系统接口对编码智能体和文档导航效果良好,那里存在训练数据且隐喻合适。但它并非普适。结构化数据、非编码工作流和无服务器环境需要不同方法。

问题从来不是“文件系统还是数据库?”而是始终两者兼有——在合适的层级

TRENDING STORIES

Group Created with Sketch.

觉得有用?分享给更多人

获取每周 AI 工具精选

工具推荐、实战教程和生态洞察,每周更新。

相关文章

Simon Willison 正在重构 LLM Python 库的抽象层,以支持服务器端工具执行等新功能。他利用 Claude Code 分析了四大 LLM 提供商的客户端库,生成了用于测试的 curl 命令和 JSON 输出。这些调研材料已开源,旨在帮助设计更通用的 API 抽象。

深度Simon Willison·4月5日·1 分钟

智能体技能——包含程序性知识和可执行资源的结构化包,供智能体在推理时动态加载——已成为增强 LLM 智能体的可靠机制。然而,推理时技能增强存在根本性限制:检索噪声引入无关指导,注入的技能内容带来大量 token 开销,而模型从未真正习得它所遵循的知识。我们提出一个问题:技能是否可以被内化到模型参数中,使其在无需任何运行时技能检索的情况下实现零样本自主行为?我们提出 Skill0,一个专为技能内化设计的上下文强化学习框架。Skill0 引入了一种训练时课程,从提供完整技能上下文开始,逐步撤除。技能按类别离线分组,并与交互历史一起渲染为紧凑的视觉上下文,教授模型工具调用和多轮任务完成。动态课程机制…

深度·4月5日·17 分钟

评论