
先说一个我自己的感受。最早接触 AI Coding 那会装个插件写 CRUD、补单测、生成正则确实觉得一个人的效率天花板被掀开了那种从 2 小时压缩到 20 分钟的快感我相信很多人都有。但等我们真正在货拉拉团队里推 AI Coding 落地的时候才发现个人怎么爽都好说团队层面的提效完全是另外一回事。这也是这篇文章最想聊透的问题为什么个人用 AI 提效很容易攒成组织提效却这么难中间差的不是工具而是流程、规范和度量体系。货拉拉从 2024 年开始系统推动 AI Coding 落地经历了工具分发—场景试点—规范建设—多智能体协同几个阶段踩了不少坑也沉淀了一些能直接复用的方法。这篇就当是阶段复盘把思路、细节和教训都摊开来讲。1. 个人提效为什么攒不成组织提效很多团队管理者一开始的想法很简单给全员配上 AI 编程工具效率自然就上去了。但结果往往是工具买了、账号开了需求交付周期没有肉眼可见的变化。这不是工具不行而是我们对开发效率这件事的理解出了问题。1.1 个人场景下AI 到底省了什么个人用 AI Coding省的是编码动作本身。比如你熟悉整个业务知道这段代码应该写在哪、接口长什么样、异常怎么处理只是不想手敲那些样板代码和重复逻辑。这种情况下 AI 生成一段 80% 正确的代码你花 20% 的时间改一改就能用效率提升非常明显。我统计过一些早期的个人使用数据开发者在写单测、DTO、数据访问层这类低上下文依赖的代码时AI 的采纳率能到 40% 以上单次生成成功率也明显高于复杂业务逻辑。这部分场景是 AI Coding 的甜区几乎所有人用起来都能感受到提效。但问题在于这些甜区场景在整个软件交付链路里只占很小一块。一个需求从评审到上线真正落在编辑器里敲代码的时间其实往往不到 30%。1.2 组织效率的瓶颈恰恰不在写代码一个典型的需求交付链路是这样的需求评审、方案设计、接口约定、并行开发、联调、Code Review、测试、发布。在这个链路里最耗时的环节通常是需求理解的偏差、跨端联调的往返、评审意见的来回拉锯而不是把函数体写出来。我见过太多这样的场景两个后端同学接口约定没对齐各自花了半天把代码写完了联调时发现字段名不一致又各自花半天改。AI 再强也解决不了两个人脑子里想的接口不一样的问题。所以组织提效的核心矛盾是AI Coding 提高了编码这一个环节的效率但其他环节的瓶颈没有变。如果 100 个小时里只有 20 个小时在写代码那这 20 个小时哪怕提效 50%整体也只是提效 10%。这就是个人提效攒不成组织提效的本质原因。2. AI Coding 落地的整体思路与选型想清楚这一点之后我们的策略就不是发工具而是把 AI 嵌进研发流程里让它去撬动那些真正卡脖子的环节。整体上分成三层来做工具、规范、度量。2.1 落地三层结构工具、规范、度量工具层解决的是有没有、好不好用的问题。我们内部统一建设了一款 IDE 插件作为 AI Coding 的统一入口支持代码补全、单测生成、代码解释、MR 总结等能力。把入口统一起来后续做能力迭代、用量统计、上下文增强才有基础。规范层解决的是该不该用、怎么用的问题。比如明确哪些代码可以用 AI 生成、哪些场景严禁使用AI 生成的代码走什么 Review 流程提示词模板怎么沉淀敏感代码怎么隔离。这一层最容易被忽略但恰恰是决定落地效果上限的关键。度量层解决的是有没有效、怎么改进的问题。我们设计了四个核心指标AI 使用率、生成采纳率、需求平均交付时长、千行缺陷率。后面单独用一整节来讲这些指标怎么定义、怎么采集、怎么避免被刷。2.2 工具链选型通用 Copilot 与自建路线的取舍工具选型上我们经历了一个从全上商业工具到半自建的过程。商业 Copilot 开箱即用、效果也不错但有几个问题没办法绕开一是代码数据要出域我们很难接受把核心业务代码发送到外部服务二是定制能力有限比如想在特定上下文里注入企业内部的接口规范、异常码体系商业工具做不了三是规模化使用的成本不低。所以最终我们走了基座模型 中间网关 自研插件的路线。基座模型优先选择可私有化部署的开源模型比如 DeepSeek-Coder、Qwen 系列等通过统一网关做负载均衡和逃生兜底IDE 插件自研把公司内部的代码规范、项目的目录结构、相关文件信息自动拼装到上下文里。这套选型牺牲了一部分开箱即用的体验但换来了三个关键能力数据不出域、上下文可控、提示词模板可沉淀。这三条对组织级落地是长期价值。2.3 插件能力线从补全到问答再到 Agent插件的能力演进也不是一步到位的。我们按三条线迭代第一条是补全和生成线包括行级补全、函数级生成、单测生成这是使用频率最高、最容易被接受的能力第二条是问答与解释线包括选中代码解释、报错解读、技术方案问答主要用来帮助开发者理解老代码和排查问题第三条是 Agent 线包括自动修改代码、生成 MR 描述、自动修单测失败这是从人用 AI走向AI 独立干活的尝试。三条线里前两条已经稳定运行第三条目前还在探索阶段后面专门讲多智能体那一节会展开。3. 让 AI 真正能用的细节上下文、提示词与场景裁剪很多人觉得 AI Coding 效果不好是因为模型不够强但实际用下来上下文工程的影响远比模型参数重要。同样一个模型你让它生成一段支付回调处理逻辑和让它基于以下接口文档和调用链生成符合我们异常码规范的支付回调处理逻辑生成结果的可用性完全是两个量级。3.1 什么代码适合 AI 写什么不适合这是落地初期我们反复跟团队强调的一件事AI Coding 不是所有代码都能写好要有取舍。适合 AI 生成的代码有几类共性——上下文依赖弱、结构化程度高、有大量历史样本可参考。比如数据库访问层、DTO 转换、单测代码、简单的 CRUD 接口、正则表达式、配置文件的组装。这些代码模式固定AI 见过的样本多生成质量比较稳定。不适合 AI 生成的代码也有几类共性——强业务语义、不可逆操作、需要大量上下文理解。比如涉及资金清算、库存扣减、复杂的审批流状态机或者跨多个微服务的长链路调用。这些代码一旦出错排查成本极高AI 生成的价值抵不上风险。我们内部甚至出过一个简单的分类表A 类代码鼓励 AI 生成、B 类代码建议人写在 AI 辅助、C 类代码禁止 AI 独立生成。有了这个分类团队用起来就不会乱。3.2 上下文注入比模型大小更影响效果上下文工程是我们投入精力最多、也最见效果的方向。模型本身能力在那里决定生成质量的是它能不能拿到足够多且准确的信息。刚开始用的时候很多同学是直接把需求描述敲进对话框帮我写个订单查询接口这种模糊的输入模型只能给一个大致框架离可用状态差很远。后来我们做了两件事一是在插件里自动注入当前打开文件的引用关系、项目中相关类的定义、项目的编码规范片段二是把需求描述结构化让开发者必须填入参、出参、约束条件、异常码规则。这两件事做完之后单测生成的采纳率提升了将近一倍。我发现一个规律上下文里每多一个精确的接口定义生成结果的可用性就上一个台阶。所以现在插件里专门做了相关文件自动附着的能力不需要开发者手动去找AI 会自动把 import 关系、方法调用链里的关键定义拼接到 prompt 里。3.3 提示词模板沉淀把个人经验变成组织资产个人用 AI 的时候提示词怎么敲全凭感觉。但组织落地不行必须把好的提示词沉淀成模板让每个人都能抄作业。我们做了几个标准化模板单测生成模板要求 AI 遵循先列测试场景再写测试代码跑通后补边界用例的流程代码解释模板要求输出这段代码的核心逻辑、前置依赖、潜在风险三部分MR 描述模板要求 AI 根据 diff 自动生成变更目的、影响模块、测试点。模板的沉淀过程不是一蹴而就的。我们每周会挑一些生成效果好的案例和生成效果差的案例做对比把差的案例抽离出原因比如上下文缺少异常码定义没有约束返回结构然后反向去调整模板。这件事坚持了两个月模板库成了团队内部很受欢迎的一个资产。4. 质量防线担心代码质量下降先把关卡设计好AI Coding 的到来会不会让代码质量下降——这个问题几乎在每个技术社区都会被讨论我们在内部推行时也被反复质疑。我的态度是AI 生成低质量代码是必然的但能不能把低质量代码挡在上线之前才是关键。像传统代码一样质量不靠写的时候靠运气靠的是代码评审和流水线卡点。4.1 AI 生成代码的常见质量缺陷结合我们自己 review 过的 AI 代码常见问题大概有四类。第一是幻觉 API。模型生成了不存在的类名、方法名或字段编译能过可能是巧合但更多时候运行期才报错。这在高版本 SDK 或内部私有库上特别明显模型训练数据里没见过这些东西。第二是边界条件缺失。模型生成的代码对正常路径处理得很顺但空指针、超时、重复提交、超大输入这些边界场景经常没覆盖到。比如生成一个导入接口正常数据处理了但空文件、格式错误、部分成功这些情况完全没考虑。第三是重复代码。一个团队里如果大家都用 AI 生成同一段逻辑很容易出现大量结构相似但略有差异的代码给后续维护留下大坑。这需要静态扫描工具定期查重。第四是上下文忽略。模型只根据传入的局部代码生成结果没有遵循环球的设计模式或者团队约定。比如团队里明确要求用策略模式处理多支付渠道AI 生成的可能是一长串 if-else。4.2 三层防线AI 自检、人工 Review、CI 卡点针对这些问题我们搭了三层防线。第一层防线是 AI 自检。在提示词模板里强制要求 AI 生成完代码后自行检查一遍列出潜在的风险点和未处理的边界条件输出在代码注释或者 MR 描述里。这看起来很虚但实测能让不少显性问题在生成阶段就被消除。第二层防线是人工 Code Review这也是最重要的防线。我们明确要求AI 生成的代码和手写代码一样必须走完完整的 MR 评审流程严禁直接合入。Review 的时候重点看边界条件、资源释放、异常处理而不是逐行读正常路径。为了帮 Reviewer 提高效率插件会自动生成本次变更摘要和AI 自检发现的风险点让 Review 有重点地看。第三层防线是 CI 流水线卡点。我们在 CI 里加了静态代码扫描、覆盖率检查、重复代码扫描。覆盖率低于阈值的不允许合入重复代码超过一定比例会提示并要求重构。这三道关卡跑下来AI 生成代码引入的质量风险基本被控制在可接受范围内。4.3 AI Coding 时代的笔试与技能要求今年AI Coding 笔试成了一个热门话题。很多团队在招聘的时候开始意识到用老一套笔试去考 AI 时代的候选人题目可能已经没有区分度了——因为候选人可以直接把题丢给 AI 做。我个人的看法是AI Coding 时代的笔试不应该再考能不能写出来而应该考会不会判断。候选人面对一段需求能不能把它拆解成清晰的模块和接口能不能把需求准确描述给 AIAI 生成的代码有缺陷时能不能通过 review 发现并修正——这三项能力才是真正该考的。我们内部已经开始调整面试思路会给候选人一些 AI 生成的代码里面有故意埋进去的边界问题和幻觉 API考察候选人能不能发现和修复。这种AI 辅助 人工 review的混合模式可能才是下一代开发者的核心竞争力。5. 从单点到多智能体组织提效的下一步探索单点工具做到一定程度后我们开始探索多智能体协作。如果说 IDE 插件像一个人的副驾驶那多智能体就是试图把 AI 从副驾驶变成流水线上的机械臂——让 AI 参与需求分析、编码、Review 的整个流程。5.1 单 Agent 能做什么不能做什么单个 Agent 我们用的是Agent as a skill的思路每个 Agent 专注一件垂直的事。已经落地得比较稳定的有三个单测生成 Agent输入一个方法签名和上下文自动生成覆盖正常、异常、边界场景的测试用例代码解释 Agent输入一段老代码输出逻辑说明和数据流向MR 摘要 Agent自动阅读 diff生成变更描述和测试建议。这三个 Agent 的共同特点是任务边界清晰、输入输出可验证、失败不会造成严重后果。这也是我们对单 Agent 上线的底线要求。单 Agent 的问题也很明显它只能处理一个局部任务做不了需要多步决策和跨模块协作的事情。比如帮我实现这个需求它需要先理解需求、再设计方案、然后改代码、再自查——这一连串动作单 Agent 做不好。5.2 多 Agent 协作的现实阻碍多 Agent 协作听起来很美好但真正落地要过三关。第一关是上下文共享。多个 Agent 协作时A Agent 的分析结果要能传给 B Agent 使用。但每个 Agent 的上下文窗口都有限存不下太长链路的中间结果。我们的做法是把 Agent 之间的通信结构化前一个 Agent 输出的不是自然语言而是 JSON 格式的需求规格、代码变更清单、测试结果后一个 Agent 解析这些结构继续干活。第二关是任务分配与编排。一个复杂需求进来怎么拆解成多个子任务然后正确分配给不同 Agent顺序怎么编排谁来处理失败重试——这些都是工程问题不是模型问题。我们最开始用 LLM 来做任务拆解但发现拆得不够稳定后来改成人在回路的编排人先把任务拆好多个 Agent 并行干各自的部分。第三关是结果验证。Agent 完成一个子任务怎么判断它干得好不好这比人写代码的 review 更麻烦。我们的办法是引入验证型 Agent专门检查代码是否通过编译、单测是否通过、是否遵守了接口规范。也就是让 Agent 自己当 Reviewer人只做最终的兜底。5.3 一个能跑起来的实践需求解析 Agent 到编码 Agent我们目前跑得比较通的一条多 Agent 链路是需求解析 Agent → 编码 Agent → Review Agent。需求解析 Agent 读取需求描述输出结构化的需求规格包含涉及接口、字段、异常码、时序编码 Agent 拿着这份规格去生成核心代码Review Agent 审一遍代码输出风险清单和修改建议。这段链路在内部一个工具系统上试跑了两个月。实际效果是结构清晰、上下文完备的简单需求能够显著减少开发者的重复劳动但稍微复杂一点的需求需求解析 Agent 输出的规格就不够完整编码 Agent 生成的质量就往下掉。所以目前我们的定位还是多 Agent 帮人打前站不太敢让它自动合入生产代码。这个方向我认为是对的但距离自动驾驶还有相当长的距离。6. 用数据说话度量体系和复盘结论组织提效这件事如果没有数据支撑很容易变成感觉好像有提升的玄学。我们的原则是任何 AI Coding 能力的上线都要配得上一个可以量化的结果。这里讲一些我们自己设计和复盘的方法。6.1 四个核心指标怎么定义我们用的四个指标分别是AI 使用率统计的是活跃开发者中每天使用过 AI 能力的比例。这个指标反映的是工具有没有被大家真正用起来是落地深度的基础指标。生成采纳率统计的是 AI 生成的代码中被开发者直接使用或少量修改后合入的比例。我们刻意不去统计AI 输出了多少行代码因为输出行数没有意义合入进去才算数。需求平均交付时长统计的是从需求开始开发到发布上线的平均时长。这个指标是组织提效的最终呈现但受限于需求复杂度、协作人数等外部因素解读时要谨慎。千行缺陷率统计的是每千行代码里线上缺陷的数量。它用来衡量 AI 生成代码的质量影响防止为了效率牺牲质量。6.2 对照组设计避免指标被刷度量最容易出的问题是指标本身被动作污染。比如 AI 使用率这个指标如果只是统计有没有点过 AI 按钮那就太容易被刷了但如果统计每次提交里 AI 生成代码的占比数据采集又很困难。我们的做法是在 IDE 插件里做黑盒埋点只在代码提交的时候统计该文件是否有 AI 参与生成以及生成内容的修改比例。通过算法去判断生成后直接合入还是生成后大幅修改再把这两种情况分开统计才能看到真实效果。对照组方面我们选了同一团队内部的相似项目做横向和纵向对比纵向是同一个项目接入 AI 前后的数据对比横向是同一时间段内使用 AI 频率高的开发者和使用频率低的开发者之间的交付差异对比。因为我们没法做到完全随机分组所以结论更多是参考性质但趋势性数据已经足够做决策。6.3 实测结果和几个反常识结论跑了半年之后我们的数据大概是这样整体 AI 使用率在 70% 左右代码生成采纳率在 30% 上下单测生成的采纳率比代码生成高不少。接入 AI Coding 相对成熟的几个微服务需求平均交付时长缩短了大约 15% 到 20%。千行缺陷率没有明显上升在部分团队还略有下降。但有几个反常识的结论我想单独说说。第一个是AI 提效的幅度跟团队基础代码质量强相关。代码习惯好、模块划分清晰、接口约定规范的团队AI 用起来效果远超那些代码乱成一团的团队。AI 是放大镜会把好的实践放大也会把坏的实践放大。第二个是单测生成是最快见效的场景。因为单测的好坏容易验证测试过了就是过了开发者对 AI 生成的信任建立得很快。反而是一些业务代码生成虽然看起来工作量不小但后续 review、修改的成本会吃掉一部分提效。第三个是人均提效 20%不等于组织提效 20%。如果一个项目的交付瓶颈在跨团队联调那代码环节提再多效整体交付周期也不会缩短。组织提效必须对着瓶颈环节打而不是对着好打的环节打。7. 踩坑实录与快速排查手册最后这部分我整理了一些落地过程中遇到过的实际问题给自己做个备忘也给大家一个参考。7.1 六个典型坑第一个坑是上下文不足导致幻觉 API。早期我们没有做自动上下文注入开发者直接问模型怎么调用某个内部接口模型一本正经地编了一个不存在的 API看起来很像那么回事跑起来直接编译失败。后来我们强制在 prompt 里拼接接口定义和内部库的索引片段这个问题才明显缓解。第二个坑是提示词把输入输出格式交代不清楚。比如让 AI 生成单测没说用什么测试框架、用什么断言风格生成出来的东西风格五花八门。后来我们做了模板强制约束框架、断言风格、覆盖要求、输出格式统一之后就稳定多了。第三个坑是AI 生成的代码没走 Review 就合入。有人觉得AI 生成的代码跟搜索引擎抄来的一样问题不大确实出现过绕过 MR 直接 push 主干的情况。后来我们直接在 Git 服务端做了保护主干分支强制 MR同时要求 MR 描述里标注是否包含 AI 生成代码。第四个坑是供应商 API 限流。刚开始用商业大模型 API 的时候高峰时段经常超时开发者很快就不用了。自建网关之后做了多模型路由和降级策略比如主模型超时就切备用模型总算把稳定性提了上来。第五个坑是有人把公司代码贴到公网 SaaS 工具。这是最严重的安全风险。我们明令禁止核心业务代码输入外部工具并且在网关上做了敏感信息识别一旦发现代码内容包含内部域名、IP、密钥特征立刻拦截并提示。这块只能靠技术管控 制度约束双管齐下。第六个坑是度量指标被刷。有段时间使用率指标涨得很快后来发现是插件把AI 按钮弹出过也算一次使用。我们把埋点改成AI 输出内容被确认采纳才算一次有效使用这个水分才算挤掉。7.2 常见问题速查表问题典型原因解决方案生成的代码调用不存在的 API上下文缺少内部库定义自动注入接口定义、类索引到 prompt单测风格不一致提示词没有约束框架和断言风格用标准模板统一测试框架和断言库AI 生成代码频繁被改上下文不足导致方案偏差增加相关文件附着人先确认方案再生成高峰时段响应慢单一模型限流网关多模型路由 自动降级核心代码被输出到外部工具缺乏安全管控网关做敏感信息识别 制度禁止使用率数据虚高埋点口径不严谨统计有效采纳而非功能打开写在后面的话最后聊一点我自己的感受。做 AI Coding 落地这一年多我最大的体会是AI 的价值上限取决于组织自身把问题定义清楚的能力。你的代码规范是否清晰、模块边界是否合理、需求描述是否结构化这些前 AI 时代的问题决定了 AI 究竟能做到什么程度。工具只是一个放大器那些本来就有良好工程实践、流程清晰、善于表达需求的团队在 AI Coding 落地中得到的收益远大于那些指望靠工具来弥补工程欠账的团队。一直在琢磨的还有一件小事AI Coding 的下一步可能不在于模型参数又多大了而在于我们能不能把人的隐性知识用 AI 能理解的方式沉淀下来——比如老系统里的业务规则、跨模块的约束关系、那些写在哪都不合适、但大家都知道不能碰的逻辑。这些东西不变成结构化的上下文AI 的效率就永远只能在边缘场景打转。如果你也在团队里推 AI Coding我的建议是先别急着铺开花点时间把你们团队的瓶颈环节找出来。如果瓶颈在编码那就放心大胆上 AI如果瓶颈在沟通协作那 AI Coding 该和流程重构一起做。工具永远是跟着问题走的。