Technical Guide

10. Skills 原理:为什么 Hermes 把经验沉淀成 Skill

理解 Skill 在 Hermes 里的位置:它不是普通提示词,而是可复用、可加载、可维护的过程知识。

这篇解决什么问题

Hermes 里最有特色的设计之一,是 Skills。

很多 Agent 都有工具,但不一定有一套长期维护的“过程知识”。Hermes 的 Skill 解决的是另一个问题:同一类任务反复做时,不要每次都从零开始摸索。

Skill 不是工具

Tool 解决“能不能做”。

Skill 解决“应该怎么做”。

比如:

read_file 是工具
technical-tutorial-writing 是 Skill

read_file 只负责读文件。

technical-tutorial-writing 会告诉 Agent:写技术教程时要核对官方资料、不要营销腔、每篇有验证方式、代码块要能读。

Skill 也不是普通 prompt

普通 prompt 往往是一次性的。

Skill 是长期文件,通常有:

SKILL.md
references/
templates/
scripts/
assets/

SKILL.md 放稳定流程。

references/ 放长资料、经验记录、案例。

templates/ 放可复用模板。

scripts/ 放可执行辅助脚本。

这让 Skill 更像“可维护的操作手册”,而不是一次 prompt。

Hermes 为什么需要 Skill

因为很多任务不是靠模型临场发挥就能稳定做好。

例如:

  • 写公众号文章;
  • 做技术教程;
  • 操作 GitHub;
  • 生成日报;
  • 维护知识库;
  • 排查某类部署问题。

这些任务都有固定坑点、目录约定、质量检查和用户偏好。

Skill 把这些沉淀下来,下次任务开始时就能直接加载。

Skill 的使用方式

常见方式有三种:

1. 系统提示词里展示 skill 索引,模型按任务选择加载
2. 用户明确要求加载某个 skill
3. cron / subagent / CLI 启动时预加载 skills

在对话里,模型通常先看到可用技能索引;真正需要时,再调用 skill_view 读取完整内容。

为什么不全部加载

如果把所有 Skill 全部塞进上下文,会有几个问题:

  • 上下文太长;
  • 无关流程干扰当前任务;
  • 技能之间可能互相冲突;
  • 每轮成本变高。

所以 Hermes 更像“索引 + 按需加载”。

好 Skill 的标准

一个好 Skill 不只是说明“这个任务很重要”。

它应该写清楚:

什么时候使用
什么时候不要使用
执行步骤
常见坑
验证方式
相关文件/命令
如果失败怎么处理

对 Agent 来说,验证方式尤其重要。没有验证,Skill 很容易变成“看起来专业的建议”。

下一篇看什么

下一篇看源码:Skill 是怎么被发现、过滤、加载和写入的。