Skills 与知识系统:让 AI 具备领域专业能力
AI 核心技能系列 · 第 10 篇
导语
通用大模型什么都会一点,但什么都不精。你让 GPT 写一份金融合规报告,它写得"像那么回事"但经不起专业审查;你让它做医疗辅助诊断,它能说出一堆教科书知识但不了解临床实践。
企业需要的不是"什么都会的通才",而是"懂我这个行业的专家"。怎么让 Agent 从通用走向专业?
答案是 Skills 系统 + 知识库。Skills 定义"怎么做",知识库提供"知道什么",再加上 MCP 连接"能做什么"——三者协同,让 Agent 具备真正的领域专业能力。
一、从通用到专业:Agent 能力进化路径
Level 0: 裸模型
↓ 加 System Prompt
Level 1: Prompt 定制(角色设定、规则约束)
↓ 加 RAG
Level 2: RAG 增强(接入领域知识库)
↓ 加 Skills
Level 3: Skills 加载(领域工作流 + 最佳实践)
↓ 加 MCP 工具
Level 4: 全能专家(知识 + 流程 + 工具三位一体)
每一层解决不同的问题:
| 层级 | 解决什么 | 局限 |
|---|---|---|
| Prompt | "用什么角色、什么风格" | 信息量有限,无法传递大量知识 |
| RAG | "需要知道什么" | 只提供参考信息,不指导工作流程 |
| Skills | "按什么流程做" | 封装领域最佳实践和操作规范 |
| MCP | "能执行什么操作" | 连接真实世界的工具和数据 |
二、Skills 系统设计理念
2.1 什么是 Skill
Skill 是一个结构化的知识包,以 Anthropic 标准格式定义。一个 SKILL.md 文件包含:
- YAML 前置元数据:
name(技能标识符,小写连字符)和description(功能描述及使用时机) - Markdown 正文:具体的工作流程(Workflow)、指南(Guidelines)、示例(Examples)等指令内容
- 可选依赖:
dependencies字段声明运行所需的软件包
2.2 渐进式披露(Progressive Disclosure)
Skill 的信息架构采用三层结构,按需加载,避免一次性塞入过多信息:
┌─────────────────────────────────────┐
│ Layer 1: 元数据层(Frontmatter) │
│ name + description │
│ → 用于 Skill 发现和选择 │
│ 大小:name ≤64字符, desc ≤200字符 │
├─────────────────────────────────────┤
│ Layer 2: 指令层(Instructions) │
│ 工作流程、Guidelines、Examples │
│ → 加载 Skill 时自动注入 │
│ 大小:几百字到几千字 │
├─────────────────────────────────────┤
│ Layer 3: 参考层(Reference) │
│ 完整的 API 文档、示例、边界情况 │
│ → 通过 REFERENCE.md 等文件按需查阅 │
│ 大小:任意 │
└─────────────────────────────────────┘
2.3 Skill 的生命周期
发现 → 加载 → 使用 → 卸载
1. 发现:Agent 根据用户需求,从 Skill 列表中找到匹配的 Skill
2. 加载:将 Skill 的指南层注入到 Agent 的上下文中
3. 使用:Agent 按 Skill 定义的流程完成任务
4. 卸载:任务完成后释放上下文空间
三、实战:创建你的第一个 Skill
3.1 Skill 文件结构
skills/
├── code-reviewer/
│ ├── SKILL.md # Skill 定义文件
│ ├── templates/ # 模板文件
│ │ └── review-report.md
│ └── examples/ # 示例
│ └── sample-review.md
├── sql-optimizer/
│ ├── SKILL.md
│ └── ...
└── README.md # Skill 目录索引
3.2 SKILL.md 编写示例
Anthropic 定义的 Skill 标准格式要求 SKILL.md 以 YAML 前置元数据(frontmatter)开头,包含 name 和 description 两个必填字段,然后是 Markdown 正文指令:
---
name: code-reviewer
description: 专业的代码审查助手,对 Python/JavaScript/Go 代码进行安全性、性能、可维护性审查,输出结构化报告。当用户要求代码审查、Code Review 或安全审计时使用。
---
# Code Reviewer - 代码审查专家
## 工作流程
### Step 1: 理解上下文
- 确认编程语言和框架
- 了解代码的业务场景
- 询问审查重点(安全/性能/规范/全面)
### Step 2: 逐层审查
按以下优先级逐层审查:
1. **安全性**(P0)
- SQL 注入、XSS、CSRF
- 敏感数据暴露
- 认证/授权缺陷
- 输入验证缺失
2. **正确性**(P1)
- 逻辑错误
- 边界条件处理
- 错误处理缺失
- 并发安全问题
3. **性能**(P2)
- N+1 查询
- 内存泄露风险
- 不必要的计算
- 缓存机会
4. **可维护性**(P3)
- 代码重复
- 命名规范
- 注释和文档
- 测试覆盖
### Step 3: 输出报告
使用以下格式输出审查报告:
| 优先级 | 文件:行号 | 类型 | 问题描述 | 修复建议 |
|--------|----------|------|----------|----------|
| P0 | app.py:42 | 安全 | SQL注入风险 | 使用参数化查询 |
### 审查统计
- P0 (阻塞): X 个
- P1 (重要): X 个
- P2 (建议): X 个
- P3 (可选): X 个
## Guidelines
- 对 P0 问题必须提供修复代码
- 每个问题都要说清楚"为什么这是问题"
- 好的代码也要给予肯定
- 审查意见要具体,不要笼统的"代码需要优化"
## Examples
- 用户说"帮我 review 这段代码"→ 激活本 Skill,按四层优先级审查
- 用户说"检查一下安全漏洞"→ 激活本 Skill,聚焦 P0 安全性审查
3.3 在 Agent 中使用 Skill
class SkillManager:
"""Skills 管理器"""
def __init__(self, skills_dir: str):
self.skills = {}
self.load_skills(skills_dir)
def load_skills(self, directory: str):
"""加载所有 Skill 的描述层"""
for skill_dir in os.listdir(directory):
skill_path = os.path.join(directory, skill_dir, "SKILL.md")
if os.path.exists(skill_path):
content = open(skill_path).read()
# 提取描述(第一段)
desc = self._extract_description(content)
self.skills[skill_dir] = {
"description": desc,
"full_content": content,
"loaded": False
}
def find_skill(self, user_request: str) -> str:
"""根据用户需求匹配 Skill"""
skill_list = "\n".join(
f"- {name}: {info['description']}"
for name, info in self.skills.items()
)
# 用 LLM 判断哪个 Skill 最匹配
response = llm.chat(f"用户需求: {user_request}\n\n可用Skills:\n{skill_list}\n\n最匹配的Skill是:")
return response # 返回 skill 名称
def activate_skill(self, skill_name: str) -> str:
"""激活 Skill,返回完整指南注入到 Agent 上下文"""
skill = self.skills.get(skill_name)
if skill:
skill["loaded"] = True
return skill["full_content"]
return ""
四、知识库构建方法论
4.1 知识库的类型
| 类型 | 内容 | 用途 | 示例 |
|---|---|---|---|
| 文档库 | 产品文档、技术手册 | RAG 检索 | 公司产品手册 |
| FAQ 库 | 常见问题和标准答案 | 快速匹配 | 客服知识库 |
| 案例库 | 历史案例和解决方案 | 参考学习 | 运维故障案例 |
| 规则库 | 业务规则和约束条件 | 决策依据 | 合规审查规则 |
4.2 知识结构化流程
原始数据 结构化处理 知识库
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ PDF 文档 │ │ 提取+清洗 │ │ 向量化存储 │
│ Word 文档 │ → │ 分类+标签 │ → │ 元数据索引 │
│ 网页内容 │ │ 关联+去重 │ │ 版本管理 │
│ 数据库 │ │ 质量审核 │ │ 权限控制 │
└──────────┘ └──────────────┘ └──────────────┘
4.3 知识更新策略
| 策略 | 频率 | 做法 |
|---|---|---|
| 自动同步 | 实时/每日 | 监控数据源变化,自动更新向量库 |
| 定期重建 | 每周/每月 | 全量重新处理,保证一致性 |
| 人工审核 | 按需 | 关键知识变更需要人工确认 |
五、Skills + MCP + RAG 协同
三者各有分工,组合起来才是完整的企业级 AI 能力:
┌─────────────────────────────────────────────┐
│ 用户请求 │
│ "帮我审查这份合同是否符合最新的合规要求" │
└──────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Skills: "合规审查" Skill 被激活 │
│ 定义了审查流程: │
│ 1. 提取合同关键条款 │
│ 2. 对照合规规则逐条检查 │
│ 3. 标记风险点并给出建议 │
│ 4. 生成审查报告 │
└──────────────────┬──────────────────────────┘
│
┌────────┼────────┐
│ │ │
▼ ▼ ▼
┌────────────┐ ┌────────┐ ┌──────────┐
│ RAG: │ │ RAG: │ │ MCP: │
│ 检索最新的 │ │ 检索 │ │ 读取合同 │
│ 合规法规 │ │ 历史案例│ │ 文件内容 │
└────────────┘ └────────┘ └──────────┘
│ │ │
└────────┼────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Agent 按 Skill 流程整合所有信息 │
│ 输出结构化的合规审查报告 │
└─────────────────────────────────────────────┘
三者的关系总结:
- Skills 定义 "怎么做"(流程和规则)
- RAG 提供 "知道什么"(领域知识)
- MCP 连接 "能做什么"(工具和数据)
六、企业级案例
案例一:金融合规审查 Agent
Skills: 合规审查流程(反洗钱规则、KYC 流程、风险评级标准)
RAG: 最新法规库 + 历史违规案例库
MCP: 交易数据库连接 + 客户信息查询 + 报告生成工具
效果: 审查时间从 2 天缩短到 2 小时,漏检率降低 40%
案例二:技术客服 Agent
Skills: 故障排查流程(分层诊断、升级标准、话术规范)
RAG: 产品文档库 + FAQ 库 + 历史工单库
MCP: 工单系统 + 监控系统 + 知识库管理
效果: 一次解决率从 45% 提升到 78%
案例三:代码审查 Agent
Skills: 代码审查规范(安全→正确性→性能→可维护性四层审查)
RAG: 编码规范文档 + 安全漏洞库
MCP: Git 仓库访问 + CI/CD 触发 + 代码分析工具
效果: 审查覆盖率 100%,P0 漏洞检出率提升 60%
七、职业视角
能设计 Skills 系统 = 能做 AI 产品化。这是从"能用 AI"到"能让 AI 产出业务价值"的关键跃升。
| 问题 | 核心答案要点 |
|---|---|
| 怎么让 Agent 具备领域能力? | Skills(流程)+ RAG(知识)+ MCP(工具)三层协同 |
| Skill 和 System Prompt 的区别? | Skill 更结构化、可复用、按需加载;System Prompt 一次性全量注入 |
| 知识库怎么保持更新? | 自动同步 + 定期重建 + 人工审核三策略结合 |
总结
- 能力进化路径:Prompt → RAG → Skills → MCP,四层递进
- Skills 三层架构:元数据层(发现)→ 指令层(使用)→ 参考层(深入)
- 知识库四种类型:文档库、FAQ 库、案例库、规则库
- 三者协同:Skills 定义流程,RAG 提供知识,MCP 连接工具
- 企业落地:金融、客服、代码审查等场景已有成熟实践
本文是 AI 核心技能系列 第 10 篇,共 12 篇。上一篇:MCP 深入理解 | 下一篇:多模态与模型评测
关注公众号「coft」,获取完整系列更新、配套代码和学习路线图。一起交流 AI 转行经验,助力职业跃升,迈向高薪岗位。