Claude Code Skills 实践
最近 agent skills 这个名词很火啊,怎么能不掺和一下呢?
从日常开发工作中挑选了一个非常流程化的场景——根据后端提供的 swagger 文档,在前端项目中写入所需接口及数据类型——进行试验。
简易的 Skills 本质上就是放在 .claude/commands/ 目录下的 Markdown 文件。文件名就是命令名,文件内容就是提示词。这次选中的场景比较简单,提示词自然也不复杂,借助 AI 用了半个小时就写好并测试通过了。大概包含了如下几块内容:
1. 核心流程:
① 用户输入:定义用户需要提供的内容,包含环境和所需接口 url;
② 数据获取:提示 AI 通过 curl 命令获取对应环境下的 swagger 文档;
③ 信息提取:给出示例脚本,告知 AI 需要获取的字段信息,例如后端定义的接口方法名称、HTTP 方法、请求参数、响应类型等;
④ 命名规则:强制 AI 使用提取到的字段信息组成方法名、类型名,确保前后端命名一致;
⑤ 类型转换:针对特殊字段进行特别的处理,例如 id 字段往往被后端声明为 Long 类型,而后在 VO 类的字段级别借助 @JsonSerialize 注解进行转换,以字符串的格式传给前端,故而需要特别定义来覆盖 swagger 文档中读取到的类型;
⑥ 冲突处理:例如出现重复命名时,必须中断并询问客户;
2. 代码生成位置:
① 接口方法代码存放位置;
② 接口类型代码存放位置;
3. 代码模板:给出几个典型案例;
4. 用户额外需求占位符 - $ARGUMENTS。
流程跑通后,选择了一个接口(总计需增加 32 行代码)进行耗时测试:
1. AI 生成代码:
① 编写 prompt:只包含 skill 命令 + 环境名 + 接口名,用时几乎可以忽略不计;
② AI 思考并编写代码:2 分 43 秒,期间多次申请操作权限,使用者需要持续在场响应;
③ 人工检查生成的代码:49 秒。
2. 人工开发代码:2 分 36 秒。当然,这其中是有 Copilot code completion 的功劳的。即使禁用了 AI,我也习惯借助 typeof-jsonc 等插件帮助写入类型字段,总体耗时差距不会太大。
以我目前对 AI 的理解,它能够大幅提效的主要场景还是集中在:
1. 自己不熟悉的领域:省去了学习的时间;
2. 对于生成的结果容错率较高:网上各种吹嘘的神乎其神的 demo 级或者无历史负担的产品,以及艺术创作等无关对错的场景;
3. 前人栽树:已针对特定业务编写了海量的知识库以及提示词(这也是现在大家致力于做的事情)。
唉,只是老板期待的永远是一个银弹……
评论
发表评论