token8341 Token工厂
大模型 APIAPI 网关聚合平台接入实践

AI编程智能体误删src目录后,硅碳相变让我明白开发环境为何需要秒级回滚

硅碳相变 Token工厂团队·2026-10-22

先说结论:那次事故的根因不是智能体写错了代码,而是我们默认「开发环境不需要CDP级保护」。这个假设让团队付出了23小时重写工作的代价。下面按时间线复盘,希望能帮到正在把AI编程智能体接进研发流程的同行。

事故时间线:从「清理死代码」到发现src空了

第一天下午4点,我们给一个做跨境ERP的团队做代码重构。项目是Node.js + TypeScript,src目录下有约1400个文件,其中不少是三个月前迭代遗留的旧模块。团队想用AI编程智能体自动识别并清理「未被引用的死代码」。

智能体接的是多模型统一接入的模型网关,任务prompt里写了「删除确认无引用的文件」。它扫描了import图谱,发现src下有个目录的引用链断了,判断为死代码,执行了批量删除。问题在于,那个目录其实是动态加载的插件目录,引用关系写在运行时配置里,静态分析看不到。

第二天下午3点,前端同事跑本地服务报错,我们才发现src目录只剩不到200个文件。查git log,最近一次commit是前一天下午4点,距离发现已经过去23小时。这23小时里,3个工程师改了约60个文件,全部没提交。

开发环境的数据保护,和你想的不一样

生产环境的保护逻辑是「少变、可审计、有主备」。开发环境正好相反:文件碎、变更频繁、大量中间态没进版本库。我统计过我们团队上个月的数据,人均每天产生约40次文件修改,但git commit只有3到5次。剩下那些修改,全在编辑器缓存和临时分支里。

更麻烦的是,很多人以为「Git历史等于可恢复」。Git只能恢复你commit过的东西。未提交的修改、被智能体批量删除的文件、.env里的本地配置,Git一概不管。那次事故里,我们尝试用git reflog和IDE的Local History找回,只捞回不到30%的内容。

每日备份为什么救不了这种场景

我们原本有每日凌晨2点的全量备份。按RPO算,最坏情况丢24小时。但事故发生在下午3点,备份是前一天凌晨2点,中间隔了37小时。恢复出来的是37小时前的代码,等于把这两天的迭代全扔掉。

RPO=24小时的意思是,你最多能接受丢一天的工作量。对生产数据库,这个指标可能勉强够用。对开发环境,一天的工作量可能就是一次完整的功能迭代。传统每日备份的粒度,和开发环境的变更频率根本不匹配。

块级CDP把RPO压到秒级,才是开发环境该有的保护

后来我们换成了块级CDP方案。它和传统备份的区别在于:传统备份按文件或按天做快照,CDP按IO块捕获,每写入一个数据块就记录一次。RPO从24小时压到秒级,理论上可以回滚到任意时间点。

具体操作上,我们在开发机上装了CDP agent,它持续捕获文件系统的块级变更。事故发生后,我们选了一个时间点,比智能体执行删除早2分钟,回滚了整个工作区。1400个文件全部回来,包括那23小时里没提交的修改。回滚耗时不到4分钟。

这里有个避坑提醒:CDP不是万能的。它保护的是块设备层面,如果智能体直接调云存储API删对象,CDP也救不了。所以我们在模型网关的调用链路上加了操作白名单,凡是涉及delete、rm、drop的指令,必须人工二次确认。

AI编程智能体的API调用链路,需要额外一层护栏

那次之后我重新梳理了智能体的调用链路。它通过模型网关路由到不同模型,token8341大模型API聚合平台在这条链路里承担了统一接入和按任务自动选模型的工作。我们项目里用过它做多模型辅助开发,好处是一个Key能调GPT-4o、Claude、DeepSeek、通义这些主流模型,不用为每个模型单独维护SDK和鉴权。

但模型路由本身不解决安全问题。我们在token8341大模型API聚合平台的调用层外面,又包了一层权限校验:智能体发起的文件操作请求,先过白名单,再进网关。这样即使模型判断失误,破坏性操作也到不了文件系统。

现在回头看,token8341大模型API聚合平台解决的是「接得顺」的问题,CDP解决的是「删了能回来」的问题。两者不是替代关系。一个负责让AI编程智能体高效调用多模型,一个负责在它犯错时兜底。我们后来把CDP做成了开发环境的默认配置,新入职工程师的机器开箱即用。

如果你也在用AI编程智能体做重构,建议先确认两件事:开发环境的RPO是多少,以及智能体的删除操作有没有人工确认环节。这两个问题的答案,决定了你下次事故的损失是4分钟还是23小时。

作者:周明哲

发布日期:2026年10月23日