微信扫码
添加专属顾问
我要投稿
AI技术如何重塑软件工程?揭秘蚂蚁集团从需求到代码的端到端自动化生成实践。 核心内容: 1. AI编程系统CodeFuse的"需求驱动型"开发模式创新 2. 应对复杂代码资产和业务理解的技术挑战与解决方案 3. 基于RAG和知识图谱的AICoding标准化工作流建设
一、业务背景
在AI技术重构软件工程范式的新阶段,大模型技术正推动编程模式从"工具辅助型"向"需求驱动型"的历史性跨越。我们期待未来蚂蚁安全与智能实验室所有提交到代码库的代码中,大部分是由codefuse自动生成的, 这就对codefuse在原有代码补全以及AI partner能力的基础上,提出了更高的要求,希望把codefuse按“AI需求执行者”的目标构建,让AI直接理解自然语言需求,自主完成需求解析、任务拆解、跨仓库的文件搜索、代码生成、相应测试代码生成等全流程动作。
二、目标 三、面临的主要挑战 a. 已有的复杂的代码资产
• 已有代码资产复杂性:已有的代码仓库都是规模达数十万行代码量级的,呈现典型"天书式"架构特征,包含大量废弃代码碎片、多版本逻辑共存的兼容方案及补丁式代码堆积,形成复杂的技术债网络。
• 智能解析瓶颈:目前的代码库,实证新入职开发人员在无资深导师指导下,难以独立读懂uctfront项目核心逻辑,而现有AI编程系统受限于代码表面特征统计,对跨文件依赖关系、隐式业务规则等深层逻辑的识别准确率不足。
b. 业务复杂,需求理解困难
安全业务背景知识庞杂,经历十几年的发展,很多业务规则散落,AI 只能基于现有代码统计规律,无法穿透代码表象理解业务语义, 自动对齐真实业务语义,产品功能,这就导致AI在需求理解时,模型不理解涉及到的业务背景知识,经常出现不理解“已有仓库文件”,以及无法找到需要修改的“已有代码文档”。
四、建设方案
针对以上两个问题,经过不断探索与实践,最终从以下几个模块实现最终的AICoding能力:
1. 建设框架 2. 扩充业务知识,增强模型能力
面对庞杂的业务代码内容以及复杂的业务背景知识,需要从安全业务wiki、安全代码wiki、通识wiki、需求wiki多维度结构化补充背景知识,支撑跨仓库、跨业务链路、跨技术栈等复杂场景的生码能力。
对于大模型不理解特有业务场景的问题,使用业界通用方案,RAG在线检索相关的业务语义文档做代码生成的增强上下文。但是使用RAG知识库召回数据过程,会存在以下问题:
【召回准确率低】
当前RAG知识检索能力,普遍存在的召回率低问题,采用以下方式去优化:
【支持库存储&检索耗时成本高】
为了增强用户体验,同时考虑到大规模数据存储的成本,从以下几个角度进行多维优化:
在实践过程中,发现现有知识库都是以markdown格式做初始召回文本,但这也会存在一个通用问题:在语义检索时只会命中md文档的某一个chunck块,导致召回结果完整性缺失。
针对此问题,使用知识图谱能力,基于“文件路径+仓库”节点索引标签,定向检索知识库召回文档,扩充wiki内容。
同时,考虑到知识图谱的存储召回耗时成本,简化图谱结构,仅保留必要的文档、仓库、bundle、需求、rpc、drm节点,剔除扩散比大的方法、属性等节点。最终在不降低语义质量前提下,将知识图谱规模从10亿+节点,简化到100万+节点。
除了RAG+知识图谱方式扩充背景知识外,模型自身的需求拆解和业务理解能力也需要不断增强。
在当前的强化学习训练过程中,我们主要面临数据质量的挑战,并已制定相应的改进思路与落地计划。
【训练集数据质量】
3. 标准化workflow,端到端生码
【问题】
【方案】
各模块说明# 模块名# **业务实体**| 实体 | 属性及类型<br/>(默认varchar类型) | 索引键 | 字段值说明 || --- | --- | --- | --- |### **领域功能**| 领域 | 领域服务 | 领域功能 | 功能描述 | 规则约束 || --- | --- | --- | --- | --- |### **应用服务**| 服务域 | 服务接口 | 服务方法 | 方法流程描述 | 校验约束 || --- | --- | --- | --- | --- |# 业务流程与状态机说明## 状态机说明### 实体名| 实体 | 当前状态 | 事件/操作 | 下一状态 | 校验约束 || --- | --- | --- | --- | --- |### 业务流程说明# 与其他bundle或系统的交互| 交互方 | 交互方式 | 触发时机 | 主要接口/消息 | pom信息 | 业务目的/说明 | 出入参说明 || --- | --- | --- | --- | --- | --- | --- |# 高可用相关能力| 能力 | 是否需要 | 待补充内容 || --- | --- | --- |
【问题】
众所周知,上下文描述越清楚,AI生码越准确。因此,对于一个完整的模块功能,哪怕是管理时任务,也会有很很多业务细节需要实现。当把这些内容直接全部给大模型生码时,经常会出现超token,或者业务细节实现不符合预期的问题。
因此,提供供给模型生码的需求,内容越简单,功能越原子化越好。但是拆解后的子需求越简单,意味着子需求个数越多。在拆解时,需要合理定义需求的原子性和复杂度,最终需要在需求复杂度和个数之间找到平衡点,实现需求个数较少,生码质量又要相对较高。
【方案】
拆解后需求结构(e.g):
【问题】
【方案】
利用模型和codefuse具有的仓库索引能力,增加通用指令,以现有仓储具体场景为例,初始化生码规范(.project_rule),实现不同仓库的架构兼容规范。并在后续生码过程中将该规范内容作为生码上下文约束内容。例如以下是针对实际生产itask仓库自动生成的项目规范:
Q:为什么不按照纵向分模块拆分生码,而是横向分层生码
A:
1. 在系分和需求拆解阶段,已经按照模块拆分,且根据模块间依赖问题,排序生码子任务。
2. 考虑到流程规范性,约束按照mvc分层生码,不仅能避免模块生码过程,模型偶尔丢失controller层代码问题,也能避免不同接口依赖同一个表或者接口、方法,导致merge冲突问题。
【问题】
【方案】
【问题】
以管理时ai生码为例,从prd生码,哪怕是单一需求模块,也需要同时覆盖crud多个能力,mvc多层代码,开发人员cr过程无法一行行check代码,直接采纳对模型信任度还不够,风险高。
【方案】
通过自定义prompt,固化需求实现效果总结指令,从变更代码结构、功能覆盖范围、稳定性需求、代码实现方案等多维度总结,降低cr难度。
4. 评测与数据更新,持续增强能力
【评测重点】
五、建设进展 1. 通过AIcoding编码实际使用情况
CodeFuse 用户提交代码 AI 占比:43.25% | 全部提交代码AI占比:36.01% |
2. 生产实践效果
项目背景:通过需求单管理模块,管理业务方的审理需求,更好地串联生产用工流程
功能说明:需求单及版本的创建、编辑、审批、上线流程,支持草稿-审批-上线的状态流转,以及每月自动触发任务量级确认与通知。
AI生码效果:AI生码近20000行,按照仓库的数据访问规范dal/repository/service/controller,实现原始系分文档->标准化系分文档->任务拆解->codefuse生码的全过程
项目背景:探索大模型在质量域的提效方式之一,助力质量团队在UI自动化上达到快速编写和调试,自动保鲜提升稳定性等能力提升。为减少用户学习成本,且支持后续公开的快速扩展,采用智能体集成的方式建设智能UI助手。
功能说明:
AI生码效果:AI生码3000+行,,代码采纳率70%+,按照仓库结构规范,实现由prd开始的端到端生码。
目标:针对相对固定的研发范式,从面向人的编码转换成面向智能体的编码,定制化指令,增强需求生码能力。实现熔断接入/压测接入/班车接入/流量接入 等场景的AICoding生码,一键接入二方包。用户只需编写剩余业务逻辑部分。
效果:已实现在风控系统中,自动接入熔断二方包。
六、下一步规划 1、目前面临的问题:
2、应对方案:
3、持续能力增强
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-01-24
我把新版Claude Code的上手门槛降到小学二年级,有豆包就行
2026-01-24
Claude Code加 Pencil,AI又把设计师干掉了?!
2026-01-24
刚刚,Anthropic分享了他们押注Claude Skills的底层逻辑
2026-01-24
MCP、Skills、SubAgent 到底是啥?简单捋一下
2026-01-24
LLM推理框架:11 款主流大模型推理引擎汇总
2026-01-24
从规则堆砌到价值内化:深度解读 Anthropic 发布的 Claude 新宪法
2026-01-24
构建 Claude Skill 实现知识提取与报告生成
2026-01-24
Pencil:设计和写代码,以后就全让AI干了
2026-01-10
2025-11-19
2025-11-13
2025-11-03
2026-01-01
2025-12-09
2025-11-12
2025-11-21
2025-11-15
2025-10-28
2026-01-23
2026-01-23
2026-01-22
2026-01-22
2026-01-21
2026-01-21
2026-01-12
2026-01-12