Skill系统核心知识梳理 > 原文:兄弟!你真的懂 Skill 吗? > 作者:李小宇 > 来源:BestBlogs.dev --- 核心结论 **Skill 的执行模式有 5 种**,而非单一的 function calling。Anthropic 官方 16 个 Skill 全部通过 沙箱命令驱动,**没有...
Skill系统核心知识梳理
Skill系统核心知识梳理
原文:兄弟!你真的懂 Skill 吗?
作者:李小宇
来源:BestBlogs.dev
核心结论
Skill 的执行模式有 5 种,而非单一的 function calling。Anthropic 官方 16 个 Skill 全部通过 skill_run 沙箱命令驱动,没有使用 Tools: 声明。
核心公式:
Skill 的执行力 = SKILL.md body 质量 × (Agent 基础工具 + skill_run 沙箱能力)一、五种执行模式
模式一:纯 Prompt 注入型
| 项目 | 说明 |
|---|---|
| 代表 | frontend-design、brand-guidelines、algorithmic-art |
| 结构 | 只有 SKILL.md,无 scripts/ |
| 原理 | Skill = 精心编写的 system prompt,提供领域知识和行为约束 |
| 执行 | LLM 直接根据注入的指南写代码 |
关键洞察:把资深专家的隐性知识(审美品味、设计方法论)编码成显式规则,用 LLM 能理解的方式表达。
模式二:脚本执行型
| 项目 | 说明 |
|---|---|
| 代表 | pdf、pptx、xlsx、webapp-testing |
| 结构 | SKILL.md(使用手册)+ scripts/(预制脚本) |
| 原理 | SKILL.md 教 LLM 怎么用脚本,复杂任务调用预制工具 |
| 执行 | skill_run("python3 scripts/xxx.py") 在沙箱中执行 |
两种代码的区别:
| SKILL.md 中的代码示例 | scripts/ 预制脚本 | |
|---|---|---|
| 用途 | 教 LLM 怎么写代码 | 直接执行的黑盒工具 |
| 谁执行 | LLM 自己写 + Agent 基础工具 | skill_run 在沙箱中执行 |
| 适合 | 简单一次性操作 | 复杂、需要验证的工作流 |
Token 效率:1 个 skill_run(20 Token)vs 8 个 function calling(1600-4000 Token)
模式三:库调用型
| 项目 | 说明 |
|---|---|
| 代表 | slack-gif-creator |
| 结构 | SKILL.md(API 文档)+ core/(Python 库) |
| 原理 | LLM 现场写代码 import core.xxx,组合库函数完成任务 |
| 特点 | LLM 从"调用者"变成"开发者" |
关键区别:
| 脚本执行型(pdf) | 库调用型(slack-gif-creator) | |
|---|---|---|
| 文件结构 | scripts/xxx.py(独立可执行) | core/xxx.py(Python 模块) |
| 调用方式 | skill_run("python3 scripts/xxx.py") | LLM 自己写脚本 import core.xxx |
| LLM 角色 | 调用者(跑预制脚本) | 开发者(组合库函数写新代码) |
模式四:参考文档渐进加载型
| 项目 | 说明 |
|---|---|
| 代表 | pptx、mcp-builder |
| 结构 | SKILL.md(路由表)+ 多个详细文档(editing.md、pptxgenjs.md) |
| 原理 | 三层信息模型,按需加载 |
| 优势 | Token 效率提升 46%,避免一次性加载所有文档 |
三层信息模型:
第1层 description(~50词)
"Presentation creation, editing, and analysis..."
→ 始终在可用技能列表中,LLM 判断是否需要加载
第2层 SKILL.md body(~200行)
Quick Reference 路由表 + 设计指南 + QA 流程
→ 加载后注入 system message,LLM 知道大方向
第3层 editing.md / pptxgenjs.md(按需)
详细操作步骤 + 代码示例
→ LLM 通过 skill_select_docs 按需加载Token 节省效果:
- 一次性全部加载:~28.7KB ≈ 7000 tokens
- 渐进加载(编辑任务):~3750 tokens(节省 46%)
模式五:编排型
| 项目 | 说明 |
|---|---|
| 代表 | skill-creator |
| 结构 | 超详细编排指南(32KB)+ 子 Agent 指令 + 脚本工具链 |
| 原理 | SKILL.md 定义完整的多阶段流水线 |
| 特点 | 同时用到前四种模式的元素 |
执行流程:
Capture Intent → Interview → Write SKILL.md → Run Tests
→ Evaluate → Improve → Repeat → Package本质:SKILL.md 不是在教 LLM 怎么用一个工具,而是在编排 LLM 执行一个复杂的多步骤项目。
二、Skill 框架核心架构
数据流转(7 步链路)
SKILL.md → FsSkillRepository(扫描解析)
→ Skill 对象 → SkillToolSet(6个管理工具+skill_run)
→ DynamicSkillToolSet(Token优化)
→ SkillsRequestProcessor(请求注入)
→ LLM function_call → 沙箱执行核心组件
| 组件 | 作用 |
|---|---|
| state_delta | CQRS 架构,写入方和读取方解耦 |
| skill_run | 万能执行引擎,支持任意 shell 命令 |
| 增量哈希 | compute_dir_digest(),重复调用零开销 |
| 沙箱隔离 | /tmp/ws_xxx/ 工作空间,只读保护 + 符号链接 |
| 环境变量 | $WORKSPACE_DIR、$OUTPUT_DIR、$SKILL_NAME 等自动注入 |
skill_run 沙箱工作空间布局
/tmp/ws_session123/
├── skills/pdf/ ← 技能目录(只读保护)
│ ├── SKILL.md
│ ├── scripts/
│ ├── out/ → ../../out ← 符号链接
│ └── work/ → ../../work ← 符号链接
├── out/ ← $OUTPUT_DIR
├── work/ ← $WORK_DIR
└── runs/ ← 执行记录自动注入的环境变量
| 变量 | 指向 | 用途 |
|---|---|---|
$WORKSPACE_DIR | /tmp/ws_session123/... | 访问工作空间根目录 |
$SKILLS_DIR | $WORKSPACE_DIR/skills | 引用其他技能的文件 |
$WORK_DIR | $WORKSPACE_DIR/work | 存放中间文件 |
$OUTPUT_DIR | $WORKSPACE_DIR/out | 存放最终输出 |
$RUN_DIR | $WORKSPACE_DIR/runs/run_xxx | 访问运行记录 |
$SKILL_NAME | pdf | 知道自己是哪个技能 |
三层信息模型(Token 经济学)
| 层级 | 触发条件 | Token 消耗 | 内容 |
|---|---|---|---|
| L0 | 始终注入 | ~30/技能 | name + description |
| L1 | skill_load 后 | ~500-2000 | SKILL.md body |
| L2 | skill_select_docs 后 | ~1000-5000 | 详细参考文档 |
三、为什么不用 function calling?
Anthropic 给出的答案:教 LLM 写代码比注册 API 更灵活
三大原因
LLM 本身就是最好的代码执行器
- 看了代码示例后能写出第 9、10 种操作(作者没想到的)
- function calling 限制灵活性——只能调预定义的函数
skill_run 是万能兜底
- 任何语言、任何命令,shell 能跑就能执行
- 不需要为每个操作都定义工具 Schema
Token 效率
- 1 个 skill_run(20 Token)vs 8 个 function calling(1600-4000 Token)
- 10 轮对话差距:1.6 万 - 4 万 Token
Tools: 场景很窄
- 只有调用内部 API、数据库等无法通过代码完成的操作才需要
- Anthropic 的 16 个 Skill 都可以通过代码+脚本完成
框架支持但未使用
框架确实实现了完整的 Tools: 声明 → DynamicSkillToolSet → function calling 链路,但 Anthropic 自己的 Skill 一个都没用——框架预留了能力,但实践中发现不需要。
四、实操建议
| 场景 | 推荐模式 | 关键动作 |
|---|---|---|
| 教规范/风格 | 纯 Prompt 注入 | 写好 SKILL.md |
| 操作特定文件格式 | 脚本执行型 | 写 scripts/ + 使用说明 |
| 灵活组合 API | 库调用型 | 写 core/ + API 文档 |
| 知识量大 | 渐进加载型 | SKILL.md 做路由表 |
| 复杂多步骤工作流 | 编排型 | 定义流水线 + 子 Agent |
起步建议:先写一个只有 SKILL.md 的纯 Prompt 注入型技能,跑起来后再根据需要逐步加脚本、加库、加文档。
五、架构亮点
1. CQRS 解耦
写入方(_tools.py)和读取方(_skill_processor.py)通过 state_delta 解耦,各自独立演化。
2. 漏斗式加载
"先粗筛再精选"——三层信息逐步注入,Token 效率最大化。
3. 声明式绑定
工具名字符串匹配而非 import 引用,松耦合设计。
4. 统一 IR
FunctionDeclaration 作为中间表示,屏蔽不同 LLM API 的差异。
5. 增量暂存
compute_dir_digest() 计算目录哈希,重复调用零开销。
6. 符号链接无感知
out/、work/ 符号链接让脚本"无感知"地访问共享目录,脚本不需要知道自己在沙箱里运行。
六、五种模式统一视角
Skill 执行模式光谱
◄── 轻量 ────────────────────────────────── 重量 ──►
纯 Prompt 参考文档 库调用 脚本执行 编排
注入型 渐进加载型 型 型 型
────────── ────────── ────────── ────────── ──────────
frontend- pptx slack-gif- pdf skill-
design mcp-builder creator xlsx creator
────────── ────────── ────────── ────────── ──────────
仅注入 body 注入 + 注入 + 注入 + 注入 +
到 system 按需加载 LLM写代码 预制脚本 多步骤
message docs import库 skill_run 工作流所有模式共用的底座
| 框架机制 | 模式一 | 模式二 | 模式三 | 模式四 | 模式五 |
|---|---|---|---|---|---|
skill_load → body 注入 | ✅ | ✅ | ✅ | ✅ | ✅ |
skill_select_docs | ❌ | ✅ | ❌ | ✅ | ✅ |
skill_run (预制脚本) | ❌ | ✅ | ❌ | ✅ | ✅ |
skill_run (LLM 写的脚本) | ❌ | ❌ | ✅ | ❌ | ❌ |
Tools: 声明 (function calling) | ❌ | ❌ | ❌ | ❌ | ❌ |
| 子 Agent 编排 | ❌ | ❌ | ❌ | ❌ | ✅ |
总结
Anthropic 对 Skill 系统的设计哲学,本质上是对 LLM 能力边界的深刻理解:
他们没有把 Skill 做成"给 LLM 注册更多 API"的系统,而是做成了"教 LLM 更多知识"的系统。
因为 LLM 最强的能力不是调 API,而是理解自然语言指令后自主解决问题。
SKILL.md 本质上就是一种极其高效的知识传递方式:用最少的 Token,把最关键的领域知识、操作规范和工具用法,注入到 LLM 的上下文中。
相关文章
- 从这里开始 | AI 智能体、工程、前端与 LLM 教程主线:按主线阅读 CoworkAI 的 AI 智能体、后端工程、前端实现和 LLM 基础内容,不再在一篇篇孤立文章之间随机跳转。
- MCP 协议完全指南:12个核心AI智能体开发框架深度解析:深入解析 MCP(Model Context Protocol)协议与12个核心开发框架,包含 OpenAI SDK、Python SDK、TypeScript SDK 等完整代码示例。助你快速构建AI智能体应用。
- LLM、RAG与AI智能体:从概念到工程化的完整指南:深入解析LLM、RAG、AI Agent三层智能架构:思考层、记忆层、执行层的完整工程实践指南,包含实现要点、架构设计和落地方案
下一步怎么走
- 从主线教程继续:把当前页面放回更完整的合集或阅读主线里,减少看完即走。
- 从这里开始 | AI 智能体、工程、前端与 LLM 教程主线:按主线阅读 CoworkAI 的 AI 智能体、后端工程、前端实现和 LLM 基础内容,不再在一篇篇孤立文章之间随机跳转。
- MCP 协议完全指南:12个核心AI智能体开发框架深度解析:深入解析 MCP(Model Context Protocol)协议与12个核心开发框架,包含 OpenAI SDK、Python SDK、TypeScript SDK 等完整代码示例。助你快速构建AI智能体应用。
- LLM、RAG与AI智能体:从概念到工程化的完整指南:深入解析LLM、RAG、AI Agent三层智能架构:思考层、记忆层、执行层的完整工程实践指南,包含实现要点、架构设计和落地方案
- 收藏首页:把这个工作台放进书签,后续新增内容会先回到首页曝光。
- 订阅 RSS:如果你想持续跟进更新但不留邮箱,RSS 是当前最直接的回访入口。
- 提交工具或选题:把你希望补齐的工具、教程或合作需求直接发过来。