强烈推荐这篇。Simon Willison 用 Fable 5 给他的核心开源项目 sqlite-utils 做 4.0 终审,发现了自己都没发现的严重数据丢失 bug,37 个 prompt 跑完 34 个 commit 的修改,然后让 GPT-5.5 做交叉审查又抓出 2 个 P1 问题。全程大部分在 iPhone 上完成——在国庆日游行间隙断续操控 agent。这才是 2026 年独立开发者真实的 agent 工作流。
---
# sqlite-utils 4.0rc2,主要由 Claude Fable 写的
sqlite-utils 4.0rc1 发布两周后,Simon Willison 用 Fable 5 做最终审查。初始 prompt:
"Final review before shipping a stable 4.0 release — very important to spot any last minute things that would be a breaking change if we fix them later."
## Fable 发现的关键 bug
Fable 发现了 5 个"发布拦截"级别的问题——最严重的是一个数据丢失 bug:`delete_where()` 从未 commit 并且毒化了连接。运行 `delete_where()` 后,连接卡在 `in_transaction=True` 状态,后续所有 `atomic()` 调用走 savepoint 分支,全都不 commit。删的行会丢,删之后插入的新行会丢,连新建的表都会丢。重新打开数据库后,删操作、新行和新表全没了。
"非常高兴没发布它——虽然至少这是个可以在 4.0.1 修掉的 bug,而不是逼迫 5.0 的设计缺陷。"
## 37 个 prompt,34 个 commit
后续用 37 个 prompt、34 个 commit、+1321 -190 行修改、跨越 30 个文件,逐条处理完所有反馈,同时做了几个额外的设计改进。
一个关于 coding agent 的奇怪事实:像这种更难的任务实际上提供了更多同时做其他事的机会——因为 agent 有时需要 10-15 分钟去啃新任务。Simon 在那段时间去看了 Half Moon Bay 的国庆日游行,偶尔从手机上检查进度、发下一个 prompt。
## 让 GPT-5.5 做交叉审查
Simon 现在有一个习惯:让 Anthropic 最好的模型审查 OpenAI 的工作,反之亦然。这次让 GPT-5.5 审查 Fable 的改动。GPT-5.5 抓出了 2 个值得调查的 P1 问题:`db.query("update ...")` 在 raise ValueError 之前已经 commit 了 update——对一个文档说"只能用于返回行的 SQL"的方法来说非常意外的副作用。以及 `INSERT ... RETURNING` 通过 `db.query()` 只在返回的生成器完全耗尽后才 commit——不耗尽就永远不 commit。
"审查这段代码帮我建立了更好的 SQLite 事务语义边缘情况的心理模型。"
## 估计成本:$149.25
主会话 Fable 5 $141.02,4 个子 agent 各 $1-2.4,一个 Opus 4.8 agent $0.32。总共 $149.25。在 Claude Max $200/月订阅下免费,但 7 月 7 日之后即使是 Max 订阅也要付全价。
Simon 的反思:应该更积极地用子 agent 配便宜模型。他在 Fable 上的周限额已用到 63%。
## 发布说明由 agent 写
Simon 过去坚持手写发布说明。这次让 Fable 写——"这些说明比我手写的好。发布说明是那种适合外包给 agent 的写作:无聊、可预测、准确。"
他还发现审查文档改动是建立对变化的理解的绝佳方式——比直接看代码 diff 快得多。
#
Fable5# #
Agent实操# #
开源#