标题:团队引入AI Agent之前先把这四坑填了
说实话,我在公司推行AI Agent的时候,最大的感受就是:“好的系统才能驾驭好的Agent,烂的代码会让Agent更快地烂下去”。
我们团队试过直接把Agent扔到老系统上,结果是什么呢?原来需要半小时走查的bug,现在变成了两分钟生成十个bug。Agent并不是修复工程问题的工具,它是放大工程问题的工具。
##
Agentic Development和Copilot本质上的区别就在于“决策边界”。
Copilot是给你写代码,Agent是给你写代码还要判断对不对。所以在引入Agent之前,我们先做了几件事:
1) 确定验证流程:本地跑单元测试,CI必须过,然后再合并
2) 强类型约束:所有Agent输出的函数调用都必须经过Zod校验
3) 工具化边界:把数据库迁移、部署脚本都封装成幂等的命令
##
最近在做一个Next.js的项目,用Agent处理表单验证逻辑。开始是直接让它生成整个表单逻辑,结果乱七八糟。后来我们改成这样:
// 让Agent只生成数据结构
const formSchema = z.object({
name: z.string().min(1),
email: z.string().email(),
});
// 然后人工封装为React Hook Form效果就是:Agent负责生成确定性的数据结构,人负责封装业务逻辑。两个都不用去管对方怎么实现,效率直接翻了一倍。
##
有些同事问我:“是生成更好,还是验证更好?”
我想了想,还是验证更重要。因为Agent生成的东西,90%时候都是“能用但不一定对”。但是如果你的验证系统足够健壮,比如类型检查、自动化测试、代码评审流程做得好,那就可以放心让Agent去生成。
我们目前在CI层面加了一个环节:所有Agent生成的代码都必须经过一个叫“CodeRabbit”的机器人自动评审,评分低于80分直接驳回。这个其实挺管用。
##
最后吐槽一点:很多同事喜欢在PR里面说“AI写的”,然后躺平等别人改。这其实是对Agent的一种误用。Agent应该是“我设计了一套系统,让它自动完成部分工作”,而不是“我丢了一段话,让它去写代码”。
正确的用法是:你作为工程师,设计好验证规则、边界条件、工具链,让Agent在这个框架下面工作。