Skip to content

技能创建系统 (Skill Creator) v1.2.0

概述

Skill Creator 是 ChainlessChain 的内置系统技能,用于创建、测试、优化和验证其他技能。v1.2.0 新增了 LLM 驱动的描述优化循环(optimize-description),可自动评估并改写技能描述,使其触发精度最大化。

版本历史

版本变更
v1.0.0基础功能:create、test、optimize(静态)、validate、list-templates
v1.2.0新增 optimize-description LLM 驱动描述优化循环;_deps 注入 spawnSync;支持 --advanced--iterations 标志

核心动作

create

从名称和描述生成 SKILL.md + handler.js 骨架文件。

bash
skill run skill-creator "create my-skill \"做某件事的技能\""
  • 自动推断 category(knowledge/automation/development/system/media/productivity)
  • 若技能目录已存在,返回 alreadyExists: true 并附上模板内容(不覆盖)

test

调用指定技能的 handler.js 并展示结果。

bash
skill run skill-creator "test smart-search 搜索示例"

optimize(快速启发式)

SKILL.mddescription 字段进行静态检查:

  • 长度 < 50 字符 → 建议补充更多触发场景
  • 缺少 use when / trigger 关键词 → 建议添加触发语句
  • 长度 > 200 字符 → 建议精简
bash
skill run skill-creator "optimize code-review"

optimize-description(LLM 驱动优化循环)

v1.2.0 新增。使用 LLM 对描述进行迭代优化,步骤如下:

  1. 生成 eval 查询集:LLM 生成 20 条真实用户请求(10 个应触发、10 个不应触发)
  2. 60/40 分割:随机打散后前 60% 为训练集,后 40% 为测试集(防止过拟合)
  3. 计算基线测试分:在测试集上评估当前描述的触发准确率
  4. 迭代优化循环(最多 N 次,默认 5 次):
    • 在训练集评估失败项(触发结果与预期不符)
    • 若无失败 → 提前终止
    • LLM 根据失败案例改写描述
    • 在测试集评估新描述分数
    • 若测试分更高 → 记录为最优描述
  5. 写回 SKILL.md:将最优描述替换 description 字段(仅在有改进时)
  6. 保存结果:输出至 <skillDir>/.opt-workspace/results.json
bash
# 基础用法(默认 5 次迭代)
skill run skill-creator "optimize-description code-review"

# 指定迭代次数
skill run skill-creator "optimize-description code-review --iterations 3"

# 通过 --advanced 标志触发(等价于 optimize-description)
skill run skill-creator "optimize code-review --advanced"
skill run skill-creator "optimize code-review --advanced --iterations 3"

validate

检查技能目录的完整性和 SKILL.md 格式:

bash
skill run skill-creator "validate ultrathink"

检查项:

  • SKILL.md 存在且有 YAML frontmatter
  • 包含 namedescriptionhandler 字段
  • handler.js 存在且可 require()
  • handler.js 导出 execute()init() 函数

list-templates / get-template

列出或获取内置模板:

bash
skill run skill-creator "list-templates"
skill run skill-creator "get-template basic"
skill run skill-creator "get-template api-integration"

内置模板:

模板名说明
basic最简单的问候技能,单动作结构
multi-action多动作任务追踪器(create/list/complete/stats)
api-integrationREST API 调用模板,含 _deps 注入和认证
file-processorMarkdown 文件分析,含 _deps.fs 注入
code-analyzer纯正则表达式代码复杂度分析

技术设计

_deps 注入模式

所有 I/O 操作通过 _deps 对象访问,支持单元测试时注入 mock:

javascript
const _deps = { fs, path, spawnSync };
module.exports = { _deps, async execute() {...} };

// 测试中:
handler._deps.fs = createMockFs({ ... });
handler._deps.spawnSync = vi.fn().mockReturnValue({ status: 0, stdout: "YES" });

LLM 调用(CLI 模式)

callLLM(prompt) 函数通过 spawnSync 调用 chainlesschain ask 命令:

javascript
function callLLM(prompt) {
  const result = _deps.spawnSync(
    process.execPath,
    [process.argv[1], "ask", prompt],
    { encoding: "utf-8", timeout: 60000, windowsHide: true,
      env: { ...process.env, CHAINLESSCHAIN_QUIET: "1" } }
  );
  if (result.error || result.status !== 0) return null;
  return (result.stdout || "").trim() || null;
}
  • 仅在 chainlesschain skill run 上下文中可用
  • LLM 不可用时(非 CLI 环境、超时等)返回 null,所有依赖 LLM 的操作优雅降级

评估逻辑

generateEvalQueries:要求 LLM 生成严格的 JSON 数组格式:

json
[{"query":"...", "should_trigger": true}, ...]

evaluateDescriptionDetailed:每条查询单独问 LLM:

Would you invoke this skill to help? Answer with exactly YES or NO.

improveDescription:提供失败案例和改写指南,让 LLM 返回新描述(≤200字符,略微"激进"以提升触发率)。

降级处理

失败场景行为
LLM 不可用(status≠0)返回 { success: false, action: "optimize-description", hint: "Run via: chainlesschain skill run ..." }
eval queries 生成失败(<4条)同上
中途 LLM 失败停止迭代,写回当前最优描述
无改进不更新 SKILL.md,报告"description is already optimal"

文件结构

desktop-app-vue/src/main/ai-engine/cowork/skills/builtin/skill-creator/
├── SKILL.md               # 技能声明(v1.2.0)
└── handler.js             # 主逻辑(_deps 注入 + LLM 优化循环)

测试覆盖

层次文件数量
单元测试skills/__tests__/v1.2.0-skill-creator.test.js50 个测试
集成测试cli/__tests__/integration/skill-creator-handler.test.js12 个测试
E2E 测试cli/__tests__/e2e/skill-creator-commands.test.js14 个测试

全部通过(76 个测试)。

附录:规范章节补全(v5.0.3.108)

本文为系统设计子文档。为对齐项目文档标准结构,下列章节以 见正文 指引或简述方式补齐若干视角,不重复正文细节。

1. 概述

见正文「模块概述 / 功能描述」。技能创建系统(Skill Creator v1.2):创建 / 优化 / 评测技能。

2. 核心特性

技能创建 / 优化 / eval / 性能基准。

3. 系统架构

见正文「架构设计」。

4. 系统定位

ChainlessChain 的「技能创建系统」。

5. 核心功能

见正文模块概述与各节。

6. 技术架构

见正文实现章节。

7. 系统特点

见正文(状态 / 版本 / 特性)。

8. 应用场景

见正文应用场景 / 背景。

9. 竞品对比

见正文对比(如有)。

10. 配置参考

见正文配置 / 参数章节。

11. 性能指标

见正文性能 / 指标章节。

12. 测试覆盖

见正文测试章节。

13. 安全考虑

见正文安全 / 权限章节。

14. 故障排除

见正文故障 / 已知限制章节。

15. 关键文件

见正文实现位置 / 关键文件章节。

16. 使用示例

见正文使用 / API 示例。

17. 相关文档

系统设计主文档docs-site 对应功能页。

基于 MIT 许可发布