八年期盼,三个月用AI打造开发工具

Simon Willison··作者 Simon Willison

关键信息

第一个由AI生成的原型被丢弃,因为它缺乏清晰的高层架构;第二个版本需要更多人工参与决策,但最终形成了一个健壮且可投入生产的库。该工具与SQLite测试套件的匹配度达到99.7%。

资讯摘要

拉利特·马甘蒂花了八年时间构想一个全面的SQLite开发工具集,后来仅用三个��就在AI帮助下建成了syntaqlite。起初他用Claude Code快速生成原型,但发现AI擅长低级编码任务,却无法胜任高层架构设计。他最终放弃了第一次尝试,重新从头构建,并融入了更多人工判断。

最终产品是一个可靠的解析器、格式化工具和验证器,完全基于SQLite自身的Lemon生成语法。这个案例揭示了代理工程的力量与陷阱:AI能加速原型开发,但无法替代深思熟虑的架构设计。

资讯正文

八年的期待,三个月的AI构建

拉利特·马甘蒂(Lalit Maganti)提供了一篇我多年来见过的关于代理工程最精彩的长文写作。

他们花了八年时间思考,又用三个月时间打造了<a href="https://github.com/lalitMaganti/syntaqlite">syntaqlite</a>,他们将其描述为“SQLite应得的高保真开发工具”。

目标是为SQLite提供快速、稳定且全面的linting(代码检查)和验证工具,适用于语言服务器和其他开发工具——一个用于SQLite查询的解析器、格式化工具和验证器。我自己过去也曾想要这样的东西,因此几个月前我曾尝试过一个远未达到生产标准的项目:<a href="https://simonwillison.net/2026/Jan/30/sqlite-ast-2/">sqlite-ast</a>。

拉利特多年来一直拖延这个项目,因为需要逐个处理400多条语法规则来构建解析器,这种工作不可避免地枯燥乏味。而这正是编码代理最擅长的领域!

Claude Code帮助他克服了最初的障碍,完成了第一个原型:

AI基本上让我放下所有技术上的疑虑、对是否在做正确事情的不确定感,以及不愿开始的犹豫,因为它给了我非常具体的问题去解决。不再是“我需要弄清楚SQLite的解析机制”,而是变成了“我需要让AI给我一个建议,然后我可以推翻它,再构建更好的东西”。比起在脑子里反复琢磨设计,我更喜欢通过具体的原型和可读的代码来推进工作,而AI让我以前所未有的速度达到了这一点。一旦迈出第一步,之后的每一步都变得轻松得多。

那个最初由AI辅助完成的原型作为概念验证效果很好,但他们最终决定舍弃它,从头再来。AI在底层细节上表现优异,但无法生成清晰的高层架构:

我发现AI让我推迟关键的设计决策。因为重构成本很低,我可以总说“我以后再处理这个问题”。而且因为AI能以工业规模生成代码,也能同样规模进行重构,延迟决策的成本看起来也不高。但实际上并非如此:推迟决策侵蚀了我的清晰思维能力,因为在那段时间里代码库始终令人困惑。

第二次尝试耗时更长,也涉及更多人工参与决策的过程,但结果是一个经得起时间考验的稳健库。

值得花些时间完整阅读这篇文章——它不仅揭示了重度使用AI带来的诸多非显性缺点,还详细解释了作者是如何克服这些挑战的。

我从中学到的关键观点是:AI在设计和架构方面存在明显短板。

当我在处理某个自己都不清楚想要什么的项目时,AI要么毫无帮助,要么反而有害。项目的架构是最明显的例子:在早期阶段,我花了数周时间跟着AI走入死胡同,探索那些当时看似高效的设计方案,但在深入审视后却彻底崩溃。回过头来看,我不禁怀疑,如果全程不依赖AI,直接靠自己思考,会不会更快一些。

但仅有专业知识还不够。即使我对一个问题理解得很深,如果任务没有客观可验证的答案,AI仍然会遇到困难。实现代码至少在局部层面有正确答案:代码能编译通过,测试用例能通过,输出结果符合预期。但设计却没有标准答案。即便几十年过去了,我们仍在争论面向对象编程(OOP)的优劣。

来源与参考

  1. 原始链接
  2. Eight years of wanting, three months of building with AI

收录于 2026-04-07