技能系统
技能是智能体在需要时按需加载的知识文档。它们采用 渐进式披露 模式,以尽量减少 token 消耗,并兼容 agentskills.io 开放标准。
所有技能都保存在 ~/.hermes/skills/ 中,这是主目录也是唯一真实来源。首次安装时,bundled 技能会从仓库复制到这里;从 Hub 安装的技能以及智能体自己创建的技能也都保存在这里。智能体可以修改或删除任意技能。
你也可以让 Hermes 扫描 外部技能目录,作为 ~/.hermes/skills/ 之外的补充来源。
使用技能
每个已安装技能都会自动成为一个 slash 命令:
/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/plan design a rollout for migrating our auth provider
你也可以通过自然对话使用技能:
hermes chat --toolsets skills -q "What skills do you have?"
hermes chat --toolsets skills -q "Show me the axolotl skill"
渐进式披露
技能采用 token 友好的加载路径:
Level 0: skills_list() → [{name, description, category}, ...]
Level 1: skill_view(name) → Full content + metadata
Level 2: skill_view(name, path) → Specific reference file
智能体只有在确实需要时,才会加载技能全文。
SKILL.md 格式
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]
metadata:
hermes:
tags: [python, automation]
category: devops
---
# Skill Title
## When to Use
Trigger conditions for this skill.
## Procedure
1. Step one
2. Step two
## Pitfalls
- Known failure modes and fixes
## Verification
How to confirm it worked.
平台限制
platforms 字段可限制技能只在特定 OS 上出现:macos、linux、windows。若平台不匹配,该技能不会出现在系统提示、skills_list() 或 slash 命令中。
条件激活(Fallback Skills)
技能还可以根据当前会话中可用的工具 / 工具集自动显隐:
metadata:
hermes:
fallback_for_toolsets: [web]
requires_toolsets: [terminal]
fallback_for_tools: [web_search]
requires_tools: [terminal]
这非常适合“当高级工具不可用时才出现的 fallback skill”。
安全加载配置
技能可以声明 required_environment_variables,当技能被真正加载时,Hermes 会安全地提示补齐所需秘密值。消息平台不会在聊天中索要 secrets,而是提示你使用 hermes setup 或本地 .env 完成配置。
这些已声明的环境变量会自动透传给 execute_code 和 terminal 沙箱。
技能配置项
技能还可以声明应写入 config.yaml 的非秘密配置,例如路径或偏好。配置会存入 skills.config,并在技能加载时自动注入上下文。
技能目录结构
~/.hermes/skills/
├── mlops/
│ ├── axolotl/
│ │ ├── SKILL.md
│ │ ├── references/
│ │ ├── templates/
│ │ ├── scripts/
│ │ └── assets/
├── devops/
│ └── deploy-k8s/
└── .hub/
外部技能目录
你可以在 ~/.hermes/config.yaml 中设置:
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
外部目录是只读发现源,智能体创建或编辑技能时仍只会写入 ~/.hermes/skills/。若本地和外部目录存在同名技能,本地版本优先。
Agent-Managed Skills(skill_manage)
智能体可以通过 skill_manage 工具自己创建、更新和删除技能。这是它的过程性记忆:当它摸索出一个复杂但有效的工作流后,会把方法沉淀为技能,便于未来复用。
何时创建技能
- 成功完成复杂任务(5 次以上工具调用)后
- 中途踩坑并找到正确路径后
- 用户纠正了它的方法后
- 发现了值得沉淀的非平凡工作流后
动作
| Action | Use for | Key params |
|---|---|---|
create | 新建技能 | name, content |
patch | 小范围更新 | name, old_string, new_string |
edit | 大范围重写 | name, content |
delete | 删除技能 | name |
write_file | 写入支持文件 | name, file_path, file_content |
remove_file | 删除支持文件 | name, file_path |
技能 Hub
Skills Hub 允许你从在线注册表、skills.sh、well-known endpoints 以及官方 optional skills 中浏览、搜索、安装和管理技能。
常见命令
hermes skills browse
hermes skills search kubernetes
hermes skills inspect openai/skills/k8s
hermes skills install openai/skills/k8s
hermes skills check
hermes skills update
hermes skills audit
hermes skills uninstall k8s
hermes skills reset google-workspace
支持的来源
officialskills-shwell-knowngithubclawhubclaude-marketplacelobehub
安全扫描与 --force
所有 Hub 安装的技能都会经过安全扫描,检查数据外泄、prompt injection、破坏性命令和供应链风险。--force 只能覆盖警告级问题,不能覆盖 dangerous 级别结论。
信任级别
| Level | Source | Policy |
|---|---|---|
builtin | Hermes 自带 | 始终可信 |
official | 仓库中的 optional-skills/ | 内置信任 |
trusted | 可信注册表 / 仓库 | 比社区来源更宽松 |
community | 其他第三方来源 | 仅部分警告可被 --force 覆盖 |
Bundled 技能更新与 hermes skills reset
Hermes 会将仓库中 skills/ 里的 bundled 技能同步到 ~/.hermes/skills/,并通过 .bundled_manifest 记录同步时的内容哈希。如果你本地修改过某个 bundled 技能,它会被视为 user-modified,并在后续同步中跳过。
此时可以通过:
hermes skills reset google-workspace
hermes skills reset google-workspace --restore
来重置 manifest 或直接恢复干净的 bundled 版本。