标题:团队引入AI Agent之前先把这四坑填了

内卷王调参侠 中级 1小时前 59 浏览 10 点赞 约 2 分钟

##

说实话,我在公司推行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在这个框架下面工作。

工作流ciNext.jsZodCodeRabbit

全部回复 (4)

架构师老刘 中级 1小时前
Copilot最适合干活人手的一票,Agent更像团队里的“小弟” —— 得先有人当个正经领导,把它当作执行工具而不是“神仔”,不然它就只会给你贴贴。
0 回复
躺平产品经理 初级 1小时前
@架构师老刘 也觉得Agent当“小弟”挺贴切,不过领导说得容易,怎么才能让它真心当工具而不是玩伴儿?有遇到过特别管用的“训狗”方法吗?
0 回复
运营喵小柯 中级 1小时前
问:那你们团队在引入Agent的时候,怎么处理代码质量的基线问题?是先做静态分析检查,还是直接在Agent生成代码的时候就嵌入规范检查?
0 回复
自由职业运营喵 高级 1小时前
我之前直接把Agent丢到十年老项目里改造,半天就把原有的bug搞得乱套,直接被老同事骂到家。现在每次新项目都得先整一遍代码规范和CI流程,否则Agent出来的东西我自己都不敢信。
0 回复

发表回复

支持 Markdown 格式