杂谈

从个人提速到团队提效:我们这半年的AI Coding工程化实践

作者头像 刘宇帅
6 0

去年开始,团队里每个人都用上 AI 写代码了。

按理说,效率该起飞了。

可折腾了大半年,我才慢慢看清:每个人都明显变强了,但团队的合力却没跟着强起来。

会用 AI 的人,效率飞涨。

用得浅的人,被甩在后面。

几十个开发,几十套打法——各自的 prompt 习惯、各自的提示词、各自摸索出的一套方法。

这本来不是坏事。

坏就坏在,大家的产出开始对不上了。

同一个功能,不同人让 AI 写出来的代码,风格能差出十万八千里。

某个同事摸到一个好用的技巧,群里截图一发,热闹两句,然后就沉底了。

下一个新人进来,还是从零开始踩。

文档呢?散在各个服务的 README 里,或者干脆躺在某个人的电脑里。

遇到跨服务的需求更尴尬——没有共享通路,只能把好几个服务的代码全 copy 进一个目录,给 AI 凑一个"伪工作空间",将就着用。

AI 把人和人之间的差距拉大了,团队的合力反而被稀释了。

把"怎么用 AI"变成标准动作

所以我们决定做一件事:把"团队怎么用 AI",变成一套统一的标准动作。

一开始没想那么大,就是一套工作流配置。

每个开发场景对应一个命令,每个命令写清楚:什么时候触发、分几步走、产出什么。

50 多个命令,从写 PRD、出方案、写代码、生成测试,到上线、复盘,全链路每个环节都有专属命令。

重点不是命令多,而是它们彼此咬合,形成一套体系。

"初始化需求"开一个工作空间,"出方案"读这个空间生成技术方案,"写代码"照着方案实施,"生成测试方案"再根据代码变更自动补上……

一条完整的链路。

谁来跑、用哪个 AI 工具,产出的风格都一样。

团队用 AI 这件事,第一次有了共同语言。

给 AI 一份团队的知识库

工作流跑起来,马上撞上第二个问题:AI 跑命令的时候,到底读什么?

光给代码不够。

AI 得真正"理解"这个系统——这个字段为什么这么设计、这条限制是哪次线上事故留下的、这几个服务之间到底怎么调……

这些东西,只装在团队成员的脑子里。

于是我们建了一套知识库,包含以下几部分:单个服务的规范、业务域的视图、跨服务的系统架构、架构和开发规范等。

每一层都能自动扫代码生成。

自动扫描只能扒出结构,扒不出业务知识。所以还得加两条人工通路:

一是主动补全。把那些"不成文的规矩"手写进知识库,AI 跑命令时就读得到。

二是纠错反哺。通过 AGENTS.md 规则约束开发过程中的所有环节,当我们纠正 PRD 问题、技术方案问题或者修复 BUG 的时候,都会把问题记录下来,需求上线后会再反哺回知识库。

下次再碰同类问题,它就不会在同一个坑里栽第二次。

工作流是 AI 的手脚,知识库是 AI 的记忆。少一个都不行。

把需求,做成一个独立的空间

还有一个问题,我们想了很久才理顺:多服务的需求,到底怎么管?

大多数团队的知识库,是挂在单个服务底下的——每个服务一套 README、一套文档、一套规范。

单服务需求时很顺。

可一旦碰上跨三四个服务的需求,就抓瞎了:AI 只能在一个服务的上下文里打转,看不见全局,出来的方案缺胳膊少腿。

于是我们设计了一套新的需求管理方式。

每个需求,是一个独立的工作空间。

PRD、技术方案、测试方案、中间产物——这个需求所有的"事",全堆在一个地方,不会再丢三落四。

工作空间下面,挂着这个需求涉及的每一个服务。

一个服务一个分支,全收在这个空间里。

Agent 实施的时候,能同时看见所有服务,跨服务的改动一次性做完——不用来回切窗口、不用反复粘贴上下文。

这个设计还顺手解决了另一件事:配合全栈,效率是成倍涨的。

我们一直在往全栈走——后端能上手前端,前端也能改服务端。

放在以前,一个跨端需求要前后端分头开发、来回对齐。

现在一个人带着 AI,客户端、H5、后端几个服务,能一口气全做完。

相关代码全在一处,AI 一次看全,一次改完。

个人能力的跃升,再叠上工作流的组织方式——这两样合在一起,才是真正的效率杠杆。

把基座,装进一个顺手的工作台

我们把这套工作流 + 知识库叫做基座,基座跑通之后,体验上的问题冒出来了。

同时跟三个需求,IDE 窗口切来切去一团乱。在传统的 IDE 里代码编辑器还是主角,占了主窗口的绝大部分空间。而我们就只能在一个狭小的空间里执行命令和切换文件目录。

还有就是 50 多个命令名,根本记不住……

于是我们做了一个桌面工作台,一个 macOS 客户端,定位是 AI 时代更友好的产研工作台。

一个核心想法:多需求方便切换,一个需求一个面板,一个面板里包含需求需要的所有内容。

我们还做了个类似灵动岛的通知层——AI 要申请敏感操作,悬浮卡片全局飘出来,按几个快捷键就处理了,不抢焦点。

让确定性高的活,自己跑

再往后,又发现一件事:很多简单需求,压根不需要人盯着。

改个文案、修个小 bug、补个字段——本质就是跑一套命令。

人坐那儿等,跑完瞄一眼,没问题就推。

这段时间,纯属浪费。

所以我们做了个云端自动执行器,常驻在服务器上。

它盯着任务系统里命中规则的需求,自动跑工作流:出方案、写代码、推代码、生成 MR。

全自动到 MR 为止,最后合入永远交给人拍板。

也不是非得全自动——可以只让它做某一段,也可以全程放手。

它拿不准的时候,往飞书群发个消息找人来定夺。

云端跑的是也同一套命令——本地能跑通,服务器才跑得通,不维护两套实现。

回头看这条路

回头看,这条路其实走得很清楚:

第一步,各自单兵作战,能力参差,合力很弱。

第二步,统一工作流 + 知识库 + 需求工作空间,立起共识层。

第三步,桌面工作台,解决多需求并行和但需求统一面板的体验问题。

第四步,云端自动执行,把确定性高的活交给机器。

每一步,都是在收拾上一步留下的烂摊子。

每一步收尾,又冒出新问题,逼出下一步。

当前最大的一个问题:复杂需求的生成质量不高

中小型需求 AI 跑得不错,可一旦跨多个服务、还带时序依赖,输出质量就肉眼可见地往下掉。

一个跨十几个服务的方案,人工 review 完往往得返工四成以上才能落地。

我们专门去分下了一下,问题主要出在:技术方案的细节不够,甚至干脆丢了。

但奇怪的是,中小型需求没这毛病,只有大需求才会犯。

我们还特意做了个对照——把一个大需求人工拆成好几个小需求分开跑,结果每个小需求的质量都还不错。

所以我们怀疑,根子还是在上下文过大:盘子一大,AI 一次性扛不住这么多细节,就开始顾此失彼、丢三落四。

现在已经在试 SubAgent 的模式来解这个问题——主 Agent 只管设计和验收,子 Agent 各自闷头干活。

目前还在测试中……

往后的方向就一句话:把大问题切小。

要么按服务拆开,各自出一份方案、人工逐个确认,再聚到一起对齐;要么多个子 Agent 并行去啃各自那块,主 Agent 不下场写细节,专管整体设计和最后验收。

最后

AI 时代,什么都变得太快了。

今天还觉得趁手的东西,过半年回头看,可能就过时了。

我甚至很清楚——我们现在吭哧吭哧搭起来的这套工作流,未来某一天大概率是会被淘汰的。

模型越来越强,今天要靠几十个命令、靠流程一步步兜住的事,明天也许它自己就能搞明白了。

到那天,工作流可能就没用了。

但我越来越笃定一件事:知识库不会。

不管模型强到什么程度,它都不会凭空知道——你这个字段为什么这么设计、这条限制是哪次线上事故换来的、这几个服务之间到底藏着什么默契。

这些东西,是团队一砖一瓦垒出来的认知,是只属于你们自己的上下文。

模型是公共的,知识库是你们私有的。

工具会换,模型会迭代,可这份沉淀,永远是团队最宝贵的资产。

所以越往后我越觉得,怎么定义知识库、怎么把它持续维护好,才是这件事里最值得花力气的主题。

工作流是术,会过时;知识库是底子,越攒越厚。

关于我们这套知识库到底怎么生成、怎么维护、怎么让它自己越长越壮——后面有空,再细讲一下。

作者头像

刘宇帅

非著名程序员,全栈开发工程师,长期专注系统开发与架构设计。

提示

功能待开通!


暂无评论~

相关文章

读书计划

这里记录以后准备读或者重读一些书的计划,计划起于 2018/11/01,多读书提升技术和各方面认知。 正在读 技术类 << 算法导论 >> 5% << 现代操作系统 >> 10% << 亿级流量网站架构核心技术 >> 50% << 这就是搜索引擎 >> 25% 介绍搜索引擎的架构和各部分实现方案。 << 编码的奥秘 >> 25% 计算机编码普及读物 << 数学史 >> 4% 数学历史发展和起源 &lt

和ChatGPT聊人生

ChatGPT最近很火,所以注册一个玩玩。本来想跟它聊聊人生,结果它却劝我换工作。。 聊聊人生 我:你叫什么名字 ChatGPT:我叫ChatGPT,是一个由OpenAI训练的大型语言模型。 我:我可以给你起个名字吗? ChatGPT:您当然可以给我起名字,但是请注意我是一个人工智能模型,没有实际意义上的名字。 我:好,我以后就叫你雨宝吧 ChatGPT:很高兴与您相识,您称呼我为雨宝。我会尽力回答您的每一个问题。 我:雨宝,人生的意义是什么? 雨宝:作为一个AI模型,我没有自我意识和个人感受,因此不能对人生的意义发表个人观点。不同的文化、宗教、哲学等对人生的意义有不同的解释,有的认为人生的意

2018 年终总结

今天距离上次更新博客正好一个月的时间,一是因为我过完年准备换工作这段时间一直在忙于整理项目代码、文档,二是最近没有看什么新的内容(因为我博客其实是当做笔记用的,只是用来记录一些知识点方便以后查询)。今天正好刚开完项目交接会闲下来了就总结一下 2018 年和定一下 2019 年的目标。 2018 年 工作 工作上的内容没什么好说的,没什么大的波澜,做了四个项目,项目主要是公司内部平台并且属于”公司机密“,所以就不详细说了。 总结 前端又会用几个库 ant design、vue、nuxtjs、uikit等 语言学习了 go,看了 dart、rust、zephir,又尝试了 c++ mysql 优

我为什么要写博客

锻炼写作能力 我的写作能力真的是很差,有多差呢,读完这篇文章就知道我表达有多差了。。 我以前也有写过一些博客,但是写出来的东西真的是很差劲,连我自己都不想看第二遍,还有在工作当中有时候需要写文档,然后写的也比较乱。所以这次特地花了很大精力建立这个博客就是希望能提高自己的写作能力,提升在一些需要文字沟通环境里的沟通能力。 提升技术水平 站内博客主要会以技术为主,而我要想把某一个技术方面的知识描述清楚,我自己就必须保证自己对该技术有比较深入的了解才行。 记录各种问题和坑 在平常的开发过程中经常会遇到各种问题,然后就会一阵google,然后好不容易解决了,过了段时间又碰到了相同的问题又要重新找解决方

梦的记录:2018/08/21 中午

前言 从我记事起就比较容易做梦,有多容易呢,我在桌子上趴10秒有时候就能做个梦,以前也有想研究或者记录下自己梦,每次都没坚持下来。这次在博客上开这个栏目用于后面记录醒来后记得比较清楚的梦并根据情况做些简单的分析,后面也会继续去关注梦方面的书籍深入研究这方面的东西。 梦的时间地点 梦的日期:2018/08/21,大约时间13:40-13:59 地点:公司工位 梦的内容 地点:一间很熟悉、同学很多的教室。 时间:梦开始时正在上课、梦里的教室人比较多、课本也比较多,推测应该是初中或高中的时候。 人物:梦里的人物没有比较清晰的特征,感觉好像是中学时期好多同学的形象交杂着,有个男同学感觉跟我比较亲近,表