🚀 告别"一次性聊天":揭秘让 AI 智能体越用越聪明的秘密武器 —— Skills
💡 导读:每次跟 AI 智能体(Agent)对话都要从头交代?上次纠正的错下次又犯?
其实它缺的不是智商,而是经验。一文讲透 Skills(技能) 机制,从概念到实战,让你的智能体拥有"程序性记忆",越用越聪明。
🌟 前言:聪明的"实习生"与贴墙的"操作手册"
想象一下,公司新来了一位实习生。 他聪明伶俐,反应极快。第一天,你让他给客户开发票。他没做过,问同事结果填错了一个字段。你纠正道:
"记住,客户编号要填在第二栏,不是第一栏。"
第二天,他又填错了。第三天,他又问了一遍。 这时候你会怎么办?
你大概率会写一份**《发票操作手册》**贴在墙上:
✅ 操作手册
1. 填第一栏...
2. 编号填第二栏...
3. ⚠️ 注意:千万别填反!
以后,不管是谁(甚至是一个新来的机器人),只要照着手册做,就不会再错。
📖 一、什么是 Skills?
🧠 正式定义
Skills 是智能体的"程序性记忆"(Procedural Memory)。 它把曾经解决过的问题、踩过坑的经验、验证过的方法,沉淀成一份文档。下次遇到类似任务,智能体会自动加载并照着做。
🔄 核心概念辨析:智能体的"大脑"是怎么分工的?
| 概念 | 通俗理解 | 生命周期 | 举例 |
|---|---|---|---|
| Session (会话) | 📝 便利贴 | 聊完即销毁 | "刚才我们讨论了 A 项目进度" |
| Memory (记忆) | 📂 档案袋 | 跨会话持久 | "用户喜欢中文"、"DB 地址 10.0.1.5" |
| Skills (技能) | 📖 操作手册 | 跨会话持久,可迭代 | "遇到 B 问题:先 X 再 Y,⚠️ 别做 Z" |
一句话总结:
Memory回答 "你是谁 / 环境怎样"(Fact)Skills回答 "这件事该怎么做"(How-to)
🍳 二、智能体的"全家桶":Skills 与 Prompt、Memory、Tools、MCP
很多开发者容易把 Skills 和 Prompt、MCP 搞混。我们用**"餐厅后厨"**做个类比:
| 概念 | 餐厅对应物 | 核心关键词 | 一句话解释 |
|---|---|---|---|
| Prompt | 📜 这次点的菜单 | 一次性指令 | "今天我要做这道菜" |
| Memory | 📂 老顾客口味档案 | 静态事实 | "张总不吃辣,厨房有两个灶台" |
| Tools | 🍳 锅、刀、烤箱 | 动手能力 | "我能炒、能切、能烤" |
| MCP | 🔌 供应商标准插头 | 外部连接通道 | "能连隔壁冷链仓库拿食材" |
| Skills | 📖 招牌菜谱 + 经验贴 | 程序性经验 | "先腌 15min,中大火炒,⚠️ 千万别先放盐" |
🔍 Skills 到底强在哪?
- vs Prompt:Prompt 是临时交代,说完就忘;Skills 是制度化沉淀,写一次永久触发。
- vs Tools:Tools 是动词(手),Skills 是菜谱(脑)。
- vs MCP:MCP 是管道,Skills 是处理水流的过滤器。
🤖 协作场景:用它们完成"发项目周报"
1. Memory → 知道你喜欢 Markdown、中文、简洁
2. MCP → 连上 Jira/数据库,拉取本周数据
3. Tools → 执行脚本、读写文件、调用 API
4. Skills → 加载《周报规范》:按"完成/阻塞"分类,⚠️避开敏感数据
5. Prompt → 临时调整:"这周重点写 A 模块延期原因"
它们不是竞争关系,而是分工协作的完整链路。
💰 三、为什么要用 Skills?
📊 算一笔经济账
| 场景 | 没有 Skill | 有 Skill | 节省 |
|---|---|---|---|
| 对话轮数 | 8-12 轮 | 3-5 轮 | ↓ 60% |
| 耗时 | 5-10 分钟 | 2-3 分钟 | ↓ 70% |
| 出错率 | 高(凭记忆) | 低(照手册) | ↓ 80% |
如果团队每周遇到 10 次复杂任务 → 每月节省 8-12 小时。
🎯 六大核心价值
上次坑写进 Skill,下次自动避雷
新 Session/新人加载 3 个 Skill,10 分钟上手
核心人员请假,新人加载 Skill 直接干活
同一任务,同一种做法,同一个结果
减少探索试错的 Token 消耗
一次解决,永久受益
⚡️ 黄金法则:流程需要 5+ 次工具调用,或你在反复教同一件事 → 该沉淀为 Skill。
📝 四、Skills 包含了哪些内容?
一份好的 Skill,结构应该像一份严谨的技术 SOP。
1️⃣ 基本信息(YAML Frontmatter)
name: deploy-to-test-server
description: 部署前端项目到测试服务器
tags: [frontend, deployment, ops]
related_skills: [git-pr-workflow]
2️⃣ 核心正文(Markdown)
这是"操作手册"的灵魂:
| 模块 | 作用 | 示例 |
|---|---|---|
| When to use | 什么时候触发? | "当你需要将前端部署到测试环境时" |
| Core approach | 核心思路与大原则 | "先构建,再 SCP,最后重启服务" |
| Steps | 编号步骤(第一步、第二步...) | "1. npm run build → 2. scp dist/..." |
| Pitfalls | ⚠️ 踩坑记录(最有价值!) | "⚠️ 确认 dist/ 存在再 SCP,否则清空远程!" |
| Verification | 验收清单 | "curl 测试页面返回 200 即成功" |
3️⃣ 🛠️ 实战演示:30 秒创建一个 Skill
在 ~/.hermes/skills/my-skill/SKILL.md 中写入:
---
name: deploy-to-test
description: 部署 dist 到测试服务器 10.0.1.100
---
## When to use
需要将前端构建产物部署到测试环境时。
## Steps
1. 执行 `npm run build`
2. 确认产物在 `dist/` 目录
3. 执行 `scp -r dist/ user@10.0.1.100:/var/www/app`
4. 执行 `ssh user@10.0.1.100 "systemctl restart app"`
## Pitfalls
- ⚠️ 确认 `dist/` 存在再执行 SCP,否则会清空远程目录!
- ⚠️ IP 是 10.0.1.100(测试),别写成 10.0.1.200(生产)!
• 《组件库使用规范》:AntD 表单必填校验怎么写、Modal 关闭时机
• 《Git Commit 规范》:feat/fix 格式、避免"更新代码"这种废话
• 《ESLint 排错指南》:常见报错 + 修复步骤合集
⚙️ 五、Skill 运行机制:渐进式披露 + 匹配逻辑
❓ 灵魂拷问:如果有 100 个 Skill,每个几千字,智能体每次都要读几十万字的 Skill 全文吗?那 Token 不就爆了吗?
答案是否定的。智能体使用的是一个非常聪明的机制 → 渐进式披露(Progressive Disclosure)。
📚 类比:图书馆借书
| 做法 | 过程 | 结果 |
|---|---|---|
| ❌ 全量加载 | 把 100 万本书全搬到桌上让你翻 | 桌子放不下(Context 爆满),找书极慢 |
| ✅ 渐进式披露 | 先看检索卡 → 找到目录 → 只复印相关页 | 桌面整洁,精准高效 |
🔍 匹配逻辑详解(核心!)
智能体的匹配不是简单的"关键词搜索",而是基于语义理解的智能匹配:
用户输入:"帮我把代码发到测试环境"
↓
【阶段一:全局扫描 L1】
智能体读取所有 Skill 的 name + description(仅索引,不读正文)
↓
语义匹配引擎分析:
"发" → deploy / publish / release
"代码" → frontend / build artifact
"测试环境" → test / staging / qa
↓
匹配结果:
✅ deploy-to-test-server (相关度 95%)
✅ publish-to-staging (相关度 80%)
❌ deploy-to-prod (相关度 10%,排除)
↓
【阶段二:按需加载 L2】
调用 skill_view 加载匹配度最高的 Skill 完整正文
仅载入 1-3 个 Skill(约 3-12KB),其余仍停留在索引状态
↓
【阶段三:串联调用】
如果命中多个 Skill,按相关度排序执行
通过 related_skills 自动串联(如先跑 lint,再 deploy)
↓
【阶段四:依计行事】
结合 SOP + Pitfalls,调用 Tools 执行
💡 匹配的关键特性
| 特性 | 说明 | 示例 |
|---|---|---|
| 语义理解 | 不是关键词匹配,而是理解意图 | 搜"部署"能命中 deploy-to-prod 和 release-beta |
| 多 Skill 命中 | 一次可能命中多个,按相关度排序 | "部署并通知" → 命中 deploy + notify 两个 Skill |
| 冲突解决 | 两个 Skill 矛盾时,优先级高的覆盖 | deploy-prod 优先级 > deploy-staging |
| 相关度阈值 | 低于阈值不加载,避免误触发 | 描述不匹配的 Skill 不会被加载 |
📊 Token 消耗对比(数据说话)
| 场景 | 全量加载 | 渐进式披露 | 节省 |
|---|---|---|---|
| 50 个 Skill 索引 | - | ~8 KB | - |
| 加载 3 个 Skill 正文 | - | ~12 KB | - |
| 全量加载 50 个 Skill 正文 | ~250 KB | - | - |
| 总 Token 消耗 | ~250K | ~20K | ↓ 92% |
💡 核心结论:渐进式披露保证了 Skills 规模可无限扩展,但运行成本始终可控。
🔧 六、如何提炼你自己的 Skills?
📋 提炼五步法
- 回顾对话:成功的关键是什么?卡在哪里?
- 提取核心逻辑:把零散指令抽象成编号步骤。
- 记录踩坑点:把"⚠️ 注意"写下来。
- 写验证方法:列出完成后的检查清单。
- 命名、分类、创建:存入
~/.hermes/skills/。
🏷️ 命名规范(非常重要!)
| 维度 | 推荐 ✅ | 避免 ❌ |
|---|---|---|
| 格式 | 动词-对象-场景 | 随意命名 |
| 示例 | deploy-frontend-prodparse-natural-query | my-skilltestv2-final最终版 |
| 语言 | 英文小写 + 连字符 | 中文命名(部分框架不支持) |
| 长度 | 简洁明了(3-5 个词) | 过长描述(系统会截断) |
🐛 调试 Skill 的 3 种方法
| 方法 | 操作 | 适用场景 |
|---|---|---|
| 手动加载 | 让智能体 skill_view name,检查是否正确加载 | 验证 Skill 语法和结构 |
| 观察执行 | 发送触发指令,观察是否按 Steps 执行 | 验证匹配逻辑和步骤顺序 |
| 日志追踪 | 查看终端日志,确认 L1→L2→L3 各阶段是否正确 | 深度调试匹配和加载问题 |
📐 好 Skill 的标准
| 维度 | 好 ✅ | 差 ❌ |
|---|---|---|
| 触发条件 | "当你需要配 CI 流水线时" | (没写什么时候用) |
| 步骤 | "第一步:xxx,第二步:xxx" | "大概就是这样,你看着办" |
| 踩坑记录 | "注意:A 和 B 容易搞反" | (没有记录) |
| 长度 | 一屏能看完 | 写了 20 页没人看 |
| 抽象程度 | 使用 ${ENV_VAR} 占位 | 硬编码 IP/密码/路径 |
🏗️ 七、实战案例:项目的 Skill 沉淀
Skill 不是坐在办公室里设计的,而是在代码泥泞中踩坑、填坑、记录长出来的。
📌 项目背景
前端系统,用户希望在图表弹窗用自然语言提问:
- "计算总和"
- "导出最近三天数据"
- 约束:不改后端 API,不破坏原有布局
🔄 从"踩坑"到"沉淀"
| 🚨 遇到的坑 | 💡 解决方案 | 📘 沉淀 Skill |
|---|---|---|
| Canvas 读不到数据 AI 看不懂 Canvas 像素 | 不读 Canvas,从 API 构建标准化 rows | 数据集快照捕获 |
| 自然语言歧义 "前三天"格式乱 | 建立关键词分类 + 领域归一化 | 意图解析与归一化 |
| LLM 算术不准 让 LLM 算总数会幻觉 | LLM 只做意图翻译,计算由 JS 执行 | LLM 规划 + 本地执行分离 |
| 布局破坏 把 AI 塞弹窗,UI 乱了 | 用 extra 触发独立悬浮面板 | 不破坏布局的助手模式 |
💬 沉淀前后对比
| ❌ 没有 Skill | ✅ 有 Skill | |
|---|---|---|
| 对话 | "请问ID 是多少?导出哪些字段?Excel 还是 CSV?" (反复确认 3 轮) | "已识别【导出】意图。匹配'ID',生成 CSV(含 BOM 头),请查收。" (一步到位) |
| 耗时 | ~5 分钟 | ~30 秒 |
| 体验 | 用户烦躁 | 用户惊喜 |
🎯 项目 Skill 提炼 Checklist
- 识别边界:只做一件事(意图解析 / 数据提取),不做万能胶水
- 抽象输入输出:用"当前页面的数据集"代替"ID",可复用
- 标记约束:明确写"不要做"的清单(不改后端、不读 Canvas、不破坏布局)
- 关联 Skill:通过
related_skills把 dataset/parser/modal 串联,1+1>2 - 验证可自动化:Checklist 能用 Tools 自动检查,不靠肉眼
通过 `related_skills` 关联。按需加载,解耦复用,正是渐进式披露的最佳场景。
👥 八、团队 Skills 管理:从"个人经验"到"团队资产"
🤔 核心问题:个人 Skills 写得再好,怎么让团队所有人受益?
📦 团队 Skill 共享流程
个人创建 Skill
↓
Git 仓库管理(skills-repo)
↓
团队 PR 审核(质量把关)
↓
hermes skills tap add <team-repo>
↓
全员自动同步,版本更新
📋 团队 Skill 编写规范
| 规范项 | 要求 | 示例 |
|---|---|---|
| 命名 | 团队/领域-动作-对象 | frontend/deploy-frontend-prod |
| 分类 | 按领域分目录(frontend/、backend/、ops/) | ~/.hermes/skills/frontend/deploy/ |
| 版本 | YAML 加 version 和 updated_at | version: 2.1 |
| 审核 | 提交 PR,至少 1 人 review | 避免低质量 Skill 流入 |
| 文档 | 每个 Skill 头部加 @author 和 @since | @author: zhangjie @since: 2024-03 |
🔄 版本管理与变更追踪
---
name: deploy-frontend-prod
description: 部署前端到生产环境
version: 2.1.0
updated_at: 2024-06-15
author: zhangjie
changelog:
- "v2.1: 新增健康检查步骤"
- "v2.0: 从单步 SCP 改为蓝绿部署"
- "v1.0: 初始版本"
---
🎯 新人 Onboarding 实战
新员工入职,10 分钟进入工作状态:
# 1. 安装团队 Skill 包
hermes skills tap add company-handbook
# 2. 自动加载 5 个核心 Skill
✅ 代码规范
✅ 部署流程
✅ 常用命令
✅ 联系人列表
✅ 故障应急预案
# 3. 新人可以直接问智能体:
# "怎么部署到测试环境?" → 自动加载 Skill,按步骤执行
⚠️ 失败案例:200 个 Skill 的教训
• 60% 的 Skill 已失效(接口下线、IP 变更)
• 30% 的 Skill 互相矛盾(同一操作不同步骤)
• 只有 10% 被高频使用
结论:Skill 数量不是 KPI,质量才是。宁缺毋滥,定期清理。
🛡️ 九、维护与常见坑:别让手册变成废纸
⚠️ 警告:不维护的 Skill 比没有 Skill 更危险。它会引导智能体按错误的方式做事。
⚡ 三大常见误区
| 🚨 误区 | 💥 症状 | ✅ 正确做法 |
|---|---|---|
| 把 Memory 当 Skill 用 | 在 Skill 里写"用户叫张三" | 个人偏好、环境事实放 Memory |
| 单体巨无霸 | 一个 Skill 写 2000 行,涵盖部署/测试/监控 | 按职责拆分成 3-5 个小 Skill |
| 写后不管 | Skill 里 IP 换了、接口下线,无人更新 | 建立"谁用谁更新"文化 |
🔄 Skill 生命周期
发现需求 → 解决问题 → 提炼 Skill → 团队共享 → 使用反馈 → 更新迭代
↑ ↓
└────────────────── 循环改进 ─────────────────────────────────┘
📋 日常维护清单
- 用了就检查:每次用完后,确认步骤是否还准确
- 定期清理:项目下线/流程变了,果断删除或归档
- 安全红线:Skill 里绝不要硬编码密钥、密码或敏感路径
- 环境变量解耦:用
${TEST_SERVER_IP}代替写死的 IP
🔮 十、展望:AI 自动生成 Skill 的未来
Skills 目前主要靠人工沉淀,但这个领域正在快速进化。
| 趋势 | 说明 | 价值 |
|---|---|---|
| 🤖 自动提取 | 智能体从成功对话自动提取步骤,生成 Skill 草稿 | 你只需审核确认,大幅降低创建成本 |
| 📊 A/B 测试 | 系统追踪不同 Skill 版本的执行成功率 | 自动推荐更优版本,持续优化 |
| 🔄 动态优化 | 根据执行反馈,Pitfalls 自动累积、排序 | 经验自动沉淀,越用越聪明 |
| 🌐 Skill 市场 | 社区共享优质 Skill,一键安装 | 开箱即用,不必重复造轮子 |
💡 你现在要做的:先养成手动沉淀的习惯。当 AI 能自动生成 Skill 时,你的审核能力就是最好的壁垒。
🎉 结语:给"一次性聪明"注入"永久性智慧"
AI 智能体不是魔法,它是一个拥有无限潜力的**"超级实习生"**。
| 给它 | 它获得 |
|---|---|
| Prompt | 📜 指令(这次怎么做) |
| Tools | 🍳 手脚(能做什么) |
| Memory | 📂 背景(我是谁) |
| Skills | 📖 经验和灵魂(以后都该这么做) |
下次当你解决了一个复杂问题,或者在心里默念"下次别再犯这个错"的时候,停下来,花 5 分钟把它写成一个 Skill。你会发现,你的智能体,正在变得越来越懂你。
📝 全文总结卡片
| 定义 | Skills = 智能体的程序性记忆(操作手册) |
| 区别 | Prompt 临时 / Memory 静态 / Tools 能力 / MCP 连接 / Skills 是 SOP 流程 |
| 机制 | 渐进式披露(先索引 → 按需加载 → 执行),成本降 92% |
| 匹配 | 基于语义理解,不是关键词匹配。多 Skill 命中按相关度排序 |
| 价值 | 一次沉淀,永久复用。避免重复犯错,节省 60-80% 时间 |
| 团队 | Git 管理 + PR 审核 + 版本追踪。宁缺毋滥,定期清理 |
| 行动 | 下次遇到 5+ 步的复杂任务,把它写成 Skill! |