让AI写出生产级代码:阿里妈妈效果广告引擎AICoding实践
发布时间:2026-01-28 14:54 浏览量:2
一、引言:“严肃场景”的AI Coding并非唾手可得
随着大模型技术的迅猛发展,AI Coding 已成为提升研发效率的关键手段。然而,在大型、复杂的生产系统中,直接使用通用 AI 编程模型往往陷入 "能用但不好用,可用但不可信" 的困境:
通用 AI 编程模型在单点、明确的任务(如函数补全、单元测试生成、简单逻辑实现)上表现尚可,但在复杂系统的开发中难以胜任
目前主流实践仍停留在 "vibe coding" 阶段——开发者凭直觉编写提示词,再通过人工整合与验证结果,效率与可靠性均受限
实际工程项目普遍存在模块高度耦合、质量要求严苛、上下文庞杂等问题,而通用模型缺乏对私有代码库规范与系统语义的理解
本文将分享阿里妈妈效果广告引擎团队在 AI Coding 领域的探索与实践经验。依托历时三年打造的 CommonAds 研发体系,我们构建了智能研发助手
「元芳」
,并通过集成至 IFLOW-CLI 以多 Agent 协同的方式,探索出一套可胜任于「严肃的广告引擎场景的高质量代码生成解决方案」,具体包括以下三个关键维度:
AI Friendly的架构支持: CommonAds 研发体系在设计之初即具备良好的 "AI 友好性" ——模块解耦清晰、接口规范统一、上下文可追溯,为大模型生成高质量、高可靠性的代码提供了坚实基础。
规范驱动的多Agent方案: 「元芳」代码生成体系的核心设计理念——"规范驱动、上下文工程、Agent优先",在此基础上构建一整套规范体系,这是实现稳定、可控AI编码的根本保障。
工程化落地实践: 通过 IFLOW-CLI 与 元芳 MCP Server 的深度集成,我们将上述理念转化为可运行、可扩展的工程能力。借助架构设计、能力沉淀与工具链闭环,真正实现了 AI Coding 在大型生产系统中的规模化应用。
本文完整作者:加比,零言,山衍,应灵,潇劼
二、前置探索:引擎代码资产的AI Friendly重塑是AI Coding的重要前提
1. AI友好的引擎架构
阿里妈妈效果广告投放已全面进入跨渠道时代,这意味着同一产品能力需在搜索、展示 等多个引擎中实现。面对大量跨渠道业务探索和迭代需求,传统的独立建设支持垂直业务发展的广告引擎1.0版本以及统一引擎基座的2.0版本已显得力不从心。
我们的做法是
构建一个具备统一业务抽象且提供细粒度能力供复用的CommonAds层
,来帮助各引擎间实现能力拉通,确保全域投放的一致性和高效迭代,进而最终走向各引擎全面拉通的3.0时代。
阿里妈妈效果广告引擎经过3年的建设,持续将内部多个广告引擎的
能力进行沉淀、复用
,最终形成了现在完善的CommonAds研发体系,其
多层解耦
的架构天然具备
AI-Friendly
特性,是我们探索高质量代码生成的基石。
多层架构,职责清晰:
Util层
:底层的通用工具层,包含各种框架能力、数据处理能力等
Helper层
:对数据表的原子操作进行封装,以方便用户对表执行各种通用操作
算子层
:用户自定义算子,完成一个具体而独立业务逻辑的组装
子图层
:引擎外部可感知的图结构定义,实际代码部署的基本单元
核心优势,AI友好:
✅ 每个层级职责单一,层内接口清晰。不互相耦合,只有调用关系
✅ 代码细粒度、注释丰富,易于被大模型理解与生成
✅ 任务拆解路径明确,避免"不知道在哪写、怎么写"的模糊地带
2. 与AI编码流程的完美契合
图1、CommonAds与AI编程的清晰对应关系
在此基础之上 ,我们建设了阿里妈妈-效果广告引擎的智能研发助手
「元芳」
,依托 CommonAds
清晰的体系架构
和
明确的编码规范
来驱动大模型进行高质量代码生成。
基于「元芳」的代码生成能力,我们在近半年成功实现引擎中不少新增核心算子由大模型生成入库,初步验证了当架构和规范足够清晰时, AI 在大型系统中规模化编码的可行性。
我们认为,真正的AI编码应该是严苛约束下的精准工程。「元芳」的核心逻辑在于:通过明确规范做“减法”,收敛大模型自由度以实现确定性;通过丰富上下文与多 Agent 架构做“加法”,沉淀领域知识并强化执行能力。在推进代码生成能力落地的过程中,我们构建了一套完整的解决方案,具体围绕
3个设计原则
和
1套规范体系
展开。
原则一:规范驱动
核心理念:
AI编码不是自由发挥,而是在
严格编码spec
(编码术语澄清、复用接口查询、接口编码规范 等等)指导下的增量开发
正向循环:
规范驱动AI生成 → 分析生成效果 → 优化接口设计和编程规范 → 提升AI生成质量
原则二:上下文工程约束
核心理念:
AI的能力边界,由我们对工程体系的抽象深度和规范完备性决定,这些信息以
各种形式的上下文
加载给模型
实现路径:
元芳的工作重心在于构建各类可查询、结构化的
上下文知识库
,并将其转化为模型可理解的提示词与验证规则
原则三:Agent优先
核心理念:
AI编码不是简单的代码生成工具,而是具备推理、规划、决策能力的
智能体(Agent)
,以期最大程度释放大模型的智能
价值释放:
传统模式止步于"prompt in, code out",而Agent模式解锁了AI的系统性思维。它能处理模糊需求、应对复杂场景、在不确定性中寻找最优解,成为真正的智能研发助手
直接让大模型端到端地完成从需求到代码的生成是不切实际的。因此,我们将整个
代码开发流程拆解
为若干明确的阶段,每个阶段由专门设计的
智能体(Agent)
负责执行,并通过一系列
上下文工程
为其注入丰富且高度相关的上下文信息。这种多Agent协同的架构不仅提升了整个流程的可扩展性,也增强了其可解释性。
图2、多Agent合作的代码生成全流程
基于上述原则,我们构建了
一套规范体系
:为需求到代码的每个阶段都明确相关规范、可检索知识库和其他辅助信息,并将这些内容作为上下文动态加载至对应的Agent中。此举显著提升了各阶段输出的准确性与一致性,有效抑制了模型幻觉,使最终结果更贴合预期。具体来说包括:
研发过程拆解
:需求判断 → 编码依赖 → 编码执行 → 风格对齐 → 单测完善
编码可见代码提取
:筛选高质量、易复用的工具接口,用于模型代码生成时的功能复用
引擎编码基础知识
:广告引擎中 子图/算子 等基本概念的澄清,确保正确生成/使用相关接口
CommonAds编码规范
:代码风格、颗粒度要求等,代码生成过程中遵循,并通过检查脚本强制约束
CR记录的编码细节
:历史CR信息抽取,作为编程规范的增量信息,针对性优化
单测接口使用
:编写单测所用的统一接口,以及单测覆盖率统计脚本
图3、覆盖全流程的编码规范
四、技术实践:基于 IFLOW-CLI 与 MCP Server 的工程化落地
图4、元芳MCP Server架构
首先我们完成了
开发环境适配
,使得团队同学可以在开发机中使用IFLOW-CLI,并支持在IFLOW中执行代码编译、构建等必须的开发操作。
图5、在开发所用容器环境内使用IFLOW
基于IFLOW支持的
Tools、Hooks、Agents、Memory
等多种拓展形式将「元芳」的各种 编码计划生成、可用接口检索、编译验证、使用日志捞取 等等能力,进行实现和沉淀,并统一通过
元芳-MCP Server
部署。具体而言:
Servers:
广告引擎多个不同用途的MCP server通过元芳的自动化流程同步到用户IFLOW本地
Tools:
对于编码阶段所需的各类规范、所需要查询的各类引擎编码知识信息,这些基本能力我们都以工具形式统一提供。
Agents:
我们对于需要执行复杂流程,或者基于结果持续修复的需求,建设了一批Agents
Hooks:
元芳所涉及各类配置、功能的拉取和更新,用户使用日志的捞取和上传等都通过Hook进行实现
Memory:
沉淀CommonAds代码库一些框架知识、接口概念、引擎黑话等,避免用户重复输入给IFLOW
数据回收与分析:
记录IFLOW和元芳的使用日志,再和最终入库代码做关联来统计AI浓度及分析编码效果
图6、MCP Tools示例
图7、Agents示例
接下来通过一个具体的示例来展示「元芳」完成 "从需求到代码" 的完整流程。
1. 需求说明:
子图:广告主 × 流量场景xxx参数调整能力
1. 背景与目标
当前观测到,在部分流量场景下 xxx参数存在低估,为优化商业效果,需在特定流量场景下,对符合条件的广告主进行参数调整,以优化广告展现效果。
2. 功能逻辑说明
系统需执行以下逻辑:
2.1 判断是否命中参数调整策略:
○ 根据当前请求的 流量场景 code 和 广告主id,组合生成 query_key,规则如下:
○ 查询广告主黑名单数据表,若 query_key 存在于表中,则跳过系数调整;
○ 若不在黑名单中,则继续下一步。
2.2 获取并应用参数修改:
○ 从实验参数配置中读取两个动态参数:
■ target_code:目标流量场景 code(整型)
■ ratio:参数提升系数(浮点型,如 1.3 表示参数 ×1.3)
○ 若当前请求的 流量场景 code 等于 target_code,则将原始算法参数乘以 ratio 作为最终参数;
○ 否则,保持原始参数不变;
需求的
基本功能说明
,作为给IFLOW的原始输入。
2. 整体流程:
首先,通过
「编码计划生成Agent」
根据用户输入的需求说明产出一份详细的
编码计划
,将其作为蓝图用于指导后续代码生成的全流程。
图8、编码计划生成Agent的system_prompt示例
图9、用户与Agent的交互流程示例
基于编码计划的产出规范,Agent根据用户的输入并与用户进行
多轮交互
,以确定需求所涉及的各种细节用于产出正确、完整的
编码计划文档
。在这一过程中,会额外调用
「接口检索Agent」
来针对本次任务涉及的功能在CommonAds代码库中找寻
可复用的高质量接口
:
图10、接口检索Agent
图11、接口检索Agent返回结果
完成上述流程后,已经获得了:
详细的需求说明、完整的实现细节、可用的接口列表
,再
基于memory
中CommonAds的
编程知识、引擎黑话
等信息,「编码计划生成Agent」就可以产出一份详细、完整的编码计划:
图12、编码计划文档
产出的编码计划文档,其内容包括:
详细的功能说明、输出输出表的结构、具体完整的执行步骤、可用接口列表、部分示例代码
。 再基于这份编码计划,通过
「代码生成Agent」
生成对应的业务代码。
图13、代码生成Agent
图14、生成的python结果代码
图15、生成的c++结果代码
完成业务代码生成后,通过
「单测生成Agent」
产出对应的单测。并通过调用
「覆盖率验证工具」
的方式给大模型提供
「尝试-验证-纠错」
的空间,以
持续修复代码逻辑和提升单测覆盖率
,保证了代码生成的质量。如下所示:
图16、生成的c++单测文件
图17、单测及覆盖率优化流程示例
图18、单测及覆盖率优化执行结果
完成上述流程后,进入提交代码CR前的最后一步:代码验证环节。通过
「代码验证Agent」
对于不符合CommonAds代码库入库要求的代码自动进行
代码拆分优化、统一代码风格
等处理,此时代码质量基本处于可入库的状态,即可进入人工CR环节。
图19、代码验证Agent执行结果
3. 最终效果:
✅ 代码风格与编程规范完全对齐CommonAds代码库
✅ 正确复用代码库中已有的高质量接口,避免重复造轮子
✅ 函数设计合理,保持细粒度。同时注释完整
✅ 单测风格统一,覆盖率高,有效验证各种场景的正确性和鲁棒性
✅ 除需求细节确认外,基本全流程自动化,用户介入少
六、未来展望:夯实AI-Friendly基础,延伸AI研发的“左右两端”
在夯实当前AI Coding能力的基础上,我们正从思路延伸与基础巩固两个维度同步推进,以构建更完整、更智能、更可持续的下一代研发体系。具体来说:
思路延伸: 致力于实现端到端智能研发(需求 → 可实验分支)的完整研发流程,持续完善各类规范、建设优化编码知识库、打通需求到部署的全流程自动化,并基于用户反馈持续迭代代码生成效果。
基础巩固: 针对CommonAds代码库中部分历史代码可读性不足、耦合度高的问题,我们将采取“架构师主导、AI执行”的人机协同模式,通过批量重构核心支撑层来提升代码的可读性与易用性,并持续丰富知识库内容,使引擎代码更易于被AI理解与使用。