第一条:Bun 1.4 重写,11 天,100 万行代码,Jarred Sumner 搭了个 Agent 框架让 AI 自己并行写。Token 烧了 16.5 万美金。
第二条:DHH 接受 Lex 采访,说他最近两个月开发 Omarchy Linux,"没有亲手写过一行上线代码",全是 AI 写的,他只负责审架构、看关键代码、定问题。
第三条更扎心:腾讯工程师任磊达披露,AI 一天写了 4.4 万行代码,27 轮 Review 后发现 193 个问题,最终决定------不合并。
一边是产能爆炸,一边是审不过来。这条缝里,卡着我们所有人接下来两年的活。
我以前也迷信产能
去年我让 Cursor 帮我写过一个内部审批模块,AI 半小时出了 3000 行。我看着爽,赶紧合并上线。
一周后生产环境崩了。
查日志:有个字段被 AI 写成了 user_id,但业务里叫 applicant_id。前端传参没问题,SQL 也没问题,可数据就是插不进去。
翻提交记录,那一行在的。翻 Review,我自己点的 Approve。没人发现问题,因为没人真看。
这跟 Bun 那 4.4 万行 27 轮 Review 是一回事------人根本看不过来那么多代码,但生产环境会真跑。
后来我做了一件事
我没去追"AI 怎么写得更好"。我开始追"AI 写完之后怎么管"。
开源框架 ForgeAdmin 里正好有一堆现成的机制,我把它们穿起来了。一共四层,从下往上:
第一层:所有操作留痕
sys_operation_log 表里有几个字段是后来加的:before_data、after_data、diff_data------分别是"改之前的数据、改之后的数据、差异"。
迁移脚本叫 V1.0.14__enhance_operation_log_page_audit.sql,注释第一条写着:"复用 sys_operation_log,不新建并行审计表,避免日志查询和导出链路分叉。"
代码里注解就这么用:
不管这行代码是 AI 写的还是我手写的,调用一次就留一条。改的字段、改前值、改后值、谁改的、在哪个页面、用什么方法请求的,全在 diff_data 里。
这条解决了 Bun 4.4 万行代码 193 个问题里最常见的一类:改了不该改的东西。
第二层:看不见的别想动
光留痕不够。AI 写代码最爱用一条假设:"用户能看到啥我就改啥"。
但实际不是这样。销售只能改自己订单,主管能改全部门,老板能改全公司。
forge-starter-datascope 拦截器干这事------同一个 SQL 进去,不同用户出来不同结果。Mapper 方法名配白名单,SQL 自动追加 WHERE。
AI 写这条 SQL 时,不需要知道用户是销售还是主管。它只管写"列出订单",剩下的交给拦截器。
这一层解决的是:Bun 那 11 天 100 万行里只要有几行越权代码,AI 就敢跑出生产事故。
第三层:AI 重试不能扣两次款
AI 调用接口有个毛病:失败就重试。一晚上扣 8000 次款的事我听过。
@Idempotent 注解三种策略:
STRICT--- 重复请求直接拒绝
RETURN_CACHE--- 重复请求返回上次结果
TOKEN_REQUIRED--- 必须带幂等 Token,先取后用
这条防的不是人,是 AI。 人不会重复点 30 次付款,AI 会。
第四层:AI 想改敏感数据,先来人审批
这条最狠。
ForgeAdmin 跑 MCP Server,AI 调我的"删除客户"、"发起退款"这些高危动作时,必须先触发 Elicitation------也就是弹一个确认框给人点。
代码里这是硬性校验,连"忘配"都不行:
(出自 CapabilityGrantService.java 第 230 行,校验不通过直接抛异常注册失败)
AI 想删客户?对不起,先让真人点一下"我同意删除"。
高危审批完还有一个工具能查状态,叫 capability.approval.get------AI 想确认"我刚才申请的那笔删除批下来没",就走这个查,不再发新请求。
这一层解决的是 Bun 那 27 轮 Review 里最难搞的一类:AI 自己测自己通过,但生产一跑就出大事。
这套还能再补一层
底层还有两个机制我在用:
- AI Provider 配额 :
AiProvider表管着 openai / azure / dashscope / ollama 几个供应商,每个有 status、models 列表、defaultModel。一个挂了自动切,且每次调用都有AiModelInvocationLog记录
- MCP 协议守卫 :
ForgeMcpProtocolGuard在启动期强制只允许 STREAMABLE 协议,禁止同时启用 stdio。错配直接抛异常
这两个不是给业务用的,是给"接 AI 的服务"用的底座。 不配这两层,AI 调你系统就裸奔。
我的反思
写完这套机制,我回头看 Bun 的 100 万行。
你说 Bun 那 100 万行牛不牛?牛。AI 写得快不快?快。Token 烧得值不值?看场景。
但你注意到没------Jarred Sumner 不是"用 AI 写代码",他是"搭了一套流水线让 AI 写代码"。他搭的是 Harness:调测试、设验证、循环 review。
搭 Harness 的活,从来没被 AI 取代过,以后也不会。
ForgeAdmin 做的就是这件事------不是和 AI 抢写代码,是给 AI 写代码这事搭一套脚手架。
结尾
扣 1:你想看这四层机制怎么落到具体代码里? 扣 2:你团队已经在用 AI Coding 了,遇到过最头疼的问题是什么?
框架开源地址(Gitee):https://gitee.com/ForgeLab/forge-admin GitHub:https://github.com/yaomindong1996/forge-admin 项目文档:http://www.dlforgelab.com:8084/forge-docs/ 在线演示:http://www.dlforgelab.com:8084/forge/login(admin / 123456) 演示站可以亲自点几下,感受 AI 删数据时被弹窗拦下来是什么样子。