Skip to content

hermes agent Skills 系统

技能(Skills)是 agent 在需要时可以加载的按需知识文档。它们遵循 渐进式披露(progressive disclosure)模式,以最小化 Token 使用量,并兼容 agentskills.io 开放标准。

所有技能都存储在 ~/.hermes/skills/ 中——这是主要目录,也是唯一的真实来源。在全新安装时,内置技能会从仓库中复制到此处。通过 Hub 安装以及 agent 创建的技能也会存放在这里。agent 可以修改或删除任何技能。

您也可以让 Hermes 指向 外部技能目录(external skill directories)——即除本地目录外同时扫描的附加文件夹。请参阅下文的 外部技能目录 部分。

另请参阅:

每个已安装的技能都会自动作为一个斜杠命令可用:

Terminal window
# 在 CLI 或任何消息平台上:
/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
# 仅输入技能名称会加载该技能,并允许代理询问您的需求:
/excalidraw

内置的 plan 技能是一个很好的例子。运行 /plan [需求] 会加载该技能的指令,告知 Hermes 在必要时检查上下文,编写一份 Markdown 格式的实施计划(而不是直接执行任务),并将结果保存在相对于当前活动工作区/后端工作目录的 .hermes/plans/ 下。

您也可以通过自然语言对话与技能交互:

Terminal window
hermes chat --toolsets skills -q "你有哪些技能?"
hermes chat --toolsets skills -q "向我展示 axolotl 技能"

技能采用了一种节省 Token 的高效加载模式:

  • 第 0 级: skills_list()[{name, description, category}, ...] (约 3k Tokens)
  • 第 1 级: skill_view(name) → 完整内容 + 元数据 (大小不一)
  • 第 2 级: skill_view(name, path) → 特定的参考文件 (大小不一)

agent 仅在真正需要时才会加载完整的技能内容。

---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux] # Optional — restrict to specific OS platforms
metadata:
hermes:
tags: [python, automation]
category: devops
fallback_for_toolsets: [web] # Optional — conditional activation (see below)
requires_toolsets: [terminal] # Optional — conditional activation (see below)
config: # Optional — config.yaml settings
- key: my.setting
description: "What this controls"
default: "value"
prompt: "Prompt for setup"
---
# 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 字段将自身限制在特定的操作系统中:

匹配对象
macosmacOS (Darwin)
linuxLinux
windowsWindows
platforms: [macos] # 仅限 macOS(例如:iMessage, Apple Reminders, FindMy)
platforms: [macos, linux] # macOS 和 Linux

设置后,该技能在不兼容的平台上会自动从系统提示词、skills_list() 以及斜杠命令中隐藏。如果省略此字段,则该技能在所有平台上都会加载。

技能输出与媒体交付 (Skill output and media delivery)

Section titled “技能输出与媒体交付 (Skill output and media delivery)”

当技能响应(或任何 Agent 响应)包含媒体文件的绝对路径(例如 /home/user/screenshots/diagram.png)时,网关会自动检测该路径,将其从可见文本中剥离,并以原生方式将该文件交付至用户的聊天界面(如 Telegram 照片、Discord 附件等),而不是在消息中留下原始路径。

对于音频,[[audio_as_voice]] 指令会将音频文件提升为原生语音消息气泡(在支持此功能的平台上,如 Telegram、WhatsApp)。

强制以文档格式交付:[[as_document]]

Section titled “强制以文档格式交付:[[as_document]]”

有时你需要的恰恰与内联预览 相反:你希望文件作为可下载的附件进行交付,而不是被重新压缩的图像气泡。典型的例子是高分辨率的截图或图表 —— Telegram 的 sendPhoto 会将其压缩至约 200 KB、1280 像素,从而破坏可读性。而通过 sendDocument 发送 1-2 MB 的 PNG 则能保持原始字节完整。

如果响应(或其中包含的任何文本 —— 通常是最后一行)包含字面指令 [[as_document]],则从该响应中提取出的所有媒体路径都将作为文档/文件附件进行交付,而不是作为图像气泡:

这是为您渲染的图表:
/home/user/.hermes/cache/chart-q4-2025.png
[[as_document]]

该指令在交付前会被剥离,因此用户永远不会看到它。颗粒度设定为每个响应 “全有或全无”:只要发送一次 [[as_document]],同一响应中的所有图像路径都将作为文档交付。这与 [[audio_as_voice]] 的作用域一致。

在以下场景下,请在技能中使用该指令:

  • 你生成的截图或图表需要作为文件交付给用户(以便在其他工具中编辑、归档或完整分享)。
  • 默认的有损预览会遮挡细节(小字、像素级精确的图表、对色彩敏感的渲染图)。

在没有独立文档传输路径的平台(如 SMS)上,系统会回退至该平台所支持的任何附件传输机制。

技能可以根据当前会话中可用工具的情况,自动显示或隐藏自身。这对于回退技能(fallback skills)最为有用 —— 即只有当高级工具不可用时,才会出现的免费或本地替代方案。

metadata:
hermes:
fallback_for_toolsets: [web] # 仅当这些工具集不可用时显示
requires_toolsets: [terminal] # 仅当这些工具集可用时显示
fallback_for_tools: [web_search] # 仅当这些特定工具不可用时显示
requires_tools: [terminal] # 仅当这些特定工具可用时显示
字段行为
fallback_for_toolsets当列出的工具集可用时,技能被 隐藏。当它们缺失时显示。
fallback_for_tools同上,但检查的是单个工具而非工具集。
requires_toolsets当列出的工具集不可用时,技能被 隐藏。当它们存在时显示。
requires_tools同上,但检查的是单个工具。

示例: 内置的 duckduckgo-search 技能使用了 fallback_for_toolsets: [web]。当您设置了 FIRECRAWL_API_KEY 时,网页工具集可用,代理会使用 web_search —— 此时 DuckDuckGo 技能保持隐藏。如果缺少 API 密钥,网页工具集不可用,DuckDuckGo 技能会自动出现作为回退方案。

没有任何条件字段的技能行为与以前完全一致 —— 它们始终处于显示状态。

技能可以声明所需的环境变量,而不会在发现列表中消失:

required_environment_variables:
- name: TENOR_API_KEY
prompt: Tenor API key
help: 请访问 https://developers.google.com/tenor 获取密钥
required_for: full functionality

当遇到缺失的值时,只有在本地 CLI 中实际加载该技能时,Hermes 才会安全地询问该值。您可以跳过设置并继续使用该技能。消息平台界面绝不会在聊天中询问机密信息 —— 它们会提示您在本地使用 hermes setup 或修改 ~/.hermes/.env

一旦设置,声明的环境变量将 自动透传execute_codeterminal 沙箱中 —— 技能脚本可以直接使用 $TENOR_API_KEY。对于非技能相关的环境变量,请使用 terminal.env_passthrough 配置选项。详情请参阅 环境变量透传 (Environment Variable Passthrough)

技能还可以声明存储在 config.yaml 中的非机密配置设置(路径、偏好):

metadata:
hermes:
config:
- key: myplugin.path
description: 插件数据目录的路径
default: "~/myplugin-data"
prompt: 插件数据目录路径

这些设置存储在 config.yamlskills.config 项下。hermes config migrate 会针对未配置的设置进行提示,而 hermes config show 则会显示它们。当技能加载时,其解析后的配置值会被注入到上下文中,以便代理自动获知配置的参数。

详情请参阅 技能设置 (Skill Settings)创建技能 —— 配置设置 (Creating Skills — Config Settings)

~/.hermes/skills/ # 唯一的真实来源
├── mlops/ # 类别目录
│ ├── axolotl/
│ │ ├── SKILL.md # 主要指令(必需)
│ │ ├── references/ # 附加文档
│ │ ├── templates/ # 输出格式
│ │ ├── scripts/ # 技能可调用的辅助脚本
│ │ └── assets/ # 补充文件
│ └── vllm/
│ └── SKILL.md
├── devops/
│ └── deploy-k8s/ # 代理创建的技能
│ ├── SKILL.md
│ └── references/
├── .hub/ # 技能中心(Hub)状态
│ ├── lock.json
│ ├── quarantine/
│ └── audit.log
└── .bundled_manifest # 跟踪已植入的内置技能

如果您在 Hermes 之外维护技能 —— 例如,由多个 AI 工具共享的 ~/.agents/skills/ 目录 —— 您可以告知 Hermes 同时也扫描这些目录。

~/.hermes/config.yamlskills 部分添加 external_dirs

skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills

路径支持 ~ 扩展和 ${VAR} 环境变量替换。

  • 只读: 扫描外部目录仅用于发现技能。当代理创建或编辑技能时,它始终会写入 ~/.hermes/skills/
  • 本地优先: 如果本地目录和外部目录中存在相同的技能名称,本地版本优先。
  • 完全集成: 外部技能会出现在系统提示词索引、skills_listskill_view 中,并作为 /skill-name 斜杠命令使用 —— 与本地技能无异。
  • 静默跳过不存在的路径: 如果配置的目录不存在,Hermes 会忽略它而不报错。这对于在每台机器上可能不一定存在的可选共享目录非常有用。
~/.hermes/skills/ # Local (primary, read-write)
├── devops/deploy-k8s/
│ └── SKILL.md
└── mlops/axolotl/
└── SKILL.md
~/.agents/skills/ # External (read-only, shared)
├── my-custom-workflow/
│ └── SKILL.md
└── team-conventions/
└── SKILL.md

所有这四个技能都会出现在您的技能索引中。如果您在本地创建了一个名为 my-custom-workflow 的新技能,它将遮蔽(shadow)外部版本。

技能包是微小的 YAML 文件,用于将多个技能整合在一个斜杠命令下。当你运行 /<bundle-name> 时,包中列出的所有技能会同时加载 —— 这在处理特定任务总是需要同一套技能协作时非常有用。

Terminal window
# 创建一个用于后端功能开发的技能包
hermes bundles create backend-dev \
--skill github-code-review \
--skill test-driven-development \
--skill github-pr-workflow \
-d "后端功能开发 —— 代码审查、测试、PR 工作流"

然后在 CLI 或任何网关平台中:

/backend-dev 重构身份验证中间件

智能体会接收到加载了这三个技能的用户消息,斜杠命令之后的所有文本将作为用户指令一并发送。

技能包位于 ~/.hermes/skill-bundles/<slug>.yaml,其内容如下:

name: backend-dev
description: 后端功能开发 —— 代码审查、测试、PR 工作流。
skills:
- github-code-review
- test-driven-development
- github-pr-workflow
instruction: |
始终先编写失败的测试,然后再实现功能。
通过标准工作流提交 PR,并附带联合作者标签。

字段说明:

  • name (可选 —— 默认为文件名) —— 技能包的显示名称。会自动标准化为用于斜杠命令的连字符 slug (如 Backend Dev/backend-dev)。
  • description (可选) —— 在 /bundleshermes bundles list 中显示的简短描述。
  • skills (必需,非空列表) —— 技能名称或相对于你技能目录的路径。使用与 /<skill-name> 相同的标识符。
  • instruction (可选) —— 在加载的技能内容之前预置的额外引导语。非常适合固化 “我们如何协同使用这些技能”。
Terminal window
# 列出所有已安装的技能包
hermes bundles list
# 查看单个技能包详情
hermes bundles show backend-dev
# 交互式创建技能包(省略 --skill 标志可逐行输入)
hermes bundles create research
# 覆盖已有的技能包
hermes bundles create backend-dev --skill ... --force
# 删除技能包
hermes bundles delete backend-dev
# 重新扫描 ~/.hermes/skill-bundles/ 并报告变更
hermes bundles reload

在聊天会话中,/bundles 会列出所有已安装的技能包及其包含的技能。

  • 当 slug 冲突时,技能包优先于单个技能。如果你命名了一个名为 research 的包,且你同时拥有一个名为 research 的技能,那么 /research 会调用该技能包。这是有意设计的 —— 你通过命名将其选定为技能包。

  • 缺失的技能会被跳过,而非导致错误。如果一个技能包列出了 skill-foo 但你尚未安装,技能包仍会加载那些已解析的技能,并向智能体发送一条备注,列出被跳过的部分。

  • 技能包适用于所有界面 —— 交互式 CLI、TUI、仪表板聊天以及所有网关平台(Telegram、Discord、Slack 等)—— 因为调度机制与单个技能命令集中在同一处。

  • 技能包不会导致提示词缓存失效。它们与 /<skill-name> 一样,在调用时生成全新的用户消息 —— 不会修改系统提示词。

何时使用技能包而非手动安装每个技能?

Section titled “何时使用技能包而非手动安装每个技能?”
  • 当你总是为重复性任务组合相同的技能时(如 /backend-dev/release-prep/incident-response)。
  • 当你希望比连续输入多个 /skill 调用更简洁时。
  • 当你希望通过将技能包 YAML 存入共享 dotfiles 仓库并软链接到 ~/.hermes/skill-bundles/ 的方式,向整个团队发布 “任务配置文件” 时。

技能包仅仅是 YAML 别名 —— 它不会为你安装技能。技能本身必须已经存在(在 ~/.hermes/skills/ 或外部技能目录中)。否则,调用技能包时只会跳过那些缺失的技能。

代理可以通过 skill_manage 工具创建、更新和删除其自身的技能。这是代理的 程序性记忆 —— 当它理清了一个非平凡的工作流时,会将该方法保存为一项技能,以便将来复用。

  • 成功完成一项复杂任务(调用 5 次以上工具)后
  • 在遇到错误或死胡同并最终找到可行路径后
  • 当用户纠正了其操作方法后
  • 当它发现了一个不平凡的工作流时
行为用途关键参数
create从零开始创建新技能name, content (完整的 SKILL.md), 可选 category
patch针对性修复(首选)name, old_string, new_string
edit重大的结构性重写name, content (替换整个 SKILL.md)
delete完全移除一项技能name
write_file添加/更新辅助文件name, file_path, file_content
remove_file移除辅助文件name, file_path

您可以从在线注册表、skills.sh、直接的知名技能端点(well-known endpoints)以及官方可选技能中浏览、搜索、安装和管理技能。

Terminal window
hermes skills browse # 浏览所有 Hub 技能(官方优先)
hermes skills browse --source official # 仅浏览官方可选技能
hermes skills search kubernetes # 在所有来源中搜索
hermes skills search react --source skills-sh # 在 skills.sh 目录中搜索
hermes skills search https://mintlify.com/docs --source well-known
hermes skills inspect openai/skills/k8s # 安装前预览
hermes skills install openai/skills/k8s # 安装并进行安全扫描
hermes skills install official/security/1password
hermes skills install skills-sh/vercel-labs/json-render/json-render-react --force
hermes skills install well-known:https://mintlify.com/docs/.well-known/skills/mintlify
hermes skills install https://sharethis.chat/SKILL.md # 直接 URL(单文件 SKILL.md)
hermes skills install https://example.com/SKILL.md --name my-skill # 当 Frontmatter 缺失名称时强制指定
hermes skills list --source hub # 列出从 Hub 安装的技能
hermes skills check # 检查已安装的 Hub 技能是否有上游更新
hermes skills update # 在需要时根据上游更改重新安装 Hub 技能
hermes skills audit # 重新扫描所有 Hub 技能的安全风险
hermes skills uninstall k8s # 卸载一个 Hub 技能
hermes skills reset google-workspace # 将内置技能从“用户已修改”状态还原(见下文)
hermes skills reset google-workspace --restore # 同时恢复内置版本,并删除您的本地编辑
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills snapshot export setup.json # 导出技能配置
hermes skills tap add myorg/skills-repo # 添加自定义 GitHub 来源
来源示例备注
officialofficial/security/1passwordHermes 随附的可选技能。
skills-shskills-sh/vercel-labs/agent-skills/vercel-react-best-practices通过 hermes skills search <query> --source skills-sh 搜索。当 slug 与仓库文件夹不同时,Hermes 会解析别名式技能。
well-knownwell-known:https://mintlify.com/docs/.well-known/skills/mintlify直接从网站的 /.well-known/skills/index.json 提供的技能。使用站点或文档 URL 进行搜索。
urlhttps://sharethis.chat/SKILL.md指向单文件 SKILL.md 的直接 HTTP(S) URL。名称解析顺序:Frontmatter → URL 后缀 → 交互式提示 → --name 标志。
githubopenai/skills/k8s直接从 GitHub 仓库/路径安装,以及自定义 Tap。
clawhub, lobehub,browse-sh, claude-marketplace特定来源标识符社区或市场集成。

Hermes 目前集成了以下技能生态系统和发现来源:

这些技能维护在 Hermes 仓库中,安装时具有内置信任。

Terminal window
hermes skills browse --source official
hermes skills install official/security/1password

Vercel 的公共技能目录。Hermes 可以直接搜索、检查详情页、解析别名 slug 并从底层源代码仓库安装。

Terminal window
hermes skills search react --source skills-sh
hermes skills inspect skills-sh/vercel-labs/json-render/json-render-react
hermes skills install skills-sh/vercel-labs/json-render/json-render-react --force

基于 URL 的发现方式,来自发布了 /.well-known/skills/index.json 的站点。这并非单一中心化 Hub,而是一种 Web 发现协议。

Terminal window
hermes skills search https://mintlify.com/docs --source well-known
hermes skills inspect well-known:https://mintlify.com/docs/.well-known/skills/mintlify
hermes skills install well-known:https://mintlify.com/docs/.well-known/skills/mintlify

Hermes 可以直接从 GitHub 仓库和基于 GitHub 的 Tap 安装。当您已经知道仓库路径或想要添加自定义源仓库时,这非常有用。

默认 Tap(无需设置即可浏览):

Terminal window
hermes skills install openai/skills/k8s
hermes skills tap add myorg/skills-repo

作为一个社区来源集成的第三方技能市场。

  • 站点: clawhub.ai
  • Hermes source id: clawhub

6. Claude 市场类仓库 (claude-marketplace)

Section titled “6. Claude 市场类仓库 (claude-marketplace)”

Hermes 支持发布了与 Claude 兼容的插件/市场清单的仓库。

已知的集成来源包括:

Hermes 来源 ID:claude-marketplace

Hermes 可以搜索 LobeHub 公共目录中的代理条目,并将其转换为可安装的 Hermes 技能。

直接从任何 HTTP(S) URL 安装单文件 SKILL.md —— 当作者在自己的网站上托管技能(未在中心列出,且没有 GitHub 路径)时非常有用。Hermes 会获取该 URL,解析 YAML frontmatter,进行安全扫描并安装。

  • Hermes 来源 ID: url
  • 标识符: URL 本身(无需前缀)
  • 范围: 仅限 单文件 SKILL.md。包含 references/scripts/ 的多文件技能需要清单文件,且应通过上述其他来源发布。
Terminal window
hermes skills install https://sharethis.chat/SKILL.md
hermes skills install https://example.com/my-skill/SKILL.md --category productivity

名称解析顺序:

  1. SKILL.md YAML frontmatter 中的 name: 字段(推荐 —— 每个规范的技能都应包含此项)。
  2. URL 路径中的父目录名称(例如:.../my-skill/SKILL.mdmy-skill,或 .../my-skill.mdmy-skill),前提是它必须是一个有效的标识符(^[a-z][a-z0-9_-]*$)。
  3. 在带有 TTY 的终端中进行交互式提示。
  4. 在非交互式界面(如 TUI 内部的 /skills install 斜杠命令、网关平台、脚本)上,抛出一个指向 --name 覆盖参数的清晰错误。
Terminal window
# Frontmatter 中没有名称且 URL 后缀无效 —— 手动提供一个:
hermes skills install https://example.com/SKILL.md --name sharethis-chat
# 或者在聊天会话中:
/skills install https://example.com/SKILL.md --name sharethis-chat

信任等级 始终为 community —— 运行与所有其他来源相同的安全扫描。该 URL 会作为安装标识符存储,因此当您想要刷新时,hermes skills update 会自动从同一 URL 重新获取。

所有从 Hub 安装的技能都会经过 安全扫描器,用于检查数据外泄、提示词注入、破坏性命令、供应链信号以及其他威胁。

hermes skills inspect ... 现在还会显示可用的上游元数据:

  • 仓库 URL
  • skills.sh 详情页 URL
  • 安装命令
  • 每周安装量
  • 上游安全审计状态
  • 知名(well-known)索引/端点 URL

当您审核过第三方技能并希望覆盖非危险级别的策略拦截时,请使用 --force 参数:

Terminal window
hermes skills install skills-sh/anthropics/skills/pdf --force

重要行为说明:

  • --force 可以覆盖 “注意/警告(caution/warn)” 类发现的策略拦截。
  • --force 无法 覆盖判定为 “危险(dangerous)” 的扫描结论。
  • 官方可选技能(official/...)被视为内置信任(builtin trust),不会显示第三方警告面板。
等级来源策略
builtin随 Hermes 附带始终信任
official仓库中的 optional-skills/内置信任,无第三方警告
trusted知名注册表(如 openai/skills, anthropics/skills, huggingface/skills比社区来源更宽松的策略
community其他所有内容(skills.sh、知名端点、自定义 GitHub 仓库、大多数市场)非危险发现可用 --force 覆盖;“危险” 判定保持拦截

技能中心(Hub)现在可以追踪足够的数据源信息,以重新检查已安装技能的上游副本:

Terminal window
hermes skills check # 报告哪些已安装的 Hub 技能在上游发生了变化
hermes skills update # 仅重新安装有可用更新的技能
hermes skills update react # 更新特定的已安装 Hub 技能

该功能通过存储的源标识符以及当前上游捆绑包的内容哈希值来检测版本偏差。

如果您想分享一组技能,可以将其发布为 Tap:一个其他 Hermes 用户可以通过 hermes skills tap add <owner/repo> 添加的 GitHub 仓库。无需服务器,只需一个包含 SKILL.md 文件的目录。

owner/repo
├── skills/ # default path; configurable per-tap
│ ├── my-workflow/
│ │ ├── SKILL.md # required
│ │ ├── references/ # optional supporting files
│ │ ├── templates/
│ │ └── scripts/
│ ├── another-skill/
│ │ └── SKILL.md
│ └── third-skill/
│ └── SKILL.md
└── README.md # optional but helpful

规则:

  • 每个技能都位于 Tap 根路径(默认为 skills/)下的独立目录中。
  • 目录名称即为技能的安装标识(slug)。
  • 每个技能目录必须包含一个 SKILL.md 文件,并带有标准的 SKILL.md frontmatter(包含 namedescription,以及可选的 metadata.hermes.tagsversionauthorplatformsmetadata.hermes.config)。
  • references/templates/scripts/assets/ 等子目录会在安装时随 SKILL.md 一起下载。
  • 目录名称以 ._ 开头的技能将被忽略。

Hermes 通过列出 Tap 路径下的所有子目录并探测其中的 SKILL.md 来发现技能。

最小 Tap 示例

my-org/hermes-skills
└── skills/
└── deploy-runbook/
└── SKILL.md

skills/deploy-runbook/SKILL.md:

---
name: deploy-runbook
description: Our deployment runbook — services, rollback, Slack channels
version: 1.0.0
author: My Org Platform Team
metadata:
hermes:
tags: [deployment, runbook, internal]
---
# Deploy Runbook
Step 1: ...

将上述内容推送到 GitHub 后,任何 Hermes 用户都可以订阅并安装:

Terminal window
hermes skills tap add my-org/hermes-skills
hermes skills search deploy
hermes skills install my-org/hermes-skills/deploy-runbook

非默认路径

如果您的技能不在 skills/ 目录下(通常发生在将技能子树添加到现有项目时),请编辑 ~/.hermes/.hub/taps.json 中的 Tap 条目:

{
"taps": [
{"repo": "my-org/platform-docs", "path": "internal/skills/"}
]
}

hermes skills tap add 命令行工具默认将新 Tap 的路径设为 "skills/";如果您需要不同的路径,请直接编辑该文件。hermes skills tap list 会显示每个 Tap 的生效路径。

直接安装单个技能(不添加 Tap)

用户也可以直接从任何公共 GitHub 仓库安装单个技能,而无需将整个仓库添加为 Tap:

Terminal window
hermes skills install owner/repo/skills/my-workflow

这在您只想分享一个技能,而不要求用户订阅您的整个注册表时非常有用。

Tap 的信任等级

新 Tap 默认被分配为 community(社区)信任。从这些 Tap 安装的技能将通过标准安全扫描,并在首次安装时显示第三方警告面板。如果您的组织或广泛信任的来源需要获得更高信任,请将其仓库添加到 tools/skills_hub.py 中的 TRUSTED_REPOS(需要提交 Hermes 核心 PR)。

Tap 管理

Terminal window
hermes skills tap list # 显示所有配置的 Tap
hermes skills tap add myorg/skills-repo # 添加(默认路径:skills/)
hermes skills tap remove myorg/skills-repo # 移除

在运行的会话中:

Terminal window
/skills tap list
/skills tap add myorg/skills-repo
/skills tap remove myorg/skills-repo

Tap 存储在 ~/.hermes/.hub/taps.json 中(按需创建)。

Hermes 在仓库内的 skills/ 目录下随附了一组内置技能。在安装及每次执行 hermes update 时,同步进程会将这些技能复制到 ~/.hermes/skills/,并在 ~/.hermes/skills/.bundled_manifest 中记录一份清单,将每个技能名称映射到同步时的内容哈希值(即 原始哈希)。

在每次同步时,Hermes 会重新计算您本地副本的哈希值,并将其与原始哈希进行对比:

  • 未更改 → 可以安全地拉取上游更改,复制新的内置版本,并记录新的原始哈希。
  • 已更改 → 被视为 用户已修改 并永久跳过,确保您的编辑永远不会被覆盖。

这种保护机制很好,但有一个棘手的情况:如果您编辑了一个内置技能,后来想放弃修改并回到内置版本,即使您直接从 ~/.hermes/hermes-agent/skills/ 复制粘贴回来,清单中仍然保存着上次成功同步时的原始哈希。您新粘贴的内容(当前内置版本的哈希)与旧的原始哈希不匹配,因此同步程序会一直将其标记为“用户已修改”。

hermes skills reset 是解决这一问题的 “逃生舱”:

Terminal window
# 安全模式:清除清单中该技能的条目。保留您当前的副本,
# 但下次同步将以其为基准重新校准,使未来的更新能正常工作。
hermes skills reset google-workspace
# 完全恢复:同时删除您的本地副本并重新复制当前的内置版本。
# 当您想要找回纯净的上游技能时,请使用此命令。
hermes skills reset google-workspace --restore
# 非交互模式(例如在脚本或 TUI 模式中)—— 跳过 --restore 的确认提示。
hermes skills reset google-workspace --restore --yes

同样的命令在聊天中也可以作为斜杠命令使用:

Terminal window
/skills reset google-workspace
/skills reset google-workspace --restore

所有相同的命令均可配合 /skills 使用:

Terminal window
/skills browse
/skills search react --source skills-sh
/skills search https://mintlify.com/docs --source well-known
/skills inspect skills-sh/vercel-labs/json-render/json-render-react
/skills install openai/skills/skill-creator --force
/skills check
/skills update
/skills reset google-workspace
/skills list

官方可选技能仍使用诸如 official/security/1passwordofficial/migration/openclaw-migration 之类的标识符。

-
0:000:00