Hermes 装好了,但你真的用对它的技能系统了吗?
Hermes 的技能系统远不止"装几个插件"那么简单。三层渐进加载、按需触发、自动学习闭环——这套机制决定了你的 Agent 是"裸机聊天"还是"专业助手"。本文从原理到实操,讲清找技能、装技能、用技能、写技能的全流程。
说实话,大部分人装完 Hermes 之后的使用方式是:打开终端,敲 hermes,然后开始对话。模型不错,回答也挺好,但总感觉差了点什么——让它写个 GitHub PR 流程,它给了你一份操作手册;让它优化 SEO,它给了一堆泛泛的建议。
问题出在哪?你一直在用 Hermes 的"裸机模式"。
技能包到底是什么?不是插件,比插件聪明
Hermes 官方把 Skill 定义为"按需加载的知识文档"——一份带 YAML 头信息的 Markdown 文件,教会 Hermes 如何处理特定任务。它不是传统意义上的插件(没有二进制、没有运行时依赖),而是一套结构化的"做事方法论"。
举个例子:一个 GitHub PR 工作流技能,里面写好了"什么时候切分支、commit message 用什么格式、什么时候跑 gh pr create、PR 描述要包含哪些信息"。Hermes 读到这份文档后,就知道了这套流程——你再告诉它"帮我给这次的改动提个 PR",它不会给你写操作手册,而是直接动手干活。
理解了这个本质,你就能明白 Hermes 为什么把这套机制叫做"技能"而不是"插件":插件是给系统加功能,技能是给 Agent 教方法。
三层加载:装 100 个技能也不会炸 token
这是 Hermes 技能系统最巧妙的设计。它不是一次性把所有技能内容塞进上下文(那样 token 早炸了),而是分三层按需加载:

| 层级 | 加载内容 | Token 消耗 | 触发时机 |
|---|---|---|---|
| Level 0 | 所有技能的名称 + 一句话描述 | ~3k tokens | 会话启动时自动注入 |
| Level 1 | 单个技能的完整 SKILL.md | 按需 | Agent 判断任务相关时调用 skill_view |
| Level 2 | 技能内的 references/ 或 scripts/ 文件 | 按需 | 深度需要时才读取 |
这个设计意味着:你装 10 个技能和装 100 个技能,日常对话的 token 开销几乎一样——只有那些跟当前任务真正相关的技能才会被展开。这也是为什么 Hermes 官方建议"让技能保持聚焦":一个"如何部署 Python 应用到 Fly.io"的技能,比一个"涵盖所有 DevOps"的大而全技能实用得多。
去哪找技能?官方 Hub + skills.sh 两条路
Hermes 内置了一个技能市场,直接在终端里就能浏览和搜索:
# 浏览所有可用技能
hermes skills browse
# 按关键词搜索
hermes skills search github
hermes skills search kubernetes --source skills-sh
# 安装前先预览
hermes skills inspect <技能名称>
# 一键安装
hermes skills install <技能名称>
# 更新全部已安装技能
hermes skills update
安装后技能直接写入 ~/.hermes/skills/,重启会话就能用,零配置。
如果你在多个 Agent 工具之间切换(比如同时用 Hermes、Cursor、OpenClaw),skills.sh 是更好的选择——它把技能装到 ~/.agents/skills/ 这个跨平台标准目录,然后在 Hermes 的 config.yaml 里加一行 external_dirs 配置就能共享。不过对大多数人来说,hermes skills install 已经足够了。
而且你不需要退出对话去装技能。在 Hermes 会话里直接敲:
/skills search github
/skills install github-pr-workflow
装完 /reload-skills 刷新一下,当场就能用。
三种触发方式,不用记命令
很多人以为技能必须用 /skill-name 这种斜杠命令才能触发。实际上 Hermes 支持三种方式:
- 斜杠命令:
/github-pr-workflow 帮我给这次的改动提PR——最直接的方式 - 自然语言:直接说"帮我用简历优化技能处理这份JD",Hermes 会自己用 skill_view 加载对应的技能
- 自动识别:Hermes 根据你的任务描述,自动在技能列表中匹配最相关的技能并加载
第三种最省心——你只管说你要干什么,Hermes 自己判断该调用哪个技能。技能列表越多,它的"直觉"越准。
五分钟写一个自己的技能
技能的门槛极低。在你的 ~/.hermes/skills/ 下面新建一个目录,写一份 SKILL.md 就行:
~/.hermes/skills/
└── my-tools/
└── docker-cleanup/
├── SKILL.md
└── references/
└── common-issues.md
SKILL.md 的核心结构就四块:什么时候用(触发条件)、怎么做(步骤流程)、容易踩什么坑(Pitfalls)、怎么验证(Verification)。YAML 头信息写清楚名字、描述和标签:
---
name: docker-cleanup
description: 清理 Docker 无用的镜像、容器和卷,释放磁盘空间
version: 1.0.0
metadata:
hermes:
tags: [devops, docker]
category: devops
---
Hermes 还有一个独特的能力:任务完成后自动提议生成技能。当你完成一个复杂任务(5 次以上工具调用),Hermes 会主动问你"要不要把这个流程保存为技能?"——把刚才踩过的坑、走过的弯路、验证过的好使的命令全部写进去。这就是 Hermes 的"学习闭环",用着用着,它对你工作场景的理解会越来越深。
Skills 不是 Memory,别搞混了
很多新用户会把这两件事弄混,官方给了一个很形象的区分:
| Skills(技能) | Memory(记忆) | |
|---|---|---|
| 存什么 | 怎么做事(程序性知识) | 事物是什么(事实性知识) |
| 什么时候加载 | 按需,任务相关时才加载 | 每次会话都注入 |
| 能有多大 | 可以几百行 | 应该尽量紧凑 |
| 典型例子 | "如何部署到 Kubernetes" | "用户偏好深色模式" |
经验法则很简单:会写进参考文档的放技能里,写在便利贴上的放记忆里。
不止 CLI,15+ 平台都能用
Hermes 的技能系统不挑平台。同一个 GitHub PR 工作流技能,你在终端里能用,在 Telegram、Discord、Slack、企业微信、飞书、钉钉上也能用。而且可以通过 hermes skills config 按平台细粒度控制——比如在 Telegram 上只保留日常助理类技能,把开发类技能关掉,避免误触发。
仙踪问道团队在为国内用户部署 Hermes 的过程中也观察到,用户在完成基础安装后最大的效率跃升,往往不是换模型,而是装对了三到五个匹配自己工作场景的技能包。一个装了代码审查、GitHub 工作流和 Docker 管理技能的用户,跟一个"裸机"用户相比,处理日常开发任务的效率差异肉眼可见。
技能的积累是 Hermes 区别于其他 AI Agent 的核心壁垒——它不是一次性配置,而是随着你的使用持续进化的能力系统。你今天教会它的每一件事,下个月它还记得。

