AI改错数据库,也能像Git一样回滚?
让 AI Agent 自动改数据库,最怕“改完才发现错了”:哪些行被动过?多个 Agent 同时修改,冲突怎么处理?
刚进入 Beta 的 DoltLite 给出工程化答案:把 SQLite 变成可以 branch、commit、diff、merge 和 rollback 的版本化数据库。项目方称,它由 Agent 团队经过约2000个 PR 构建。
它不是在 SQLite 外面套一层日志。DoltLite 保留 B-tree 以上的 SQL 解析器、分析器和测试框架,把底层换成内容寻址的 Prolly Tree,并用单文件 chunk store 保存数据。因此,表、行和 schema 变化都能进入提交历史。
对 Agent 工作流,最实用的是这套“五步保险”:
1. 每个任务先建独立分支,避免直接改主数据;
2. Agent 完成操作后,用行级 diff 检查新增、删除和修改;
3. 把关键 SQL 断言放进可版本化测试,提交前自动跑;
4. 人工或审查 Agent 确认后再 merge,冲突必须显式解决;
5. 发现错误,用 reset 丢弃未提交修改,或用 revert 生成反向提交,保留审计轨迹。
兼容性也要看清。官方称它通过580万条 sqllogictest;在892277条 SQLite TCL 验收测试中通过99.46%,仍有4809个已知差异,主要来自 rowid、page、WAL/journal 等存储差别。
版本控制不是免费的。官方夜间基准里,内存库读取慢约10%、写入慢约60%;文件库读取接近持平、批量写慢约10%;小型 autocommit 写约慢3.1倍。结果来自项目自己的 GitHub runner,不能泛化;高频写入应尽量批处理。
所以它更适合本地优先应用、Agent 状态库、可审计配置和需要分支实验的数据,不是“无代价替换所有 SQLite”。截至本轮核验,最新正式 Release 已到 v0.50.1。真正值得收藏的思路是:别只给 Agent 写权限,也要给它分支、diff、测试和可恢复性。
资料:DoltHub Blog/dolthub/doltlite
AI工具 Agent 数据库 SQLite
