AI在实际生成环境中的提效实践


                                                                                                                                                <span id="OSC_h4_1"></span> 

导读

随着AI时代的到来,各类AI工具层出不穷,业界都在探索一套完整的AI加成的提效方案,我们团队基于自身特色,利用起团队沉淀好的历史知识库,落地了一套深度结合AI的工作流,用AI武装研发团队,实现研发效率的提升。

背景

  • 各类AI研发工具层出不穷,很多现成工具可使用,业界都在探索一套完整的AI加成的提效方案

  • 团队内部规范文档完备,但是没有融入开发流程中

  • Code review、研发自测、接口文档更新消耗大量时间

目标

1. 拥抱AI时代,让团队更先进

2. 用AI武装研发团队,通过资源的配合与协调,实现研发效率的提升。

思路

1. 拆分研发流程,并找到AI结合点,并将其串联起来。

2. 深度探索AI IDE,得出最佳实践。

3. 利用起团队的知识库,为AI提供辅助能力。

定位

1. 这是一个锚点,自此开始团队研发流程向AI化转变。

2. 这是一个开始,带动团队与其他同学review当前研发流程,共建更多研发工作流。

01 研发链路

对研发链路进行拆解,得到不同阶段的AI工作流形态,并基于当前形态向下一形态进行推进。

图片

当前我们团队正处于阶段1接近完成,阶段2正在开始探索实践的阶段,因此下面我们会基于我们团队在这些方面的实践进行分享。

原本研发链路:

图片

AI加持研发流程:

图片

AI 工作流

对上面涉及到的AI工作流进行补充说明

AI-Cafes:AI生成需求文档,制作产品原型图,节省产品人天。

AI-Docs:需求文档转技术文档,节省研发梳理过程,节省研发人天。

AI-DocsCoding:基于技术文档,生成基础无业务逻辑代码,节省研发人天。

AI-Coding:基于团队内部代码规范生成代码,减少返工和代码理解成本,深度提高研发效率,节省研发人天。

AI-API:基于MCP Server打通接口文档,避免api文档/技术文档更新不及时,节省研发人天。

AI-CR:基于Rules,进行AI Code Review,节省研发人天。

AI-Develops:AI赋能测试、验证、监控环节,节省测试人天。

02 需求阶段

AI-CafeDocs

在原本的工作流中,在需求评审过后,研发同学通常需要至少0.5d的人力进行技术文档的落地,以及api接口的准备。

但是这一步中的大部分工作是重复的,可替代的,可节省的。

因此我们实现了了_需求文档 -> aisuda(百度的低代码平台)-> 大模型 -> 技术文档(markdown)_的工作流。

在微调好大模型之后,我们只需要以下两步就能完成技术文档+api接口准备的工作:

1. 投喂需求文档给大模型,得到初版技术文档。

2. 人工check技术文档。

在快速生成了技术文档后,后端再和前端进行沟通,根据细节进行修改具体实现。

AI-DocsCoding

在得到技术文档之后,我们下一步要做的则是落地。不得不承认,我们的工作中无可避免的会存在一些基础的CRUD环节,这是正常的,也是重复的,可替代的,可节省的。

因此,基于以上的 AI-CafeDocs环节,我们进行了进一步的延伸,实现了_技术文档 -> MCP Server -> AI IDE_ 的工作流

我们通过MCP打通了内部的知识库,使得AI能够阅读到需求文档和技术文档,了解上下文,并进行对应的开发工作。

当然,AI全流程开发只是一种理想的状态,就当前而言,AI-DocsCoding写出来的代码并不是完全可用的,在涉及到的业务逻辑越复杂时,代码的正确性就越低。

但是不要紧,我们在设计这个流程的时候,就早有准备。

还记得我们强调的一点:让AI取代重复的,可替代的,可节省的工作,那么正确的流程为:

1. AI通过MCP阅读需求文档、技术文档,生成本次功能的基础代码——除却业务逻辑之外的参数处理、数据处理的CRUD代码。

2. 人工补全核心的业务逻辑处理,人也只需要关心真正的业务逻辑,这些事AI无法替代的。

可以看到,在以上的两个工作流里,人的角色从执行者,变成了驱动者/观察者,或者说产品经理。

我们通过**向AI提出需求,监督AI工作,验收AI工作结果**的方式进行工作。

03 开发阶段

AI-Coding

AI-Coding这一块主要围绕 AI IDE的使用,现在市面上有很多的产品,比如Cursor、Comate、Trae等。其实在许多人看来,AI IDE的核心在于底层能够接入的模型,但是我觉得这不尽然,大模型的边界效应很强。

有些时候,我们对AI IDE的使用,还没有达到需要区分模型效果的地步。或者说,如果我们使用了世界上最好的模型,那我们是否就高枕无忧了,可以让AI全程进行Coding而不需要人为Review了

至少使用到今天为止,我们认为AI-Coding,还离不开人的关注,因此如何更好地使用AI进行Coding,是AI提效的必经之路。

合理使用Rule

AI IDE内,Rule是一个非常重要的环节,它是连接开发者意图与 AI 代码生成行为之间的关键桥梁

定义:Rule 的 核心目的是指导 AI 更准确地理解当前代码库的上下文、遵循特定的项目规范与编码标准、生成符合预期的代码,或辅助完成复杂的工作流程。Cursor 官方文档将其描述为“控制 Agent 模型行为的可复用、有作用域的指令”。

作用:大型语言模型(LLMs)本身在多次交互之间通常不具备持久记忆。Rule 通过在每次 AI 请求的提示词(prompt)层面提供持久化、可复用的上下文信息,有效解决了这一问题。当一个规则被应用时,其内容会被包含在模型上下文的起始部分,从而为 AI 的代码生成、编辑解释或工作流辅助提供稳定且一致的指导。

上面有一个非常重要的点,那就是所有的rule在使用的过程中,都会占用我们上下文的token,因此如何更好的使用Rule,是提升AICoding能力的关键。

基于我们的实践,我们建议将 AI IDE 的rule进行层级划分:

第一层:IDE全局层 (User Rules)

  • 位置:User Rules

  • 范围:所有项目通用

  • 内容:个人编码风格偏好

  • 限制:50行以内

第二层:项目基础层 (Always Rules)

  • 位置:.xx/rules/always/

  • 范围:整个项目强制遵循

  • 内容:技术栈、核心原则、基础规范

  • 限制:100行以内

第三层:自动匹配层 (Auto Rules)

  • 位置:.xx/rules/auto/

  • 范围:特定文件类型或目录

  • 内容:模块专门的开发规范

  • 限制:每个规则200行以内

第四层:智能推荐层 (Agent Rules)

  • 位置:.xx/rules/agent/

  • 范围:AI根据对话内容智能判断

  • 内容:优化建议和最佳实践

  • 限制:每个规则150行以内

第五层:手动调用层 (Manual Rules)

  • 位置:.xx/rules/manual/

  • 范围:手动调用的代码模板

  • 内容:完整的项目或模块模板

  • 限制:每个规则300行以内

基于以上的划分,我们再给出对 已有/未有 Rule规范的代码库的 Rule 创建规则(语言不重要,以Go为例):

内容优化原则

  • 避免:

  • 详细代码示例(每个100+行)

  • 重复的概念解释

  • 推荐:

  • 简洁要点列表(每个20-30行)

  • 具体的操作指令

globs精确匹配

  • 避免:

  • 过于宽泛:"**/*.go"(匹配所有Go文件)

  • 推荐

  • 精确匹配:

    "internal/handler/**/*.go"(只匹配处理器)

  • 精确匹配:

    "internal/repository/**/*.go"(只匹配仓储层)

  • 精确匹配:"**/*_test.go"(只匹配测试文件)

优先级设置详解

优先级数值范围:1-10,数值越高优先级越高

优先级使用策略

1. 基础规范用10:项目必须遵循的核心规范

2. 核心模块用8-9:handler、service、repository等主要模块

3. 辅助模块用6-7:middleware、config、utils等辅助模块

4. 优化建议用5:性能优化、最佳实践等智能建议

5. 模板参考用3-4:代码模板、脚手架等参考资料

6. 实验功能用1-2:测试中的新规范,避免影响稳定功能

冲突解决机制

  • 当多个规则应用于同一文件时,高优先级规则会覆盖低优先级规则的冲突部分

  • 相同优先级规则按文件名字母顺序加载

  • Always规则始终优先于所有其他类型规则

Rule 的核心价值在于它 ****为开发者提供了一种机制,用以精细化控制 AI 在代码理解、生成、重构等环节 ****的行为。

通过预设规则,开发者可以将项目规范、编码标准、技术选型乃至特定业务逻辑“教授”给 AI,从而显著提升 AI 辅助编程的效率、保证代码质量的均一性,并确保项目整体的规范性。

它使得 AI 从一个泛用的助手,转变为一个深度理解特定项目需求的“领域专家”。

记忆库

基于Rule的运用,我们通过memory bank + rule生成专属业务研发助手

在AICoding的使用中,有一种常见的痛点场景,就是在复杂的项目中,AI无法感知到整个项目的历史上下文,即便是有Codebase的存在,也对业务逻辑是一知半解

在我们实践的过程中,引入了记忆库的模式,深化AI对项目的理解和记忆,使得每一次需求迭代的上下文都被记录下来。

生成了memorybank后,我们可以随时通过对话查看项目大纲和内容,并且每一次重新进入开发,不会丢失之前的记忆。

这种模式,其实就是Rules的一种应用,它把上下文总结在代码库的制定位置,强制AI在每次进入时会阅读上下文,回到上一次Coding的状态,对于解决上下文丢失的问题有非常大的帮助。

这里可能有人会问,记忆库和IDE本身的长期记忆功能有什么区别?

答:记忆库是公共的项目记忆库,IDE长期记忆是私人的IDE使用记忆

而记忆库的详细内容,这里不作详细分享,它只是一份提示词,感兴趣的同学只要简单搜索一下就能找到很多的资源。

MCP Server(重点)

MCP(Model Context Protocol),模型上下文协议,由Anthropic于24年11月提出,旨在为大语言模型和外部数据源、工具、服务提供统一的通信框架,标准化AI与真实世界的交互方式

MCP的核心架构包括三环:

  • Host主机:用户与AI互动的应用环境,如Claude Desktop、Cursor;

  • Client客户端:充当LLM和MCP server之间的桥梁,将用户查询指令、可用工具列表、工具调用结果发给LLM,将LLM需要使用的工具通过server执行调用;

  • Server服务器:轻量级服务节点,给予AI访问特定资源、调用工具能力的权限;目前已有数据库类(如SQLite、supabase)、工具类(如飞书多维表格)、应用类(如高德地图)服务器。是MCP架构中最为关键的组件。

图片

在开发中,我们可以接入以下几种MCPServer

1. 实时搜索,baidu/google/github/微博等

2. 存储,mysql/redis等

3. 工具,kubectl/yapi等

用法一:我们接入百度搜索的MCP

1. 搜索问题:在开发之余搜索一下 夜的命名术 是否完结。

2. 搜索知识点:在想知道Go1.24新特性时,通过MCP进行搜索,让AI进行总结。

3. 搜索用法:在想了解Linux的快捷命令时进行搜索。

以上这些场景,并非非MCP不可,非AI IDE不可,但是通过这样的方式,我们至少节省了切换到浏览器,搜索,自己总结结论,返回继续Coding这些步骤。

用法二:client里直接进行多client操作

1. Redis自然语言查询:

图片

2. MySQL自然语言查询:

图片

3. GCP自然语言查询:

图片

其他的client(kubectl等)我就不一一列举了,但是可以看到,当我们在我们的IDE内集成了各种各样的client后,开发效率能极大地提升。

当然,这里有两个关键点:

1. 接入mcpserver并不需要我们研究,我们只要把mcp server的链接丢给AI,它自己就能开始接入

2. 禁止在开发环境使用线上client账号密码

AI-API

相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。

其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了,更会出现之前的同学没有把接口文档交接清楚就离职,留下一个繁重复杂的项目,重新啃起来异常艰难,不亚于自己从头写一遍。

痛点

1. 重复劳动:每一个涉及到前后端的功能,研发都需要手动进行维护接口文档,在一些时候,接口最后和最开始的设定有可能大相径庭,每一次改动都是非常令人头疼的工作。

2. 低效沟通:前后端在沟通接口后,再进行对应的代码开发,其实是一件重复的,可替代的,可节省的工作。

为了解决这些痛点,通过引入 AI 自动化功能,搭建API MCP Server,帮我们解决这些冗杂的工作,让研发人力更多的集中在核心业务代码的开发上,提升代码开发效率、降低沟通成本。

这是我们一直畅想的场景,后端开发完代码 -> AI 推送接口文档 -> API文档自动更新 -> AI 拉取接口文档 -> 前端生成代码

也就是前后端的研发同学,只关注业务功能的实现,而不需要关注这些接口对接的繁琐工作。

Better Thinking

这是我想补充的两个使用AICoding的思想,也是我使用下来的一个感悟。

一:学会递归使用AI

场景:在IDE内布置MCP Server

通常的做法是:

1. 在MCP Server市场找到想用的MCP Server

2. 把配置部署好

3. 开始调试,完成后投入使用

递归式使用做法:

1. 在MCP Server市场找到想用的MCP Server

2. 把链接丢给AI,让它自己安装(递归)

3. 安装完后让它自己修改mcp.json的配置(递归)

4. 修改完成后让它自己调通(递归)

更进一步我们还可以:

1. @Web 让AI找一个可用的McpServer(递归)

2. …(递归)

3. …(递归)

4. …(递归)

二:把AI当成一个真正的工具

场景:写某篇文档的时候,我突然想要做一个Gif格式的图片示例。

已知:电脑支持录屏,但是我缺少视频转Gif格式的工具。

麻烦点:

1. 如果通过百度/Google搜索网页在线工具,非常麻烦,还要付费。

2. 如果通过内部的视频裁剪服务,还需要起服务来处理。

3. 如果通过剪映这样的工具,那还要下载一个软件。

以上这些点,都不算困难,但都相对麻烦,属于能做但是又要浪费一点精力

解决方案:

图片

理论上让AI写和让GPT/Deepseek写没什么区别,但是我们的操作步骤得到了以下简化:

图片

也就是说,我们在遇到很多**自己能做,但是又觉得麻烦,浪费精力的场景 以及 大部分的杂活**,都可以第一时间Ask Ourself,Can AI Do it?

包括但不限于:

  1. 捞数据

  2. 写文档

  3. 找bug

AI-Coding VS Original-Coding

图片

04 集成阶段

AI-CR

问题

1. 时间压力:团队每周可能需要审查数十个CR,高T同学需要审查的居多,每个 CR 的细节往往耗费大量时间。

2. 沟通低效:CR评论描述不清晰,开发者需要来回沟通确认修改点。

3. 重复劳动:相似的代码改动需要重复审查,难以专注关键问题。

为了解决这些痛点,通过引入 AI 自动化功能,提前规避一些基础问题,让CR人力更多的集中在关键问题上,提升代码审查效率、降低沟通成本。

解决方案

工作流

图片

05 运维阶段

AI-Develops

随着业务系统的复杂度不断增加,运维过程中产生的告警数量急剧增长,传统的人工处理方式已经无法满足快速响应的需求。

目前在我们来看,现有的运维体系存在了以下的弊端:

1. 告警存在非常厚的方向壁垒,不同方向的同学遇到另一个方向的告警时大都只能进行Case路由。

2. 告警存在非常厚的年限壁垒,团队不同年限的同学遇到Case的应对时间有可能天差地别。

一个点是否足够痛,决定了我们是都要优化。

在我们团队内,有丰富的case处理文档和记录,也有着应对问题经验非常丰富的同学,但是在值班同学遇到告警轰炸的时候,同样会焦头烂额。

回顾起告警处理的过程,其实大部分都是重复的,可替代的,可节省的工作,它们是有方法论的,并非遇到之后就手足无措。因此我们构建一个智能化的应急诊断系统,通过AI技术提升故障处理效率,减少平均故障修复时间(MTTR)。

图片

在这种模式下,AI可以自动捕捉消息,在遇到告警信息的时候自动分析给出结论,如果有AI无法解决的问题,才会轮到人工进行介入。

这种模式最大的优点在于:所有出现过的Case/已有的文档都会沉淀为AI的记忆和知识库,从今往后只会有新增的Case需要人来解决,存量全都会被AI拦截,换而言之,团队内多出了一个永远不会离开,且能够同时接受所有方向培养的AI运维人员

06 总结

以上就是我们百度国际化广告团队的AI提效实践,也希望这篇文章能作为一个锚点,带动所有看到这篇文章的同学review自己所在团队的工作流程,共建更多的AI加持工作流。

就如我上面说的,其实AI的用法很简单,它就是我们的助手,假如我们的工作中真的存在一些重复的,可替代的,可节省工作,那不妨把这些工作交给AI试试。

                                                                                </div>



Source link

未经允许不得转载:紫竹林-程序员中文网 » AI在实际生成环境中的提效实践

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
关于我们 免责申明 意见反馈 隐私政策
程序员中文网:公益在线网站,帮助学习者快速成长!
关注微信 技术交流
推荐文章
每天精选资源文章推送
推荐文章
随时随地碎片化学习
推荐文章
发现有趣的