一、核心定义与对象状态

1. 基本定义

Claude Skills是Anthropic公司提出的AI能力扩展范式,将专业知识、执行逻辑与资源封装为可组合、可移植、按需加载的模块化单元,使Claude大模型能动态获取特定领域专业能力,解决全局Prompt稀释、能力边界受限等问题。

2. 核心对象与状态
对象 符号表示 定义 状态
技能 (Skill) Sᵢ 包含指令、元数据、资源的文件夹,以SKILL.md为核心 可用(U)、加载(L)、执行(E)、休眠(D)
元数据 (Metadata) Mᵢ SKILL.md中的YAML前置内容,含名称、描述、触发条件等 静态(S)、动态更新(D)
核心指令 (Instructions) Iᵢ SKILL.md正文,定义技能执行逻辑 就绪®、部分加载(PL)、完全加载(FL)
资源 (Resources) Rᵢ 脚本(scripts)、参考文档(references)、资产(assets) 未加载(NL)、已加载(L)、缓存©
任务 (Task) T 用户请求的具体目标 待处理§、处理中§、完成©、失败(F)
技能集合 (Skill Set) S = {S₁, S₂, …, Sₙ} 可用技能的全集 静态(SS)、动态扩展(DS)
上下文窗口 (Context Window) C 模型当前处理的文本范围 空闲(Idle)、占用(Occ)、溢出(Ovf)

关键状态转换

  • Sᵢ: 可用(U) → 匹配(M) → 加载(L) → 执行(E) → 休眠(D)
  • Iᵢ: 就绪® → 部分加载(PL) → 完全加载(FL) → 释放®
  • C: 空闲 → 占用 → (溢出→优化) → 空闲

二、推理过程

1. 技能触发与加载流程 (渐进式披露架构)
T (用户任务) → Intent Recognition(Iᵣ) → Skill Matching(Mₛ) → Progressive Loading(Pₗ) → Execution(E) → Output(O)

数学表示:
1. 意图识别: Iᵣ = f(T, C₀)  # C₀为初始上下文
2. 技能匹配: Mₛ = {Sᵢ | relevance(Sᵢ, Iᵣ) > θ, ∀Sᵢ ∈ S}  # θ为匹配阈值
3. 优先级排序: Mₛ' = sort(Mₛ, priority(Sᵢ))  # 按优先级排序
4. 渐进式加载:
   - 阶段1: 加载元数据 Mᵢ (约100 tokens)
   - 阶段2: 加载核心指令 Iᵢ (≤5k tokens)
   - 阶段3: 按需加载资源 Rᵢ (脚本/文档)
   Pₗ = {Mᵢ, Iᵢ, Rᵢ'} where Rᵢ' ⊆ Rᵢ
5. 执行: E = apply(Sᵢ, T, C₁)  # C₁为加载技能后的上下文
6. 输出: O = result(E)
2. 技能组合与协作模型

当任务T需要多个技能协同完成时:

T → Iᵣ → Mₛ = {S₁, S₂, ..., Sₖ} → Orchestration(O) → Parallel/Sequential Execution → O

符号化协作:
- 并行执行: E = E₁ || E₂ || ... || Eₖ  # 技能独立处理子任务
- 串行执行: E = E₁ → E₂ → ... → Eₖ  # 技能按依赖顺序执行
- 依赖关系: D(Sᵢ, Sⱼ) = True/False  # Sᵢ依赖Sⱼ的输出
3. 资源优化循环
Context Usage(U) → Overflow Check(OC) → Resource Pruning(RP) → Context Refresh(CR)

OC: if |C| > C_max → 触发资源剪枝
RP: remove(Rᵢ | utility(Rᵢ, T) < ε)  # ε为资源效用阈值
CR: C' = C - {Rᵢ⁻} ∪ {Rⱼ⁺}  # 移除低效用资源,添加新资源

三、核心判定条件与优化目标

1. 技能匹配判定条件
判定维度 符号 条件公式 说明
语义相关性 Rel(Sᵢ, T) Rel(Sᵢ, T) > θᵣ (θᵣ=0.7) 技能描述与任务意图的余弦相似度
能力适配度 Fit(Sᵢ, T) Fit(Sᵢ, T) ≥ θ_f (θ_f=0.6) 技能能力与任务需求的匹配度
资源可用性 Avail(Rᵢ) Avail(Rᵢ) = True 技能所需资源是否可访问
优先级规则 Prior(Sᵢ) Prior(Sᵢ) = w₁×Type + w₂×UsageFreq + w₃×SuccessRate 技能类型、使用频率、成功率加权

匹配决策函数:

Match(Sᵢ, T) = Rel(Sᵢ, T) ∧ Fit(Sᵢ, T) ∧ Avail(Rᵢ) ∧ (Prior(Sᵢ) > θ_p)
2. 核心优化目标
优化维度 符号 目标函数 约束条件
上下文效率 CE Max(CE) = (UsefulInfo / TotalTokens) × 100% TotalTokens ≤ C_max
执行速度 ES Min(ES) = LoadTime + ExecTime LoadTime ≤ tₗ, ExecTime ≤ tₑ
结果质量 Q Max(Q) = Accuracy × Completeness × Relevance Q ≥ Q_min
资源消耗 RC Min(RC) = TokenCost + ComputeCost RC ≤ Budget
可组合性 Comp Max(Comp) = NumberOfCombinations × SuccessRate Comp ≥ Comp_min

全局优化目标:

Optimize: λ₁×CE + λ₂×(1/ES) + λ₃×Q + λ₄×(1/RC) + λ₅×Comp
Subject to: TotalTokens ≤ C_max, RC ≤ Budget, Q ≥ Q_min

其中λ₁~λ₅为权重系数,根据任务类型动态调整。


四、示例

场景:创建月度销售报表 (Excel技能)
1. 技能定义 (S_excel)
S_excel = {
  M_excel: {name: "Excel处理", description: "创建、编辑Excel表格,进行数据分析"},
  I_excel: "接收数据→创建工作表→设置格式→添加公式→生成图表→导出文件",
  R_excel: {scripts: ["create_table.py", "add_formulas.py"], references: ["excel_format_guide.md"]}
}
2. 推理过程符号化
T = "生成2026年1月销售报表,包含产品、销售额、增长率,添加柱状图"
1. Iᵣ = "创建Excel销售报表,含数据和图表"
2. Mₛ = {S_excel} (匹配度=0.92 > θᵣ=0.7)
3. Pₗ:
   - 阶段1: 加载M_excel (120 tokens)
   - 阶段2: 加载I_excel (850 tokens)
   - 阶段3: 加载R_excel中的create_table.py和add_formulas.py
4. E = apply(S_excel, T, C₁):
   a. 调用create_table.py创建工作表,输入产品、销售额、增长率数据
   b. 调用add_formulas.py计算增长率(=(本月-上月)/上月)
   c. 添加柱状图展示各产品销售额
5. O = 生成Excel文件(2026年1月销售报表.xlsx)
3. 状态转换跟踪
对象 初始状态 中间状态 最终状态
S_excel 可用(U) 匹配(M)→加载(L)→执行(E) 休眠(D)
M_excel 静态(S) 加载(L) 缓存©
I_excel 就绪® 完全加载(FL) 释放®
R_excel 未加载(NL) 已加载(L) 缓存©
T 待处理§ 处理中§ 完成©
C 空闲 占用(Occ) 空闲
4. 判定条件验证
Match(S_excel, T) = True because:
- Rel(S_excel, T) = 0.92 > 0.7
- Fit(S_excel, T) = 1.0 (完全匹配Excel操作需求)
- Avail(R_excel) = True (脚本和参考文档存在)
- Prior(S_excel) = 高 (常用办公技能)

Claude Skills范式通过模块化封装渐进式加载动态组合三大机制,解决了传统大模型的三大痛点:

  1. 能力边界:突破基础模型知识限制,按需扩展专业能力
  2. 上下文效率:避免全局Prompt稀释,只加载必要信息
  3. 可维护性:将专业知识封装为独立单元,便于更新和复用

该范式的核心创新在于 Progressive Disclosure (渐进式披露) 架构,实现了能力与资源的精细化管理,为AI Agent提供了稳定、可预测、可控的扩展路径。


关于第二点“上下文效率:避免全局Prompt稀释,只加载必要信息”的扩展说明:

Claude Skills通过三层加载模型动态上下文预算实现效率,将“常驻/激活/执行”的上下文开销分账,避免一次性堆叠。会话启动仅加载轻量元数据,仅在任务匹配后才逐步加载指令与资源,实现最小必要信息加载,彻底解决全局Prompt稀释问题。

渐进式披露的核心是三级加载策略,将技能内容按“必要性”分层,仅在对应阶段加载:

层级 内容 加载时机 典型Token消耗(仅举例) 状态 作用
Tier 1: 元数据层 技能名称、描述、触发关键词 Agent启动时统一预加载 50-100 tokens/技能 常驻® 让模型知道“有什么技能”和“何时用”
Tier 2: 指令层 SKILL.md完整指令、使用规范、示例 技能匹配成功后加载 ≤5,000 tokens 激活(A) 提供技能执行的核心逻辑
Tier 3: 资源层 脚本、参考文档、模板、资产 执行中明确需要时加载 按需(0~N) 执行(E) 补充辅助资源,不干扰核心逻辑

符号化表示:加载状态与转换

状态转换函数:Load(Sᵢ, Level) → ContextUpdate
其中:
- Sᵢ: 技能实例
- Level ∈ {1,2,3}: 加载层级
- ContextUpdate: 上下文更新操作(添加/移除内容)

初始状态:∀Sᵢ ∈ S, Load(Sᵢ, 1)  # 仅加载元数据
触发条件:Match(Sᵢ, T) → Load(Sᵢ, 2)  # 匹配后加载指令
执行条件:NeedResource(Sᵢ, Rⱼ) → Load(Sᵢ, 3, Rⱼ)  # 按需加载特定资源
完成条件:TaskComplete(T) → Unload(Sᵢ, {2,3})  # 任务完成后卸载指令与资源

模型通过意图识别→相关性计算→优先级排序三步决定是否加载技能内容:

1. 意图提取: Iᵣ = Intent(T, C₀)  # 从用户任务T与初始上下文C₀提取意图
2. 相关性计算: Rel(Sᵢ, Iᵣ) = CosineSimilarity(Embed(Sᵢ.desc), Embed(Iᵣ))
3. 匹配决策: Match(Sᵢ, T) = (Rel(Sᵢ, Iᵣ) > θᵣ) ∧ (Fit(Sᵢ, T) ≥ θ_f) ∧ Avail(Rᵢ)
   - θᵣ: 相关性阈值(通常0.7)
   - θ_f: 能力适配度阈值(通常0.6)
4. 优先级排序: S₁, S₂, ... = Sort(Mₛ, Prior(Sᵢ))  # 按使用频率/成功率加权
可能的触发方式
  • 隐式触发: 任务与技能描述自然匹配(如“生成Excel报表”→触发Excel技能)
  • 显式触发: 用户明确指令“使用[技能名]技能”
  • 链式触发: 技能执行中调用其他技能(如数据分析技能调用Excel技能)

Claude将上下文窗口划分为固定区动态区,严格控制各部分开销:

Context = FixedZone + DynamicZone
- FixedZone(固定区): 系统提示 + 所有技能元数据 + 对话历史(精简) → 低开销、常驻
- DynamicZone(动态区): 激活技能指令 + 执行中资源 + 临时数据 → 按需扩展、用完释放
预算管理
# 上下文预算约束
TotalTokens(C) ≤ C_max  # C_max为模型最大上下文窗口
DynamicTokens(D) ≤ D_max  # D_max为动态区配额(通常为C_max×0.7)

# 资源剪枝机制
Prune(C, T) = Remove(Rᵢ | Utility(Rᵢ, T) < ε)  # ε为效用阈值(通常0.3)
# 仅保留对当前任务T效用>ε的资源,释放低效用资源

# 上下文刷新策略
Refresh(C) = C - {Sᵢ⁻.Tier2, Sᵢ⁻.Tier3} ∪ {Sⱼ⁺.Tier2, Sⱼ⁺.Tier3}
# 卸载已完成任务的技能内容,加载新匹配技能的内容

上下文治理规则
# 技能加载优先级规则
Prior(Sᵢ) = w₁×Type + w₂×UsageFreq + w₃×SuccessRate
- Type权重: 核心技能(1.0) > 辅助技能(0.5) > 罕见技能(0.2)
- UsageFreq: 近期使用频率(越高权重越大)
- SuccessRate: 技能执行成功率(越高权重越大)

# 动态区资源释放规则
Release(Sᵢ) = (TaskComplete(Sᵢ) ∨ (IdleTime(Sᵢ) > T_idle)) ∨ (DynamicTokens(D) > D_max×0.9)
- T_idle: 空闲超时阈值(通常30分钟)
- 当动态区接近满额时,优先释放低优先级/低效用技能

Claude Skills上下文效率的本质是将“静态上下文”转化为“动态上下文流”,实现最小必要信息加载, 仅在需要时加载对应层级内容,避免全局Prompt稀释。同时通过分层披露把开销分账,确保核心推理不受无关信息干扰。其技能数量可无限扩展,元数据层开销恒定,不影响上下文窗口利用率。

这种架构让模型行为更接近人类信息处理方式——先知道“有什么工具”,再根据任务选择“合适工具”,最后“使用工具的必要部分”完成工作。


还是以前面所述的EXCEL报表制作为例:

场景设定

你有3个技能:Excel报表、邮件撰写、代码调试,你只需要完成一个任务:「生成1月销售Excel报表」。

1. 传统全局Prompt(会被严重稀释)

直接把三个技能的完整指令+所有参考资料一次性塞进上下文,总占用约15000 tokens

【系统全局Prompt】
1. Excel报表完整规则:xxx(5000 tokens,含所有表格、公式、图表逻辑)
2. 邮件撰写完整规则:xxx(5000 tokens,含各类邮件模板、措辞)
3. 代码调试完整规则:xxx(5000 tokens,含多种语言调试方法)

用户:生成1月销售Excel报表

明明只用Excel,邮件、代码的上万token无用信息塞满上下文,核心推理被严重稀释,模型还容易混淆、出错。

2. Claude Skills(只加载必要信息,无稀释)

全程按三级渐进式加载,仅占用核心所需token,无用内容全程不进入上下文:

  1. 初始预加载(仅元数据,共150 tokens)
    只加载三个技能的极简描述,让模型知道“有这些工具”,不加载任何执行逻辑:
    【固定上下文】
    系统基础提示 + 技能元数据:
    - Excel报表:处理Excel,生成数据报表、图表(50 tokens)
    - 邮件撰写:编写、优化各类邮件(50 tokens)
    - 代码调试:排查、修复代码问题(50 tokens)
    
  2. 意图匹配(只选中Excel,加载其二层指令,800 tokens)
    识别任务是做Excel报表,匹配成功后,仅加载Excel技能的核心执行指令,邮件、代码技能完全不加载:
    【更新后上下文】
    固定上下文 + Excel核心指令:接收销售数据→创建工作表→计算增长率→生成柱状图→导出文件(800 tokens)
    
  3. 执行按需加载(仅加载所需脚本,200 tokens)
    执行时只调用Excel的表格创建、公式计算脚本,其他资源一律不加载,此时上下文总token仅1150
  4. 任务完成(释放非元数据,回归初始)
    报表生成后,立刻卸载Excel的指令和脚本,上下文回到初始150 tokens,无任何冗余残留。

整个过程,邮件、代码的所有内容从未进入上下文,模型只聚焦Excel的核心逻辑,完全没有Prompt稀释。

注:上述的token消耗数量仅供参考。请依照实际消耗的token数为准。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐