首页 › Skills专栏 › SKills 可复用工作流

SKills 可复用工作流

1.1 复用​

中台一词,常常出现在各种软件架构的设计中,其核心理念用两个字就可以概括:复用,即把相同功能抽离出来,减少重复建设,如下图:​

​

飞书文档 - 图片

​

软件开发的整个过程等于所有Prompt的总和​

​

飞书文档 - 图片

​

回答一个问题:什么是Skills?答:公共的Prompt就是Skills!​

​

​

​

飞书文档 - 图片

​

56%

​

​

​

飞书文档 - 图片

​

44%

​

​

​

1.2 Skills设计思路​

​

💡

具体搞个分级缓存,当输入Prompt的时候,不要带上全量的Skills信息,而是最基本的元信息,AI会按照语意进行匹配,匹配到了才会加载实际的内容,这就是渐进式加载,官方叫:渐进式披露,如下图所示:​

​

​

飞书文档 - 图片

​

1.3 经验沉淀​

经验可以沉淀,这不仅对个人,对团队来说,作用也巨大,它实现了“经验”的低成本共享,个人经验将会以Skills的形式快速的在团队内传播,团队的整体战斗力也随之迈上了一个新的台阶。​

​

飞书文档 - 图片

​

最激动的是:当Skills的数量达到一定规模时,其实我们就相当搭建了一个专门给AI用的技能商店,可以自动匹配Skills库,让复杂问题通过基础Skills组合得到解决。​

​

飞书文档 - 图片

​

另一方面,Skills的成功,给我们了一个很好的启发:AI时代,系统设计将从面向于人设计转向面向AI设计。一份数据,我们需要有给人好理解的版本,也需要有给AI好理解的版本!​

​

飞书文档 - 图片

​

如何开发Skills:从归纳法到演绎法​

​

重复两个过程,需要先将工作中的案例总结提炼(归纳),固化为Skills,用以应对同类问题(演绎),或是再次反馈完善这个Skills,这便是Skills开发的核心思路!​

​

飞书文档 - 图片

​

​

2.1 真正的难点,需要:向外洞察+向内觉察​

​

Skill的本质是一种解决方案,它与问题本就是一体两面,若问题不存在,那Skills再强大也毫无意义。​

​

举个例子,比如当你遇到Bug时,你是如何排查的?好好回想这个完整过程,把每一步操作、每一个判断逻辑梳理清楚,让AI照着这个逻辑去执行,这一点,我会在后续的实践分享中详细展开。除了自己的去总结,其实也可以利用AI工具,当你用AI解决完一个新问题的时候,别急着关闭对话框,让Agent自己观察你的Prompt过程,让他自己总结沉淀,这个过程只需要你在解决完问题后,加一句prompt即可。​

​

​

​

03 一些Skills的案例​

​

以上就是一些Skills原理的分析,下面我们来来分享一些Skills的实践。​

3.1 逆向建模​

逆向建模,是我在开发过程中,使用的最高频的场景。它对应着我们最常见应用场景:需求迭代。针对一个需求迭代的过程,我们总是可以抽象成三个步骤,在AI时代,我们需要思考:如何利用SKills增强这三个流程!而逆向建模就是一个很好的方法!​

​

​

​

那模型里有什么呢?我们可以总结为三个部分:实体、规则和行为。剩下的工作,不管是要去理解需求或是开发需求,我们本质上都是围绕着以下三个问题展开:​

实体关系是什么?有什么变更?​

流程是什么?有什么变更?​

行为是什么?有什么变更?​

​

​

​

当我们回答好了这三个问题,我们的代码也就写的差不多了,这种方法让VibeCoding更加精细化,让Vibecoing建立在图纸之上,而非抽象的语言之上。那我们具体要如何表达呢?我们详细讨论下。​

​

1、 实体的显化表达,这里尝尝用的就是传统的UML建模,我们通过类对象及其关系去还原结构,通过不同的颜色来表示需求的改动!​

​

​

​

2、流程的显化表达,流程则通过序列图()的形式表达。我们可以通过不同抽象层次的图,去放大或者缩小实现的细节,这样我们的视角可以在不同的维度进行设计分析,既可以从总体把握,又可以下钻到细节。这里设计的多详细,AI完成的就有多准确!​

​

​

​

3、规则的显化表达,规则是有点不同的点,实体和行为我们都可以用图去表达,但是规则比较难,更好的方式就是用伪代码的形式,不仅对人友好,对AI也很友好,不得不说:最好的Prompt其实就是代码本身。​

​

​

​

3.2 问题定位:当群里@你 定位问题?​

​

另外从前比较耗时的事是:问题定位。相比诸位开发通知都深有同感,那我们能不能使用Skills帮我们快速搞定呢?那肯定是可以的。​

​

​

​

首先我们使用内观的方法,回想一下:你是如何定位一个问题的?是不是往往从一个染色ID开始,一步一步,看日志,看代码。让AI仿照这个过程,Skills就完成了,如下图所示:​

​

在这个Skills中,最需要考虑的是,如果打通AI-IDE与日志系统,比较简单的是通过MCP实现,然后AI会结合本地代码和日志进行分。这个Skills非常简单,但它真的为我节省了很多时间。下面是一个真实的案例,当上游同学在群里给我丢了一个染色ID让我看的时候,利用这个Skills就在30s内,定位到了异常点!​

​

​

​

3.3 AI辅助CR的工程落地​

使用AI辅助代码CR已经成为了我们团队的高频实践(由sumueli老师主导),并探索出了一条工程化的思路,可以让AI-CR和Git闭环运行,整体流程如下:​

​

除了自动化的CR,人工CR也是最常见的场景。如下图:​

​

​

​

另外在CR的实践中,我们也结合了上面的建模思路,把设计图和代码DIff一起去MR,这大大较少了CR的理解成本,提供了团队的效能!​

​

04 回答开头的问题​

​

最后,回答一下开头提到的问题:我们如何面对成千上万个SKills,应该如何利用?我认为需要根据自己遇到的问题去索引比较好的Skills,然后再加以改造,为什么?因为从来都不存在两个一模一样的问题,只有相似的问题,可以借鉴,但是不能照搬!​