从已有代码自动生成 AI 技能
场景
你手上有一个写了一半或已经上线的小程序,现在想给它加上 AI 能力。用 mp-skills create --mode agent 让 AI 扫描你的源码,自动分析业务逻辑并生成符合 wx.modelContext 规范的 SKILL 分包,无需从零手写。
与手写方式的区别:
| 对比 | 自动生成(本文) | 手写(Recipe 2) |
|---|---|---|
| 适用场景 | 已有项目代码,快速接入 | 从零开发,完全掌控 |
| 上手速度 | 快 — 描述场景即可 | 慢 — 需理解完整规范 |
| 代码控制力 | AI 生成,需人工 review | 逐行自己写 |
| 产物质量 | 依赖 LLM + 模板 | 由开发者经验决定 |
核心原则:AI 生成不代表免检 — 生成后必须做 validate 校验,代码需要人工过一遍。
前置条件
- 微信开发者工具 Nightly 版 已安装
- 小程序 AppID 已获取且 AI 开发模式已开通
- Node.js ≥ 18
- 有一个带业务代码的小程序源码目录(pages/、api/ 目录结构完整)
-
npx mp-skills --version可正常输出版本号 -
npx skills --version可正常输出版本号 - 已配置 LLM 凭证(
create --mode agent需要):
export WXA_SKILL_EVAL_LLM_BASE_URL=<your-endpoint>
export WXA_SKILL_EVAL_LLM_API_KEY=<your-key>
export WXA_SKILL_EVAL_LLM_MODEL=<model-name>
凭证会写入项目 .env 文件。支持的提供方见 tools.md。
实现步骤
第 1 步:安装工具 SKILL
工具 SKILL 是 AI coding 工具的引导指令,让 AI 知道如何分析源码、生成 SKILL 代码。
# 在项目根目录执行
npx skills add TencentCloudBase/mp-skills -s wxa-skills-generate
预期输出:
* 添加 Skill <wxa-skills-generate> ...
[OK] 安装完成
验证安装:
npx skills list | grep wxa-skills-generate
第 2 步:在 AI IDE 中描述业务场景
在 AI IDE(如 CodeBuddy、Cursor)中打开你的小程序项目,让 AI 读取已安装的工具 SKILL,然后直接描述需求。
示例指令:
帮我将小程序中的「商品检 索」功能抽取为 AI SKILL。
业务描述:用户输入关键词搜索商品,按分类筛选,查看商品详情和库存状态。
关键页面:pages/search/、pages/product-detail/
关键接口:/api/product/search、/api/product/detail
AI 读取 wxa-skills-generate 的 SKILL.md 后会按照预定义的工作流执行:
- 阶段 1 — 项目扫描:读取 app.json、project.config.json,检查 AI 开发模式配置是否完备
- 阶段 2 — 鉴权扫描:对照 JSAPI 白名单,确认能力可迁移
- 阶段 3 — 源码分析:扫描 pages/search/、pages/product-detail/ 等目录,提取网络接口(
wx.requestURL、参数、响应结构)和 wx API 调用 - 阶段 4 — 原子接口设计:将业务逻辑拆解为独立的原子接口(searchProducts、getProductDetail、getCategories)
- 阶段 5 — 代码生成:生成 SKILL 分包完整代码
- 阶段 6 — 配置集成:更新 app.json、project.config.json
第 3 步:人工确认生成结果
AI 生成完成后,检查产物结构:
miniprogram/skills/search-skill/
├── SKILL.md # 技能描述 — AI 引擎读此文件了解功能
├── mcp.json # 原子接口描述 — 声明可用接口和参数
├── index.js # 入口 — 注册所有原子接口
├── apis/
│ ├── searchProducts.js # 商品搜索
│ ├── getProductDetail.js # 商品详情
│ └── getCategories.js # 分类列表
├── utils/
│ └── util.js # 共享工具(网络请求、登录态等)
└── components/
├── productList/ # 列表展示组件
└── productCard/ # 商品卡片组件
重点检查项:
mcp.json中的接口定义是否完整(参数、返回值类型)index.js的接口注册是否与 mcp.json 一一对应- 原子接口实现中的
wx.requestURL 是否正确 utils/util.js中baseUrl、env等配置是否硬编码正确
第 4 步:validate 校验
AI 生成的代码需要 validate 做静态检测:
npx mp-skills validate
预期输出:
[OK] 项目配置检查通过
[OK] 接口定义与实现一致
[OK] 原子组件定义完整
如果校验失败:
- 修复报错后重新运行
validate - 或者把错误信息反馈给 AI IDE,让 AI 迭代修复(使用
--query参数或直接在对话中描述)