
随着 Anthropic 发布 Dynamic Workflows,允许单个指令触发数百个子 Agent 并行执行,整个 AI 圈似乎又一次陷入了宏大叙事的狂欢。为了构建这些复杂的“智能体集群”,开发者们习惯性地搬出了压箱底的“微服务全家桶”:用 Kafka 做消息队列,用 Redis 做短期记忆和状态锁,用 PostgreSQL 存储长期状态。
然而,在这一切的狂欢背后,工程界正在悄然发生一场截然相反的“反叛”。
当你为了支撑几十个并发的 Agent,而花掉 80% 的精力去维护一堆分布式中间件时,你大概率是把问题搞错了。
在 AI Agent 这个全新的应用范式下,微服务架构不仅是杀鸡用牛刀,更可能是一剂毒药。而那个通常被认为是“玩具”或“移动端专用”的单文件数据库——SQLite,正在成为重塑 Agent 基础设施的完美答案。
···
在传统的 Web 服务中,我们使用分布式中间件是为了应对突发的海量并发(High Throughput)。十万用户同时抢购一件商品,你必须依赖 Redis 的原子减库存,依赖 Kafka 的削峰填谷。
但 AI Agent 的工作流,其物理特性与高并发 Web 业务截然不同。
首先,绝大多数 Agent 是“单体焦点(Single-Tenant Focus)”的。当你委派一个 Agent 去阅读一份 10 万字的 PDF 并提取财报数据,或者让它去分析一个 GitHub 仓库的 Bug 时,这个漫长的推理链(Think -> Act -> Observe)是完全服务于单次调用的。它极少需要和其他 Agent 产生跨服务器的高频“事务级”竞争。
其次,延迟(Latency)比吞吐量(Throughput)更致命。大模型 API 本身已经非常慢,一次长上下文调用动辄耗时数秒甚至十几秒。如果在 Agent 的每一次状态转移中,你还要通过网络去连接远端的 Redis 或 Postgres,网络抖动和序列化开销将严重拖慢整体思考循环。
在 Agent 的世界里,本地化(Local-first)就是最高优的工程解法。SQLite 将昂贵的网络通信降维打击成了进程内的内存拷贝和磁盘写。消除了“网络分区(Network Partition)”的风险后,你的 Agent 获得了前所未有的健壮性。
···
有人会问:“SQLite 只有一个文件,并发一高就会锁库(Database is locked),怎么可能支撑复杂的调度和并行?”
这往往是对 SQLite 的刻板印象。只要开启正确的配置,SQLite 足以在单节点扛住数万 QPS 的读写。
早期的 SQLite 采用的是传统的 Journal 回滚模式,读操作和写操作会互相阻塞。但如果你执行 PRAGMA journal_mode=WAL;,一切就改变了。
在 WAL 模式下,SQLite 实现了真正的“读写分离”——读操作不会阻塞写操作,写操作也不会阻塞读操作。配合毫秒级的 NVMe 固态硬盘,单进程内的 SQLite 写入性能完全可以满足数百个并行子 Agent 的状态更新需求。
很多开发者认为必须用 RabbitMQ 才能实现可靠的任务重试。事实上,在 SQLite 中,只需一张极简的表和一个高级 SQL 语句:
CREATE TABLE tasks ( id TEXT PRIMARY KEY, payload JSON, status TEXT DEFAULT'pending', retry_count INTEGERDEFAULT0, next_retry_at INTEGERDEFAULT0 ); 当 Agent Worker 需要申领任务时,如何避免多个进程拿到同一个任务?利用 SQLite 原生支持的 RETURNING 子句,你可以实现原子级的 Pop 操作:
UPDATE tasks SET status ='processing'WHERE id = ( SELECT id FROM tasks WHERE status ='pending'AND next_retry_at <= unixepoch() ORDERBY next_retry_at ASC LIMIT 1 ) RETURNING *; 这一行查询不仅锁定了任务,还直接返回了数据,全程无需借助任何分布式锁机制。
Agent 执行任务时常会遭遇 API 503 限流或莫名其妙的幻觉崩溃。在分布式系统中,回滚缓存、数据库和消息队列的一致性是一场噩梦。但在 SQLite 里,Agent 的全部上下文记忆和执行状态都在一个文件里。
利用 SQLite 严格的单机 ACID 事务,你可以在执行敏感动作前打一个 Savepoint。一旦 Agent 崩溃,重启后它可以立即从该断点完美复活,一切就像没有发生过错误一样。
···

当我们将微服务架构与 SQLite 单体架构进行成本对比时,差距令人咋舌。
.db 文件。scp 把 agent_data.db 拷贝到本地。你拥有了那一刻系统完整的快照,可以在本地完美复现并调试 Bug。这在分布式系统中是根本不可想象的。···
科技行业总是在钟摆的两端摇摆。在 AI 厂商拼命卷模型参数、造出越来越花哨的 Agent 编排框架时,一线工程师正在悄悄用脚投票。
SQLite 的复兴,不仅仅是因为它是一个优秀的数据库,更是因为它代表了一种“少即是多(Less is More)”的工程哲学。
在充满着不确定性、API 调用频繁失败的 AI 时代,我们最需要的其实不是“能支撑亿级并发的海量吞吐”,而是“确定的执行、极低的维护成本和快速的失败恢复”。
未来的高级架构师,或许不是那个能把系统设计得最复杂、图纸画得最宏大的人;而是那个敢于在所有人都在堆砌微服务时,克制地说出“一张 SQLite 表就够了”的人。
···
很多同学问,现附上:配图生成prompt