跳到主要内容

技能系统

技能是智能体在需要时按需加载的知识文档。它们采用 渐进式披露 模式,以尽量减少 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 上出现:macoslinuxwindows。若平台不匹配,该技能不会出现在系统提示、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_codeterminal 沙箱。

技能配置项

技能还可以声明应写入 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 次以上工具调用)后
  • 中途踩坑并找到正确路径后
  • 用户纠正了它的方法后
  • 发现了值得沉淀的非平凡工作流后

动作

ActionUse forKey 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

支持的来源

  • official
  • skills-sh
  • well-known
  • github
  • clawhub
  • claude-marketplace
  • lobehub

安全扫描与 --force

所有 Hub 安装的技能都会经过安全扫描,检查数据外泄、prompt injection、破坏性命令和供应链风险。--force 只能覆盖警告级问题,不能覆盖 dangerous 级别结论。

信任级别

LevelSourcePolicy
builtinHermes 自带始终可信
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 版本。