AI 编程还在等待自己的 Spring Boot
AI 编程已经跨过“模型能不能写代码”的阶段,却还没有跨过“团队怎样稳定交付”的阶段。
Prompt、Context、Memory、Tool、MCP、Sandbox、Workflow、Eval,这些零件越来越齐全。真正缺少的是一条被广泛接受的默认路径:人怎样描述目标,Agent 可以看什么、改什么,任务中断后怎样继续,结果拿出哪些证据才允许合并。
这很像 Spring Boot 出现前的 Java Web。能力都有,项目也能跑,只是每支团队都在重复处理启动、装配和部署。AI 编程正在等待的“Spring Boot”,同样不会靠某个更强的模型自动出现。
框架的价值是减少重复判断
Tomcat 解决了 Web 应用在哪里运行,Spring 解决了对象怎样组织,Spring Boot 又把依赖选择、常用配置和运行环境装进一组默认值。Rails 走得更直接,用目录、命名和连接方式上的约定,换掉每个项目从头讨论的自由。
这些框架通过减少重复判断创造价值,代码量的下降只是结果。它们把大量实践压进概念、结构和默认值,同时在必要处留下向下穿透的入口。新人可以先沿着一条正确率较高的路做出应用,遇到问题再逐层理解容器、事务和网络。
AI 编程目前恰好缺少这种压缩。SDK 可以调用模型,Agent 可以使用工具,但团队仍要自己发明 Context 的组织方式、权限边界、状态恢复和验收标准。大家拥有相似的零件,却没有共同的开发模型。
下面这棵树展示了现有能力的分布。枝叶已经茂密,连接它们的工程契约仍然稀薄。
真正缺的是反馈架构
如果只看“能否完成任务”,今天的 Agent 已经相当好用。可软件交付还要回答另一组问题:它为什么这样改,哪些约束得到检查,测试覆盖了什么,失败发生在哪一层,出了事故能否恢复。
因此,AI 编程的框架不能只是 Agent 编排器。它更像一套反馈架构,把一次模糊委托变成可检查的闭环:目标写成可执行的 Specification,Context 有明确来源,工具遵守最小权限,Runtime 保存任务状态,测试与 Eval 给出验收证据,最终改动仍能追溯到人的责任。
让 Agent 在清楚的约束下产出可以验收的软件,并让失败可以定位,过程可以追查。
成熟以后,开发者或许不再频繁手拼 Prompt、维护 Agent Loop,正如 Spring Boot 用户不会每天装配 Servlet 容器。常见选择会成为约定,复杂状态交给 Runtime,只有异常情况才要求人向下穿透。
这套反馈架构还有一个容易被忽略的用户:正在学习编程的人。
新人缺少的是反馈
过去,Junior 从修 Bug、写 CRUD、补测试开始。任务不难,却会持续暴露真实后果:测试为什么挂,事务在哪里失效,接口怎样被误用,线上回滚意味着什么。工程判断就是在这些短反馈里长出来的。
Agent 正在接走这批工作。新人几分钟就能得到完整功能,却未必知道哪些决定可靠,哪些风险只是还没触发。让他直接审核 Agent 代码也解决不了问题,因为审核所需的判断,正是他尚未获得的能力。
新的学习路线只能从更高的抽象层起步,再主动向下钻取。先让 Agent 完成真实功能,然后追踪一次请求、检查一个事务边界、解释一项权限选择。失败时,区分目标理解错误、Context 缺失、工具受限和代码 Bug。框架应当显露这些边界,让完整代码同时带着可追查的过程。
交付需要的可观测、可验证和可恢复,恰好也是学习需要的反馈,无需另设一层教学功能。一个好的中间层可以同时服务团队和新人。
我们还不知道它叫什么
它可能像 Spring Boot,把运行环境、依赖与默认配置接在一起;也可能像 Rails,用鲜明约定减少选择;甚至可能不是传统意义上的代码框架,因为它组织的是目标、状态、权限和验收,代码只是产物之一。
这个类比也有边界。模型输出带有不确定性,Agent 还能调用工具、改动外部世界,所以验证、隔离和权限必须比传统 Web 框架更靠前。我们能借鉴的是框架如何沉淀经验,不能照搬它的答案。
模型还会快速变化,今天流行的操作技巧也会过时。Specification、Runtime、Eval、权限和恢复却会反复出现。某个环节总要靠人手工补齐,或者同一种失败在不同团队持续重演,那里通常就缺一层合适的抽象。
这层抽象出现以后,团队不必每次重新发明任务状态、权限和验收方式,新人也能顺着同一套证据理解一次交付为何成功或失败。在此之前,AI 编程拥有越来越强的 Agent,却仍然缺少自己的默认开发路径。