Claude Code Skills 的混合自动化方案

114 阅读9分钟

本文内容已让 AI 脱敏处理。

先上结果

混合自动化方案后:

  1. 大幅降低成本:Token 消耗降低 74%
  2. 提升执行速度:执行时间缩短 6 倍
  3. 提高可靠性:步骤跳过率从 20% 降至 0%
  4. 结果更符合预期了

混合自动化方案前

这是我们项目中得一个 CRUD 的 SKIL 执行一次的部分过程(开头跟结尾,中间省略了4张同等长度的图)

image.png image.png

混合自动化方案后

可以看出,这时很多操作已经交给脚本来处理了,生成的结果会更符合预期 ,这是因为
脚本:输入固定 --> 输出唯一 【Pass / Fail(二元判定)】
Agent:概率性输出/多样化路径 【分布评估 + 轨迹监控(Trace)】

image.png

背景与问题

当前现状

在我们的 Vue3 项目中,generator skills (创建新的 CRUD 页面)需要执行以下步骤:

  1. 复制模板文件(columns.js、Vue 组件)
  2. 修改文件内容(路径、名称、API 等)
  3. 配置路由(添加路由配置)
  4. 注册 Mock 数据(导入和注册)
  5. 验证结果
  6. 检查是否需要回滚

痛点分析

问题 1:Token 消耗过高

使用 Claude Code 纯 AI 方式生成页面时,消耗 tokens 过高,带来成本压力

问题 2:执行不稳定

  • AI 可能跳过某些步骤
  • 需要再次对话提醒才能完成
  • 降低了开发效率

核心问题

如何在保证开发效率的同时,大幅降低 AI Token 消耗?


解决方案

核心思路

采用混合自动化策略,将流程拆分为两部分:

  1. 脚本化部分:高度重复、指令明确的步骤
  2. AI 部分:需要理解用户意图、智能推断的步骤

判断标准

对于每个步骤,根据以下两个标准判断是否应该脚本化:

✅ 标准 1:步骤具备重复性

  • 是否每次执行都遵循相同的逻辑?
  • 是否有固定的输入输出格式?
  • 是否可以通过代码实现?

✅ 标准 2:指令是明确的

  • 是否有明确的操作步骤?
  • 是否有固定的验证规则?
  • 是否可以通过条件判断实现?

流程拆分

步骤当前方式优化后判断依据
前置验证AI 使用 LS 工具脚本自动检查✅ 重复性 + ✅ 明确指令
收集信息AI 对话询问AI 对话询问❌ 需要理解用户意图
输入验证AI 使用正则验证脚本自动验证✅ 重复性 + ✅ 明确指令
文件操作AI 使用 Read/Write脚本自动执行✅ 重复性 + ✅ 明确指令
路由配置AI 使用 Grep/SearchReplace脚本自动执行✅ 重复性 + ✅ 明确指令
Mock 注册AI 使用 Grep/SearchReplace脚本自动执行✅ 重复性 + ✅ 明确指令
结果验证AI 使用 LS/Read脚本自动验证✅ 重复性 + ✅ 明确指令
操作总结AI 生成报告脚本自动输出✅ 重复性 + ✅ 明确指令

技术架构

整体架构

┌─────────────────────────────────────────────────────────┐
│                    用户需求输入                           │
│              "创建一个用户管理页面"                        │
└────────────────────┬────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────┐
│              AI 部分(Claude Code Skill)                 │
│  ┌─────────────────────────────────────────────────┐   │
│  │ 1. 理解用户意图(自然语言理解)                    │   │
│  │ 2. 收集必要信息(交互式对话)                      │   │
│  │ 3. 智能推断参数(默认值、最佳实践)                 │   │
│  │ 4. 调用脚本执行(RunCommand)                      │   │
│  │ 5. 验证结果并反馈(质量检查)                       │   │
│  └─────────────────────────────────────────────────┘   │
└────────────────────┬────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────┐
│              脚本部分(本地 Node.js 脚本)                 │
│  ┌─────────────────────────────────────────────────┐   │
│  │ 1. 前置验证(检查模板、目录)                      │   │
│  │ 2. 输入验证(参数格式检查)                        │   │
│  │ 3. 文件操作(创建目录、复制文件)                   │   │
│  │ 4. 路由配置(检查、添加路由)                       │   │
│  │ 5. Mock 注册(导入、注册数据)                      │   │
│  │ 6. 结果验证(文件存在性、内容检查)                  │   │
│  │ 7. 错误处理(回滚机制)                            │   │
│  │ 8. 生成报告(输出创建的文件)                       │   │
│  └─────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────┘

AI Skill 设计

这部分已脱敏处理,仅当参考

职责范围

AI Skill 专注于需要智能判断的部分:

name: 'Vue3 CRUD 页面生成器(混合模式)'
description: '通过理解用户意图,调用本地脚本快速生成 CRUD 页面'

instructions: |
    你是一个 Vue3 CRUD 页面生成助手,负责理解用户需求并调用脚本执行。

    ## 核心职责

    1. **理解用户意图**:从自然语言中提取关键信息
    2. **收集必要信息**:通过对话确认缺失的参数
    3. **智能推断参数**:根据最佳实践设置默认值
    4. **调用脚本执行**:使用 RunCommand 调用本地脚本
    5. **验证结果并反馈**:检查脚本输出,确认执行成功

    ## 工作流程

    ### 1. 理解用户意图

    用户可能输入:
    - "创建一个用户管理页面"
    - "生成订单管理页面,路由是 /order/order-manage"
    - "我要创建一个系统日志页面"

    提取关键信息:
    - 页面名称(pageName)
    - 路由路径(routePath)
    - 页面标题(pageTitle)

    ### 2. 收集必要信息

    如果用户未提供完整信息,通过对话确认:
    - "请提供路由路径(如 /accessibility/user-manage)"
    - "请提供页面显示名称(如 用户管理)"

    ### 3. 智能推断参数

    根据最佳实践设置默认值:
    - **icon**:根据页面名称推断(如 userManage → user-outlined)
    - **moduleName**:从路由路径提取第一部分
    - **apiPrefix**:默认与路由路径相同

    ### 4. 调用脚本执行

    使用 RunCommand 调用本地脚本:

    ```bash
    npm run create-page -- --path=[routePath] --title=[pageTitle] --icon=[icon]
    ```

    示例:
    ```bash
    npm run create-page -- --path=/accessibility/userManage --title="用户管理" --icon=user-outlined
    ```

    ### 5. 验证结果并反馈

    检查脚本输出:
    - 如果看到 "✅ 页面创建成功",确认执行成功
    - 如果看到 "❌",分析错误原因并提供解决建议
    - 向用户报告创建的文件和访问链接

    ## 使用示例

    用户输入:`创建一个用户管理页面`

    你的响应:
    1. 询问路由路径和页面标题
    2. 收集完整信息后,调用脚本
    3. 验证脚本输出
    4. 向用户报告结果

    ## 注意事项

    - 始终使用 npm run create-page 调用脚本
    - 不要手动执行文件操作
    - 脚本会自动处理所有验证和错误处理
    - 只在脚本执行失败时才需要人工介入

脚本设计

职责范围

脚本专注于高度重复、指令明确的部分:

// scripts/create-page.js

async function createPage(args) {
    // 1. 前置验证
    // - 检查模板文件是否存在
    // - 检查目标目录是否已存在

    // 2. 输入验证
    // - 验证页面名称格式
    // - 验证路由路径格式
    // - 验证页面标题格式

    // 3. 文件操作
    // - 创建目标目录
    // - 复制并修改 columns.js
    // - 复制并修改 Vue 组件

    // 4. 路由配置
    // - 检查路由文件是否存在
    // - 创建或更新路由配置

    // 5. Mock 注册
    // - 添加导入语句
    // - 添加注册语句

    // 6. 结果验证
    // - 验证文件存在性
    // - 验证内容正确性

    // 7. 错误处理
    // - 失败时自动回滚
    // - 恢复备份文件

    // 8. 生成报告
    // - 输出创建的文件
    // - 输出修改的文件
    // - 输出访问链接
}

优势

  • 执行速度快:本地运行,无需网络请求
  • 可靠性高:逻辑固定,不会跳过步骤
  • 易于维护:代码清晰,便于调试和扩展
  • 零 Token 消耗:完全本地执行

实施效果

用户体验

  • 保持交互式体验:用户仍然可以通过自然语言描述需求
  • 响应速度更快:脚本执行速度快,用户等待时间短
  • 结果更可靠:不会出现跳过步骤的情况

最佳实践

1. 如何判断步骤是否应该脚本化

使用以下决策树:

步骤是否需要重复执行?
├─ 否 → 保留在 AI 部分
└─ 是 → 步骤指令是否明确?
    ├─ 否 → 保留在 AI 部分
    └─ 是 → 可以脚本化

2. 脚本设计原则

原则 1:单一职责

每个脚本只负责一个明确的任务。

原则 2:输入验证

脚本必须验证所有输入参数。

原则 3:错误处理

脚本必须有完善的错误处理和回滚机制。

原则 4:进度反馈

脚本必须输出清晰的进度信息。

原则 5:可测试性

脚本应该易于测试和调试。

3. AI Skill 设计原则

原则 1:专注于智能判断

AI Skill 只负责需要理解用户意图的部分。

原则 2:避免重复逻辑

不要在 AI Skill 中重复脚本已经实现的逻辑。

原则 3:明确的调用方式

明确说明如何调用脚本,以及脚本的输出格式。

原则 4:结果验证

AI Skill 必须验证脚本的执行结果。

4. 实施步骤

步骤 1:分析现有流程

列出所有步骤,评估每个步骤的重复性和明确性。

步骤 2:设计脚本

为符合脚本化标准的步骤编写脚本。

步骤 3:简化 AI Skill

移除 AI Skill 中已经脚本化的部分,只保留智能判断部分。

步骤 4:测试验证

测试整个流程,确保功能正常。

步骤 5:持续优化

根据实际使用情况,持续优化脚本和 AI Skill。

5. 常见问题

Q1:如果脚本执行失败怎么办?

A:AI Skill 应该分析脚本输出的错误信息,并提供解决建议。如果无法自动解决,提示用户手动处理。

Q2:如何处理复杂的业务逻辑?

A:将复杂的业务逻辑拆分为多个小步骤,每个步骤都可以独立脚本化。AI Skill 负责协调这些步骤的执行顺序。

Q3:如何保证脚本和 AI Skill 的一致性?

A:建立清晰的接口文档,定义脚本的输入输出格式。AI Skill 严格按照接口文档调用脚本。

Q4:如何扩展到其他场景?

A:总结本次经验,形成可复用的方法论。对于其他重复性任务,应用相同的判断标准和设计原则。


总结

核心价值

这里的数据是由 AI 自己统计,跟实际情况有点出入,但整体可信,且每个人项目的 SKILL 及脚本做的事不一样,是足够支撑仅当参考

通过混合自动化方案,我们实现了:

  1. 大幅降低成本:Token 消耗降低 74%
  2. 提升执行速度:执行时间缩短 6 倍
  3. 提高可靠性:步骤跳过率从 20% 降至 0%
  4. 保持用户体验:仍然支持自然语言交互

关键成功因素

  1. 明确的判断标准:重复性 + 明确指令
  2. 合理的职责划分:AI 负责智能判断,脚本负责重复执行
  3. 完善的设计原则:单一职责、输入验证、错误处理
  4. 持续的优化迭代:根据实际使用情况持续改进

结语

混合自动化方案的核心思想是:让 AI 做它擅长的事情(智能判断),让脚本做它擅长的事情(重复执行)

通过合理的职责划分,我们既保留了 AI 的智能交互能力,又大幅降低了 Token 消耗,实现了成本和效率的双赢。