最近看到一个有意思的实践:把AI编程工具opencode的所有数据迁移到了SQLite。结果不出所料——查询、过滤、聚合的效果远超之前的平面文件方案。
这背后其实藏着一个被忽视的真相:AI agent天生就爱数据库,而文件系统本质上是最差劲的数据库形态。
为什么这么说?
想象一下,当你让AI处理散落在几十个文件里的上下文信息时,它需要遍历目录、猜测文件内容、拼凑碎片化的信息。这个过程既消耗token,又容易出错。但如果换成数据库呢?一条SQL语句就能精准定位所需信息。
Schema加上索引,意味着更少的token浪费、更确定性的输出、更容易做效果评估。
有人可能会说,用ripgrep配合文件系统也能跑得很快。确实,工具各有适用场景。但关键区别在于:数据库给了AI一个统一的查询接口,而不是让它在文件丛林里摸索。
SQLite在这个场景下尤其值得关注。它轻量、嵌入式、无需额外服务,天然适合本地优先的应用架构。终端、文档、表格软件,这些工具很早就是本地优先的设计,AI工具为什么不能呢?
更进一步想,如果在SQLite基础上加入向量检索能力,就能实现语义级别的查询,这对AI理解上下文会是质的飞跃。
一个值得思考的问题是:为什么更多AI工具不默认采用数据库优先的架构?
或许是因为文件系统足够简单、足够通用,开发者习惯了这种方式。但当AI成为核心用户时,我们需要重新审视这些基础设施的选择。毕竟,给AI一个查询界面,远比让它在目录里瞎猜要高效得多。
x.com/thdxr/status/2011638639831499041