零基础认识大语言模型(LLM)工作原理(14.Skill:为什么 Agent 可以拥有专业技能?)

第十四章 Skill:为什么 Agent 可以拥有专业技能?

目录

零基础认识大语言模型(LLM)工作原理目录 - GuZhenYin - 博客园

本章导读

上一章,我们介绍了 Memory。

Memory 解决的是:AI 如何记住信息。

但是,仅仅拥有记忆,还不足以让 AI 成为真正的专业助手。

例如,一个刚毕业的程序员,即使记住了很多知识,也未必能够独立完成复杂的软件开发。

原因在于:知识(Knowledge)并不等于技能(Skill)。

同样,对于 Agent 来说,仅仅拥有大模型、Memory 和 Tool,还不足以解决复杂的专业任务。

它还需要具备一种更高层次的能力------Skill(技能)


14.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,而是把它们组织成一个可复用、可管理、可按需加载的能力模块。


本章总结

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

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