工作原理(14.Skill:为什么 Agent 可以拥有专业技能?)

4.1 从知识到技能
举个生活中的例子

假设有两个人

第一位:刚刚考过驾照。

他知道:

红灯停车;
绿灯通行;
如何倒车;
如何并线。
这些都是知识。

第二位:是一位开了十年的出租车司机。

面对复杂路况,他却知道:

什么时候提前变道;

什么时候绕开拥堵;

什么时候选择另一条路线。

这些就是技能。

可以发现:技能,并不是简单地拥有更多知识,而是知道如何综合运用这些知识去完成目标。

对于 AI 来说,也是一样。

LLM 拥有大量知识。

但是,

如何完成 Java Code Review?

如何分析数据库性能?

如何完成需求拆解?

这些并不是模型天然就会的。

它们需要被组织起来。

14.2 Skill 到底是什么?
很多文章把 Skill 理解成:一个 Prompt。

这是早期 Agent 框架的做法。

例如:

你是一位 Java 专家……

请按照以下格式回答……
然后保存起来,以后重复使用。

这就是早期所谓的 Skill。

但是今天来看,这种定义已经过时了。

在最新的现代 Agent 中,一个 Skill 通常包含:

Skill

├── Role(角色)
├── Prompt(提示词)
├── Tool(工具)
├── Workflow(执行流程)
├── Memory(知识)
└── Output(输出规范)

也就是说Skill 成为了一种完成特定任务的能力封装,而不是一段提示词。

14.3 为什么需要 Skill?
来看一个例子。

用户输入:帮我 Review 这段 Java 代码。

如果没有 Skill。

模型只能根据当前 Prompt 回答。

而Java Review Skill:

则可能会自动完成:

读取代码

分析代码规范

检查空指针

检查 SQL

检查事务

检查异常处理

生成 Review 报告
用户看到的还是一句话。
但是Agent 已经调用了一整套能力。

14.4 Skill 与 Tool 有什么区别?
这是很多同学也容易混淆的问题。

Tool回答的是:我能做什么?

例如:

查询数据库;
执行 Python;
打开浏览器。
Skill回答的是:为了完成某件事情,我应该怎么做?

例如:

Code Review。

它可能需要:

Git Tool;
File Tool;
Search Tool;
Terminal Tool;
多个 Tool。

因此Skill不是 Tool。

而是Tool 的组织者。

14.5 Skill 与 Workflow 又有什么区别?
Workflow强调流程。

例如:审批->报销->通知

每一步都提前定义。

Skill则强调能力。

例如,SQL 优化、代码开发、需求分析。

很多步骤其实需要模型自己决定。

因此Workflow解决的是流程固定问题。

Skill则解决的是专业能力复用问题。

14.6 Skill 为什么越来越重要?
随着 Tool 数量越来越多,一个新的问题出现了。

假设一个Agent 拥有300个tool

那么,模型的每一次推理。

是不是都要阅读 300 个 Tool Description(工具说明)?

答案当然是:不是。

因为如果这样,Prompt 会越来越长。

推理就会越来越慢。

准确率则会越来越低。

于是,现代 Agent 开始采用Skill 作为能力入口。

例如:Java Skill。

里面再包含几十个 Tool。

模型不用知道全部 Tool。

只需要知道有Java Skill。

14.7 新一代 Skill:渐进式披露(Progressive Disclosure)
这是近期 Skill 设计最大的变化。

早期 Agent 的做法是:

启动时,把所有 Prompt,所有 Tool全部发送给模型。

例如:

Prompt+300 个 Tool+全部说明

LLM
这样虽然简单,但有三个明显问题:

第一,上下文窗口被大量占用。很多 Token 都花在了工具说明上,而不是用户真正的问题。

第二,模型选择工具的难度越来越高。当几十甚至上百个工具同时出现时,模型容易误选,推理成本也随之增加。

第三,新增一个 Skill,就需要修改总 Prompt。系统规模越大,维护越困难。

因此,新一代 Agent 普遍采用了渐进式披露(Progressive Disclosure)。

它的思想非常简单:第一次,只告诉模型"有哪些能力";真正需要时,再展开具体细节。

例如:

最开始,模型看到的只是:

可用 Skill:

  • Java 开发
  • Python 数据分析
  • 数据库运维
  • 文档写作
    如果模型判断:当前任务属于 Java 开发。

Runtime 才会继续加载:

Java Skill

Prompt

Workflow

Tool List

Memory
最后才开始真正执行。

整个过程如下:

用户请求

LLM 判断需要哪个 Skill

加载该 Skill

继续推理

如果需要 Tool

继续加载 Tool 描述

执行 Tool

继续推理
请注意,这里有一个关键思想:不是所有能力都需要提前暴露给模型,而是在需要的时候逐步揭示。

这就是所谓的"渐进式披露"。

14.8 为什么渐进式披露如此重要?
如果把 Agent 比作一位工程师。

传统方式相当于我们每天上班,就要先阅读500 页员工手册,然后才开始工作。

但是渐进式披露则更像,

我如果需要写 SQL。

才打开数据库文档。

需要写 Java。

才打开 Java 文档。

这样工作效率更高。

模型其实也是一样。

14.9 OpenClaw 与 Claude Code 的 Skill 思想
虽然不同产品实现方式不同,但近年来都逐渐体现出相同的设计趋势:

Skill 不再只是 Prompt;
Skill 成为能力的组织单元;
按需加载,而不是一次性加载全部能力;
通过 Runtime 动态决定需要暴露哪些能力。
以 OpenClaw 为例,一个 Skill 可以组织 Prompt、Tool、Memory 等资源;而在 Claude Code 一类面向开发的 Agent 中,也会根据当前开发任务动态加载不同能力,而不是把所有开发规则一次性交给模型。

这说明,Skill 正在从"提示词模板"演变为 Agent 的能力管理机制。

14.10 一个相对完整的 Agent 架构
到这里,我们终于可以把前几章串起来了。

用户目标 │ ▼ Agent Runtime │ ┌───────────┼───────────┐ ▼ ▼ ▼ Memory Workflow Skill Router │ 选择合适的 Skill │ ▼ Skill ┌──────┼──────┐ ▼ ▼ ▼ Prompt Tool Memory │ ▼ LLM

我们可以看到,Skill 并不是替代 Prompt、Tool 或 Memory,而是把它们组织成一个可复用、可管理、可按需加载的能力模块。

本章总结
这一章,我们回答了五个关键问题:

Skill 是什么?
它不是一段 Prompt,而是一种完成特定任务的能力封装。
Skill 与 Tool 的区别?
Tool 提供单一能力,Skill 组织多个能力完成目标。
Skill 与 Workflow 的区别?
Workflow 管流程,Skill 管专业能力。
什么是渐进式披露(Progressive Disclosure)?
不一次性暴露所有能力,而是在运行过程中按需加载 Skill、Prompt 和 Tool。
为什么这是新一代 Agent 的趋势?
它减少上下文占用、降低模型决策复杂度、提高系统可扩展性,也是大型 Agent 系统走向工程化的重要标志。