引言:大模型的“知识困境”

当前,大语言模型(LLM)的能力令人惊叹——写代码、做规划、分析文档,样样精通。但当我们试图将其应用于特定领域任务时,却常遇到一个根本性问题:

模型知道“能做什么”,但不知道“该怎么做”。

例如:

  • 用户说:“从这份 PDF 中提取表格数据。”
  • 模型知道有 read_file 工具,但不知道该用 pdftotext 还是 PyMuPDF;
  • 用户说:“搭建一个 MCP 协议服务器。”
  • 模型可能连 MCP 是什么都不知道。

传统解决方案?收集数据、微调模型、重新部署——成本动辄上万,周期数周,且需要 ML 专家介入。

有没有更轻量、更灵活的方式?

答案是:知识外显化(Knowledge Externalization)。


什么是“知识外显化”?

“知识外显化”是一种将领域专家知识从模型参数中解耦出来,以结构化、可编辑、可热插拔的形式存储在外部文件中的设计思想。

其核心理念是:

不要把知识塞进模型,而是让模型按需加载知识。

这就像给 LLM 配备了一个“技能插槽”——当你需要处理 PDF 时,插入“PDF 技能卡”;当你需要做代码审查时,插入“Code Review 技能卡”。

无需训练,无需重启,写个 Markdown 文件即可生效。


技能(Skill) vs 工具(Tool):本质区别

很多人混淆“工具”和“技能”,其实二者定位完全不同:

表格

概念是什么举例
工具(Tool)模型“能做什么”bash、read_file、write_file
技能(Skill)模型“知道怎么做”“如何用 pdftotext 提取 PDF 文本”、“MCP 协议的最佳实践”
  • 工具 = 执行能力(原子操作)
  • 技能 = 领域知识 + 方法论(组合策略)

没有技能,模型面对复杂任务只能“瞎猜”;有了技能,它就能像专家一样思考。


技能系统的设计:三层渐进披露

为了让上下文保持精简,同时支持任意深度的知识注入,我们采用 “三层渐进披露” 架构:

🟢 Layer 1:元数据(始终加载)

  • 仅包含技能名称和简短描述
  • 每个技能约 100 tokens
  • 用于系统提示(System Prompt),告知模型“有哪些技能可用”

text

编辑

- pdf: 处理 PDF 文件,支持提取、合并、创建
- mcp-builder: 构建符合 MCP 协议的服务器

🟡 Layer 2:技能正文(按需加载)

  • 完整的 SKILL.md 内容(Markdown 格式)
  • 包含详细步骤、命令示例、注意事项
  • 通过 Skill 工具触发,作为 tool_result 注入对话

markdown

编辑

# PDF 处理技能

## 提取文本
推荐使用 `pdftotext`(速度快):
```bash
pdftotext input.pdf -

提取表格

使用 camelot-py(需安装):
...

text

编辑


### 🔵 Layer 3:资源文件(按需引用)
- 脚本(`scripts/`)、参考文档(`references/`)、模板(`assets/`)
- 技能正文可直接引用这些资源
- 支持无限扩展

---

## 关键优化:缓存友好的知识注入

你可能会问:为什么不直接把技能内容拼进 System Prompt?

**因为那会破坏 LLM 的 KV Cache!**

现代 LLM 推理服务(如 Anthropic、OpenAI)会对 **固定前缀** 进行缓存。一旦 System Prompt 改变,缓存失效,推理成本飙升 **20–50 倍**。

我们的解决方案是:

> **将技能内容作为 `tool_result`(用户消息)追加到对话末尾**

这样:
- System Prompt 不变 → 缓存命中 ✅
- 模型仍能“看到”新知识 ✅
- 成本几乎不增加 ✅

这也是 Claude Code 等生产级系统的核心技巧。

---

## 实战:如何添加一个新技能?

只需三步:

1. 在 `skills/` 目录下新建文件夹,如 `skills/pdf/`
2. 创建 `SKILL.md`,填写 YAML 元数据 + Markdown 正文
3. 保存,无需重启 Agent!

```yaml
---
name: pdf
description: 处理 PDF 文件,支持文本/表格提取、合并等操作
---
# PDF 处理指南
...

任何人——开发者、产品经理、领域专家——都可以贡献技能,彻底打破 AI 能力的“黑箱”。


对比:传统 vs 知识外显化

表格

维度传统方式知识外显化
添加新能力微调模型($10K+,数周)写 SKILL.md(免费,几分钟)
技术门槛需 ML 专家 + GPU 集群会写 Markdown 即可
上下文开销全量知识塞入 prompt按需加载,保持精简
可维护性模型版本管理复杂Git 管理技能文件
可解释性黑盒决策知识透明可审计

结语:迈向可组合的智能体未来

“知识外显化”不仅是一种工程技巧,更是一种AI 系统设计哲学:

智能不应只存在于模型内部,而应分布在整个系统生态中。

通过将知识模块化、标准化、可共享化,我们正在构建一个可组合、可协作、可进化的智能体基础设施。

未来,或许每个团队都会维护自己的“技能库”,每个开发者都能像搭积木一样,为 LLM 装配专业能力。

而这,正是 AI 工程化的真正起点。

更多推荐