一种AI自动化开发方法及系统与流程
本技术涉及软件工程自动化的,尤其是涉及一种ai自动化开发方法及系统。
背景技术:
1、如图1所示,现有企业软件研发通常依赖项目管理系统、代码仓库、持续集成平台、测试环境、人工开发人员以及若干ai编码工具共同完成。以需求或缺陷开发为例,开发人员通常需要从禅道、jira、oa等项目管理系统读取需求内容和验收标准,判断涉及的产品线、代码分支、代码仓库、测试环境和生产环境,手工拉取多个代码仓库并准备本地、容器或虚拟机工作区,再将需求信息、环境地址、账号密码、附件截图等上下文复制给ai编码工具。ai完成代码修改后,还需要人工检查变更、整理变更日志、创建测试分支或生产分支mergerequest(mr),再回到项目管理系统或任务看板更新状态。
2、上述方案在复杂企业系统中存在以下不足:
3、1、任务上下文难以结构化传递。需求正文、验收标准、附件、分支、访问地址、登录账号、仓库清单和模型选择分散在不同系统中,ai工具往往只能获得片段化信息,容易出现实现偏差、遗漏验收点或误改无关代码。
4、2、多仓库和多环境准备成本高。一个业务需求可能同时涉及前端、多个后端、移动端等多个git仓库,并且不同产品、不同的客户定制版本对应不同配置文件和测试环境地址。现有方式主要依赖人工拉取、切分支、改配置,容易因仓库遗漏、分支错误或配置不一致导致开发环境不可用。
5、3、ai开发过程缺少工程化编排。通用ai编码工具偏向本地单次交互,缺少与jenkins、gitlab、任务阶段表、模型配置、skill/mcp配置的统一联动,难以形成从任务触发到结果回传的自动化流水线。
6、4、测试mr和生产mr处理仍依赖人工。开发完成后,人工创建mr、判断是否可合并、处理冲突、记录mr地址和提交地址,效率低且可追溯性差;对于多仓库任务,人工很难准确维护每个仓库的执行结果。
7、5、执行环境选择缺少自动化策略。现有方案通常由人工判断和分配环境,容易出现轻量任务占用重环境、复杂任务运行能力不足或环境回收不及时的问题。
8、6、配置和能力包难以集中同步。不同ai客户端或编码工具(如codex、claude、opencode)需要不同的skill、mcp和本地配置文件,现有方案通常靠人工复制,导致团队成员能力版本不一致。
技术实现思路
1、为了将任务管理、需求抽取、工作区初始化、ai开发、模型和能力配置、mr流转、执行日志、差异结果、环境清理等环节统一编排,并通过回调机制形成可追踪、可恢复、可扩展的自动化开发闭环,本技术提供一种ai自动化开发方法及系统。
2、第一方面,本技术提供一种ai自动化开发方法,采用如下的技术方案:
3、一种ai自动化开发方法,包括以下步骤:
4、获取待处理的研发任务;
5、为所述研发任务生成包含预设多阶段的阶段化状态机,所述阶段化状态机记录各阶段的状态、执行参数及资源标识;
6、基于所述阶段化状态机的流转规则,依次触发执行各阶段操作,包括:生成ai可读的标准化需求上下文、初始化对应多仓库工作区、调度适配的开发环境模式、编排ai编码代理执行开发任务、自动处理多仓库合并请求;
7、基于所述研发任务对应的开发环境模式执行对应清理操作,更新所述阶段化状态机记录完成研发闭环。
8、在其中的一些实施例中,所述阶段化状态机包含的阶段依次为环境初始化、ai开发、生产mr、测试mr、清理环境;
9、每个所述阶段的状态包括pending、running、done、error、terminated中的至少一种,所述状态用于使任务中心解析当前阶段,并限制不符合条件的重复触发或越级触发;
10、各阶段的执行结果通过回调接口同步至所述任务中心,以根据所述执行结果更新所述阶段化状态机的对应字段。
11、在其中的一些实施例中,在所述环境初始化阶段,生成ai可读的标准化需求上下文,包括:
12、基于所述研发任务获取多维度需求信息并生成问题描述文档以作为标准化需求上下文并写入工作区,所述问题描述文档中包含需求描述、验收标准、附件路径、环境地址、账号信息、仓库清单、执行约束。
13、在其中的一些实施例中,在所述环境初始化阶段,初始化对应多仓库工作区的步骤包括:
14、基于所述研发任务所属的产品查询源码仓库配置,确定需要拉取的仓库名称、仓库地址、默认分支和前端/后端标识,并发拉取多个git仓库;
15、根据任务分支规则替换指定仓库的目标分支;
16、针对前端任务,自动修改前端配置文件中的测试代理地址。
17、在其中的一些实施例中,在所述环境初始化阶段,调度适配的开发环境模式,包括以下步骤:
18、根据所述研发任务的复杂度参数选择k8s容器模式或虚拟机模式,创建或分配对应开发环境并记录资源标识;
19、所述复杂度参数包括任务预计运行时长、是否需要图形调试、是否需要多服务联调、是否需要持续热更新中的至少一种;
20、当所述复杂度参数满足预设阈值时选择虚拟机模式,分配预置虚拟机,准备远程工作目录、浏览器调试能力、前端实时编译端口与对应配置;
21、否则选择k8s容器模式,调用kubernetes自动创建临时pod或容器,写入工作区与环境变量。
22、在其中的一些实施例中,在所述ai开发阶段,编排ai编码代理执行开发任务,包括以下步骤:
23、获取用户选择的全量ai开发模式或增量ai开发模式,并触发jenkins作业;
24、jenkins作业将作业参数传递至编码代理,所述编码代理在准备好的所述工作区内读取所述问题描述文档并能力配置,并在所述工作区执行代码检索、修改、构建或验证,并生成回传信息。
25、在其中的一些实施例中,在进行编排ai编码代理执行开发任务之前,还包括:
26、将集中维护的ai能力配置同步至所述编码代理,所述ai能力配置包括skill、mcp、ai客户端配置文件中的至少一种;
27、其中,同步方式包括命令行拉取、常驻进程同步、消息队列推送、git仓库分发中的至少一种。
28、在其中的一些实施例中,所述生产mr阶段和所述测试mr阶段中,自动处理多仓库合并请求包括以下步骤:
29、遍历工作区下的多个所述git仓库,基于任务编号校验提交归属,自动创建对应mr请求并记录每个所述git仓库的执行结果;
30、检查所述mr请求是否存在冲突,对无冲突的所述mr请求执行自动合并,对存在冲突的所述mr请求记录冲突信息并更新所述阶段化状态机;
31、其中,针对生产分支下的所述mr请求,仅对存在代码变更的仓库生成合并请求。
32、在其中的一些实施例中,基于所述研发任务对应的开发环境模式执行对应清理操作,包括以下步骤:
33、若为k8s容器模式,根据所述资源标识删除该所述研发任务对应的pod、容器、服务暴露和临时卷;
34、若为虚拟机模式,链接对应虚拟机以停止该所述研发任务对应的运行进程,并按照预设回收策略删除、归档或保留任务工作目录。
35、第二方面,本技术提供一种ai自动化开发系统,采用如下的技术方案:
36、一种ai自动化开发系统,其特征在于,用于实现如权利要求1-9中任意一项所述的方法。
37、通过本技术实施例提供的技术方案,存在以下技术效果:
38、1、提高ai开发准确性。系统将任务需求、验收标准、附件、分支、仓库、环境地址、登录账号和项目规则整理为标准化上下文,减少ai因信息不完整导致的误解和遗漏。
39、2、降低工作区准备成本。系统可按产品和分支自动确定仓库清单,并发拉取多个仓库,生成环境变量和配置文件,避免人工逐一拉取、切分支和改配置。
40、3、实现阶段化可追踪。每个任务均具有统一阶段状态机,初始化、ai开发、生产mr、测试mr和清理环境均可显示状态、进度、日志、diff和结果,使研发管理人员能够直接在任务中心查看全流程。
41、4、减少mr人工操作。系统自动遍历多仓库、创建测试mr或生产mr、检查冲突、记录提交地址和mr地址,并将每个仓库结果写入明细表,提高多仓库任务的交付效率和可追溯性。
42、5、支持增量迭代。任务完成一次ai开发后,可继续提交增量需求和参考图片,系统保留增量历史并触发后续ai开发,适合真实业务中多轮验收和补充修改。
43、6、统一ai能力配置。通过skill、mcp和cli配置集中管理与同步,保证不同开发人员、不同ai客户端使用一致的能力包、规则和工具配置,降低团队协作成本。
44、7、降低流程耦合风险。jenkins负责执行,任务中心负责状态和数据,执行客户端负责本地工作区与外部系统交互,各组件通过参数和回调接口解耦,便于扩展新的ai模型、代码仓库、项目管理系统或部署环境。
45、8、增强安全和权限控制。系统通过用户角色、负责人可见范围、开发服务器配置和任务阶段校验限制操作范围,减少误触发、越权查看和重复执行风险。
46、9、复杂功能ai开发使用虚拟机服务器,可复用浏览器调试、热更新服务、依赖缓存和多服务联调环境,减少ai执行过程中的环境准备时间和中断成本;简单功能使用docker容器机制,可按需创建、快速启动、自动销毁,避免长期占用虚拟机资源,在保障交付效率的同时节省服务器资源。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com