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. 自己不熟悉的领域...