Claude的Skills机制是一种按需加载的专业知识模块,具有"用完即回收"特点,与传统工具调用和Multi-Agent架构有本质区别。Skills通过临时增强System Prompt实现Token效率的量级提升,同时保持单体架构的简单性。文章探讨了Skills与Sub-Agent的区别,提出了根据任务复杂度选择架构的原则,强调模块化是应对复杂性的根本策略,建议从简单开始渐进演进。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

引言

最近研究 Claude 的 System Prompt 时,发现了一个有意思的机制——Skills

表面上看,这只是"调用工具读取文件"的普通操作。但深入分析后发现,Skills 背后隐藏着一套精巧的架构设计思想,做 LLM 应用的人都应该了解。

从 Skills 机制出发,本文探讨 AI 系统的模块化设计哲学,以及它与 Multi-Agent 架构的本质区别。


一、什么是 Skills?

Skills 是 Claude 按需加载的专业知识模块。当你让 Claude 创建 PPT、编辑 Word 文档或处理 Excel 时,Claude 会动态加载对应的最佳实践指南,完成任务后再将这些知识从上下文中移除。

三个关键特征:

  1. 按需加载:只在需要时调用
  2. 用完回收:任务完成后从 context 移除
  3. 大而专业:单个 skill 5-15k tokens

你可能会问:这不就是普通的 function calling 吗?

确实,从技术实现看,Skills 就是一种特殊的工具调用。但它的独特之处在于架构理念。


二、Skills vs 普通工具调用

2.1 加载的内容不同

普通工具调用获取"数据":

get_weather() → 返回"今天 25°C"
search_database() → 返回"用户订单记录"
calculate() → 返回"计算结果 42"

这些都是任务相关的具体信息。

Skills 调用获取"元知识":

load_pptx_skill() → 返回"如何创建专业 PPT 的完整指南"
load_docx_skill() → 返回"Word 文档编辑的最佳实践"

Skills 返回的是任务无关的通用方法论——“授人以渔"而非"授人以鱼”。


2.2 Context 生命周期不同

这是最关键的区别。

普通工具返回的数据:

  • 持久保留在对话上下文中
  • 后续对话可以引用
  • 占用空间直到对话结束

Skills 加载的知识:

  • 只在当前任务期间使用
  • 任务完成后被回收
  • 不会永久占用上下文

举个例子:

场景1:普通工具

用户:“查一下北京天气” → get_weather() 返回:“北京 25°C,晴” → 这个数据留在 context 里

用户:“那上海呢?” → Claude 仍能看到之前的北京天气数据 → context 累积增长

场景2:Skills

用户:“帮我做个 PPT” → load_pptx_skill() 返回 8k tokens 的 PPT 制作指南 → Claude 基于这个指南创建 PPT → PPT 创建完成后,这 8k tokens 被回收

用户:“再帮我做个 Word 文档” → context 中已经没有 pptx skill 了 → 如果需要再次创建 PPT,会重新加载

这种"用完即回收"的设计带来两个好处:

  1. Token 效率最大化:Skills 内容通常很大(5-15k tokens),如果不回收,多次使用不同 skills 会快速耗尽 context
  2. 知识的无状态性:每次加载 skill 都是"干净的",不会因为之前的使用产生污染

2.3 加载时机不同

普通工具是响应式调用:

用户:"北京天气怎么样?"
→ Claude 推理:"需要天气数据"
→ 调用 get_weather("北京")
→ 得到数据后回答

Skills 是预判式加载:

用户:"帮我做个 PPT"
→ Claude 推理:"这需要 PPT 制作能力"
→ 调用 load_pptx_skill()  // 注意:这时还没开始做
→ 学习了方法论后,再开始创建 PPT

Skills 是在执行任务之前加载"如何执行"的知识,而普通工具是在执行过程中获取需要的数据。


2.4 本质:临时增强 System Prompt

换个角度看:

Skills 的本质是临时扩展系统提示词的能力边界,用完即弃。

这个理念可以推广到任何 LLM 应用:

  1. 不要把所有专业知识都塞进 System Prompt
  2. 设计一套"知识模块"系统
  3. 根据任务类型动态加载相关知识
  4. 任务完成后主动清理,避免 context 膨胀

Skills 更像是一种设计模式,类似于软件工程中的"资源池管理"在 LLM 领域的应用。


三、核心价值:Token 效率的量级提升

3.1 具体数据对比

假设一个典型的 AI 系统需要支持这些能力:

方案A:全量加载

能力 Token 消耗
Word 处理 10,000
PPT 制作 8,000
Excel 分析 12,000
PDF 操作 6,000
前端设计 15,000
总计 51,000

这意味着 Claude 200k 上下文窗口的 25% 被"可能用不到"的知识占据。

方案B:按需加载

场景 Token 消耗
普通对话 0
创建文档 10,000
创建 PPT 8,000

平均节省:40-50k tokens/对话


3.2 回收机制的价值

更重要的是 Skills 用完后会被回收:

没有回收机制:

1. "做个 PPT" → 加载 8k tokens
2. "做个 Word" → 累计 18k tokens
3. "分析 Excel" → 累计 30k tokens(一直保留)

有回收机制:

1. "做个 PPT" → 8k tokens,完成后回收
2. "做个 Word" → 10k tokens,完成后回收
3. "分析 Excel" → 12k tokens,完成后回收
峰值占用:12k tokens(只在单个任务期间)

这意味着:

  • 可以在一个对话中使用无限多的 skills
  • Context 空间不会因为使用 skills 而累积消耗
  • 长对话场景下优势更明显

3.3 优化的实际意义

  1. 成本控制:对于日均百万次请求的服务,每次节省 45k tokens 是巨大的成本差异
  2. 响应速度:更少的 tokens = 更快的推理速度
  3. 上下文空间:节省的空间可以用于更长的对话历史、更详细的用户需求
  4. 长对话支持:回收机制让长对话不会因为使用多个 skills 而耗尽 context

3.4 更深层的价值

Token 效率只是表面,Skills 还带来这些价值:

  1. 可维护性:修改某个能力时,只需更新对应的 skill 文件,不影响其他功能
  2. 可扩展性:添加新能力只需创建新的 skill 文件,无需修改核心系统
  3. 知识共享:用户可以创建自定义 skills,比如"公司财务报告规范",让整个团队统一标准

这些价值解释了 Skills 作为一种设计模式的吸引力。但更大的问题是:Skills 和当下流行的 Multi-Agent 架构有什么本质区别?该选哪个?


四、Skills vs Sub-Agent:单体智能与分布式智能

“如果 Skills 按某种编排逻辑串联起来,不就跟 Sub-Agent 一样了吗?”

这个问题涉及到 AI 系统设计中一个核心问题:单体智能 vs 分布式智能


4.1 表面相似:模块化 + 专业化

Sub-Agent 模式:

  • 规划 Agent 负责分解任务
  • 代码 Agent 专注于编程
  • 研究 Agent 擅长信息检索
  • 写作 Agent 精通文档创作

Skills 模式:

  • docx skill 提供文档处理知识
  • pptx skill 提供演示文稿知识
  • frontend skill 提供前端设计知识

两者都在追求"专业化分工"。区别在哪?


4.2 三个关键差异

差异1:推理主体——一个 Claude vs 多个 Agent

这是最核心的区别。

Sub-Agent 模式像团队会议:

每个 Agent 都是完全独立的 LLM 实例,有自己的推理过程、角色设定,甚至可以用不同的模型。

Skills 模式像查阅参考书:

虽然也有多次 LLM 调用,但关键区别是:

  • 始终是同一个 Claude 实例在思考
  • 上下文是连续的,不需要在不同实例间传递状态
  • 角色是一致的,不存在"视角切换"

差异2:调用开销——轻量 vs 重量

Sub-Agent 的每次调用:

  • 加载完整模型
  • 构建独立的系统提示词
  • 完整的推理生成过程
  • 每次都是"重新开始思考"

Skills 的工具调用:

  • 第一次:理解任务(LLM 推理)
  • 中间:读取文件(简单的文件 IO,几乎零成本)
  • 第二次:基于加载的知识执行(LLM 推理)

两次调用之间状态是保持的。第二次推理时 Claude 清楚地知道:

  • “我刚才理解了什么”
  • “我加载了什么 skill”
  • “我现在要做什么”

而 Sub-Agent 模式中,每个 Agent 是独立的,需要通过消息传递来"告诉"下一个 Agent 发生了什么。


差异3:状态管理——单体简单性 vs 分布式难题

Sub-Agent 面临的挑战:

  • 如何在不同 Agent 之间共享上下文?
  • 如果代码 Agent 发现了一个问题,研究 Agent 怎么知道?
  • 如何避免信息在传递过程中丢失或曲解?

这需要复杂的状态管理机制:共享内存、消息队列、事件总线。这也是 LangGraph、CrewAI 这些框架显得复杂的原因。

Skills 的状态管理:

  • 所有 skills 加载到同一个上下文中
  • Claude 能"看到"所有信息
  • 不需要额外的状态同步机制

这就是单体架构的优势。


4.3 更准确的类比

Skills 更像是"带中断的单次会话":

想象你在咨询一个专家:

  • 传统方式:专家脑子里装着所有知识,直接回答你
  • Skills 方式:专家说"等一下,让我查查资料"(加载 skill),然后基于资料继续回答

虽然有"暂停-查资料-继续"的过程,但还是同一个专家在回答,对话上下文是连续的。

  • Sub-Agent 方式:你先问专家 A,专家 A 说"这个我不懂,你去问专家 B",专家 B 给了答案后,你再回来问专家 A 要结论

每次换人,就需要重新解释背景。


4.4 用代码来理解

# Skills 模式(懒加载)
def handle_task(task):
# 第一次推理:分析任务
skill_needed = analyze_task(task)  # LLM 调用
# 加载模块(文件读取,非 LLM)
skill_content = load_skill(skill_needed)
# 第二次推理:使用加载的知识执行
result = execute_with_skill(task, skill_content)  # LLM 调用
return result
# Sub-Agent 模式(独立进程)
def handle_task(task):
plan = planner_agent.think(task)      # 新进程,LLM 调用
code = coder_agent.implement(plan)    # 新进程,LLM 调用
review = reviewer_agent.check(code)   # 新进程,LLM 调用
return review

关键差异:Skills 的多次调用是同一个进程的暂停-恢复,Sub-Agent 是多个独立进程的通信。


五、从 Skills 到智能编排:技术演进趋势

Skills 能进化成 Sub-Agent 吗?完全可以,而且可能已经在这条路上了。

5.1 现有的编排逻辑

Claude 的 System Prompt 里有这样一段指导:

“Claude 在使用计算机工具完成任务时,首要任务是检查可用的 skills,判断哪些与当前任务相关,然后再采取行动。”

这已经是一种简单的编排逻辑:


5.2 未来可能的演进

阶段一:智能规划

Claude 不仅判断"需要哪个 skill",还能规划"以什么顺序使用这些 skills"。

比如:“先用 data skill 分析数据,再用 visualization skill 制图,最后用 pptx skill 制作演示”

阶段二:分步执行

对于复杂任务,Claude 可能会多次调用自己:

  1. 第一次调用:使用 data skill 完成数据处理
  2. 第二次调用:使用处理结果和 visualization skill 制图
  3. 第三次调用:整合结果,用 pptx skill 生成最终文档

阶段三:自我反思

在每个步骤之后,Claude 评估结果质量。如果不满意,重新加载相关 skill 并调整策略,形成"规划-执行-反思"的闭环。

到了这个阶段,Skills 机制就真正进化成了一个 Agent 框架。但与传统 Sub-Agent 不同的是,这个框架仍然保持了单体架构的简单性——所有的"协作"都发生在同一个 Claude 实例的多轮对话中。


5.3 三代架构对比

第一代:Monolithic Prompt

  • 所有知识塞在一个超长 Prompt 里
  • 简单直接,但 Token 浪费严重
  • 修改困难,牵一发动全身

第二代:Skills(现在)

  • 知识模块化,按需加载
  • Token 效率提升,可维护性增强
  • 仍然是单个实例推理

第三代:智能编排(未来)

  • 可能演变成多 Agent 协作
  • 支持复杂任务的自动分解
  • 在保持效率的同时提升能力上限

这和软件架构的演进路径很像:单体应用 → 模块化设计 → 微服务架构


5.4 这种演进的优势

  1. 渐进式复杂度
  • 简单任务:单次调用,零额外开销
  • 中等任务:2-3 次调用,轻量级编排
  • 复杂任务:多次调用,完整的 Agent 工作流
  1. 保持状态连贯性
  • 即使是多轮调用,仍然是同一个对话历史
  • 不需要复杂的状态传递机制
  • 用户体验更加流畅
  1. 成本可控
  • 只在真正需要时才进行多次调用
  • 不像传统 Sub-Agent 那样每个任务都要启动多个实例
  • 对于大规模部署来说,成本差异巨大

六、架构选择要点

根据任务复杂度选择架构:

方案 适用场景 优势 局限
纯 Skills 单一任务、明确目标 简单、成本低、延迟小 只能处理简单任务
Skills + 编排 多步骤任务、需要规划 中等复杂度、成本可控 需要设计任务分解
完整 Sub-Agent 高度复杂、需要协作 能力上限高、支持并行 复杂度高、成本高

选择原则:

  1. 80/20 法则:如果简单方案能解决 80% 的问题,就不要用复杂方案
  2. 成本意识:记录每个 skill 的 token 消耗,分析使用频率,持续优化
  3. 渐进演进:从最简单的方案开始,遇到瓶颈再升级

七、总结:三个核心洞察

1. 模块化是应对复杂性的根本策略

无论传统软件还是 AI 系统,模块化都是核心:

  • 清晰的边界让系统更易理解
  • 独立的模块可以单独优化
  • 标准化的接口支持灵活组合

Skills 的本质就是将 AI 能力模块化。


2. 没有完美方案,只有合适的权衡

关键问题不是"哪个架构更好",而是:

  • 你的任务复杂度在什么层级?
  • 你能接受的成本上限是多少?
  • 用户对延迟有什么要求?

根据这些问题的答案选择架构,而不是追逐最新技术。


3. 从简单开始,渐进演进

不要一开始就构建复杂系统:

  1. 先用最简单的方案验证可行性
  2. 在实际使用中发现瓶颈
  3. 有针对性地优化

过早引入复杂性往往弊大于利。


后记

技术架构的选择,本质上是在复杂性和效率之间寻找平衡点。最成功的系统往往不是最复杂的,而是在给定约束下做出了最合理权衡的。

留给你的思考题:

  1. 你的 LLM 应用真的需要 Multi-Agent 架构吗?
  2. 更简单的 Skills 模式能解决 80% 的问题吗?
  3. 增加的复杂性带来的收益值得付出的成本吗?

读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

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

更多推荐