Hermes Kanban 多 Agent 编排:让多个 Agent 并行协作完成复杂任务
Hermes Kanban 是一块持久化任务板,多个命名 Agent 在上面认领、执行、交接工作——跨进程、跨重启、可追溯。本文拆解六列看板机制、九种协作模式、delegate_task 子代理委派、五种委派模式、Kanban Codex Lane、Orchestrator 铁律,以及四个用户故事的完整实操步骤,附 8 问 FAQ。
Hermes Agent 的 Skill 系统是它被称为「自我进化 Agent」的核心原因。Agent 在完成复杂任务后自动将解法保存为可复用技能,下次遇到类似问题直接加载,遇到新问题自动修补。本文拆解 Skill 创建触发条件、自我改进机制、Curator 自动优化、渐进式披露的 Token 优化策略、155+ 内置 Skill 全景,以及从零写一个 Skill 的完整实操步骤。
Hermes Agent 的 Skill 系统是什么?一句话:Agent 在完成复杂任务后,自动将解法保存为可复用的技能文件;下次遇到类似问题直接加载,遇到新坑自动修补,长期不用的技能自动归档——创建、使用、修补、淘汰形成循环,这就是 Hermes 被称为「自我进化 Agent」的核心原因。
不是你手动写好一堆规则喂给它,也不是简单的对话历史记忆。Hermes 的 Skill 是 Agent 的程序性记忆(Procedural Memory)——它记住的不是「发生过什么」,而是「怎么做一件事」。Claude Code 的 Skill 需要人编写或从市场安装,Cursor Rules 是开发者手动维护的静态配置,OpenAI Custom GPT Actions 是一次性定义的 API Schema。Hermes 的 Skill 是 Agent 从自己的执行过程中自主提炼出来的,并且会在后续使用中持续自我改进。
如果你还没读过 Hermes 的整体架构和能力全景,建议先看 Hermes Agent 完全指南。本文专注拆解 Skill 系统的每一个技术细节,从触发条件到 Curator 优化到实操开发。

Hermes 通过 skill_manage 工具管理自己的 Skill。不是每次对话都会创建——只有当 Agent 判断这次解决方案值得长期保存时才会触发。
第一种:成功完成复杂任务。 当一次任务使用了 5 次以上的工具调用,Agent 认为这个解决路径足够复杂、值得沉淀,就会自动执行 skill_manage create,把整个解法写成一份 SKILL.md 文件。
💡 通俗讲:你让 Agent 帮你配置一个多步骤的 CI/CD 流水线,它调了 7 个工具才搞定。搞定之后它会想:「这个方案下次可能还用得上」,于是自动保存为一份技能文件。
第二种:遇到错误并找到可行路径。 Agent 在执行过程中踩了坑、报了错,但最终找到了绕过去的方法。这种「从失败中学到的经验」会被保存为 Skill,避免下次踩同一个坑。
第三种:用户纠正了做法。 你告诉 Agent 「不对,应该这样做」,Agent 会把你纠正后的正确做法固化为 Skill。这是用户偏好向 Agent 能力的直接转化。
第四种:发现非平凡工作流。 Agent 在探索过程中偶然发现了一种高效的工作方式,即使这次任务本身不复杂,它也会把这个工作流模式保存下来,把一次性探索变为可复用步骤。
Agent 管理 Skill 不只有「创建」,还有精细的修改和维护能力:
| 操作 | 用途 | 适用场景 |
|---|---|---|
create |
从零新建 Skill | 首次沉淀新技能 |
patch |
针对性修补 | 修复某个步骤的错误,首选方式 |
edit |
大规模重写 | 整体结构需要调整时 |
delete |
删除 Skill | 确认不再需要 |
write_file |
添加支持文件 | 补充脚本、模板等资源 |
remove_file |
删除支持文件 | 清理不再需要的附属文件 |
其中 patch 是首选方法——因为只传送改动部分,不需要发送完整的 SKILL.md 内容,省 token。
Skill 创建只是起点。真正让 Hermes 「越用越聪明」的是后续的自我改进循环。
用户提出复杂任务
→ Agent 使用 5+ 工具调用解决
→ Agent 将解法保存为 SKILL.md
→ 下次遇到类似问题,Agent 自动加载该 Skill
→ 遇到新坑,Agent 自动修补 Skill
→ Curator 定期检查,归档废弃 Skill、合并重叠 Skill
这个循环有一个关键设计:Agent 在前台对话中通过 skill_manage create 创建的 Skill 被视为「用户指导的」——用户参与了创建过程。而 Agent 在后台自我改进审查中创建的 Skill 才被标记为「Agent 自建」。两者的区别在于,只有 Agent 自建的 Skill 才会被 Curator 自动管理。用户指导创建的 Skill,Curator 不会碰。
💡 通俗讲:你亲手指导 Agent 建的技能,系统认为你有意为之,不会自动清理掉。只有 Agent 自己悄悄建的技能,系统才会定期审查是否该保留。
Agent 不只在对话中被动修补 Skill。大约每 10 个 Agent 轮次,系统会启动一次后台审查分叉——这个分叉在独立的提示缓存中运行,不干扰当前对话。它会回顾最近的执行经验,把分散的小 Skill 合并成更完整的「伞 Skill」,或者修补已有 Skill 中发现的问题。

没有维护机制的 Skill 系统注定会失控。每当 Agent 解决一个新问题并保存 Skill,~/.hermes/skills/ 目录就多一个文件。用不了几周,大量狭窄的近似重复 Skill 就会污染目录、浪费 token。
Curator 就是来解决这个问题的。
Curator 不依赖外部 cron 守护进程,它在 Hermes 内部自触发。两个条件同时满足时自动启动:
两个条件缺一不可——既不会在 Agent 忙碌时干扰工作,也不会频繁运行浪费资源。
第一阶段:自动状态转换——确定性操作,不调用大模型。
stale(过时)~/.hermes/skills/.archive/ 归档目录第二阶段:大模型审查——启动一个辅助模型通道,最多 8 轮迭代。
分叉的 Agent 遍历所有 Agent 自建的 Skill,逐个读取内容,对每个 Skill 做出决策:保留、修补、合并重叠的 Skill,或者归档。合并时有一条铁律——Skill 被视为完整包。如果一个 Skill 包含 references/、templates/、scripts/、assets/ 等子目录,Curator 必须整包保留或整包归档,不允许只把 SKILL.md 扁平化到另一个 Skill 的 references/ 里。
一个 Skill 被 Curator 管理需要同时满足三个条件:
.bundled_manifest——不是内置 Skill.hub/lock.json——不是 Hub 安装的 Skill.usage.json 中标记为 "created_by": "agent" 或 "agent_created": true只有后台自我改进审查分叉创建的 Skill 才会设置这个标记。你在对话中指导 Agent 创建的 Skill 不在此列——Curator 故意不碰。
~/.hermes/skills/.usage.json 为每个 Skill 维护精确的使用数据。每条记录包含三类计数器和状态标记:
提示词:生成 Hermes Skill 使用量遥测的 JSON 结构
请帮我生成 ~/.hermes/skills/.usage.json 中单个 Skill 的遥测字段。要求:
use_count:Skill 被加载进对话提示词时递增view_count:Agent 调用 skill_view 时递增patch_count:任何修改操作执行时递增last_used_at / last_viewed_at / last_patched_at:对应操作的 ISO 8601 时间戳created_at:Skill 创建时间state:当前状态,取值 active / stale / archivedpinned:布尔值,true 时阻止 Curator 自动归档archived_at:归档时间戳,未归档时为 nullCurator 根据 last_used_at 的时间距离来判断是否该标记为 stale 或归档。
担心 Curator 误操作?有三道安全网:
# 锁定关键 Skill,阻止 Curator 自动归档和 Agent 删除
hermes curator pin api-health-monitor
# 每次 Curator 运行前自动备份整个 skills 目录
# 出问题一键回滚到上次运行前的状态
hermes curator rollback
# 从归档中恢复单个 Skill
hermes curator restore my-old-skill
每次 Curator 运行后还会生成人类可读的报告:
~/.hermes/logs/curator/
└── 20260429-111512/
├── run.json # 机器可读:完整统计和大模型输出
└── REPORT.md # 人类可读摘要
默认参数对大多数用户够用,但如果你和 Agent 交互频繁,可以缩短 Curator 的运行间隔和归档窗口。在 ~/.hermes/config.yaml 的 curator 段调整以下参数:
提示词:生成高频交互场景的 Curator 配置
请帮我生成 ~/.hermes/config.yaml 中 curator 段的配置。要求:
enabled:设为 true 开启自动清理interval_hours:运行间隔,默认 168(7 天),高频场景建议 72(3 天一次)min_idle_hours:Agent 空闲多久后允许运行,默认 2,可缩短到 1stale_after_days:未使用多少天标为 stale,默认 30,高频场景建议 14archive_after_days:未使用多少天归档,默认 90,高频场景建议 45prune_builtins:设为 true 时也会归档未使用的内置 Skill
155 个以上的 Skill,每个 Skill 可能几百到几千 token,全塞进系统提示词的话成本和延迟都会爆炸。Hermes 的解法是渐进式披露(Progressive Disclosure)——分层加载,用到才展开。
Level 0(会话启动): skills_list() → 所有 Skill 的名字和描述 约 3000 token
Level 1(按需激活): skill_view(name) → 完整 SKILL.md 内容 大小不等
Level 2(深度参考): skill_view(name, path) → Skill 内的特定参考文件 按需
Level 0 在每次会话启动时自动执行。只加载一份精简的清单——每个 Skill 只有名字和描述,相当于一份目录索引。155 个 Skill 的目录索引大约 3000 token,可以接受。
Level 1 在 Agent 判断需要某个 Skill 时才触发。你用斜杠命令 /gif-search funny cats 或者在对话中提到相关需求,Agent 通过 skill_view 加载该 Skill 的完整内容。
Level 2 更进一步——Skill 内部引用了参考文件(references/ 目录下的文档),只有 Agent 确实需要查阅时才加载。
核心收益:Skill 不被使用时零 token 开销。
Skill 的渐进式披露解决的是 Skill 内容的加载问题。工具层面还有另一个问题:72 个工具的完整 Schema 定义约占 19,210 token。
Hermes 的 tool_search 元工具采用类似策略——只有 7 个高频核心工具始终保持完整 Schema 加载,其他工具通过 tool_search / tool_details 按需查找。效果:从 19,210 token 降到 2,200 token,减少 89%。 tool_search 的完整配置参数(mode、threshold、pinned_tools、evict_after_turns 等)详见 Hermes Agent 成本控制与本地模型部署。
💡 通俗讲:就像一个工匠不会把所有工具铺满工作台。常用的螺丝刀、扳手放手边,其他工具收在抽屉里,需要时拿一把出来,用完放回去。
Skill 的渐进式披露 + 工具的按需加载,两层配合让 Hermes 在上下文窗口有限的模型上也能高效运行。
Hermes 出厂自带的 Skill 分为两大池子:85+ 个内置 Skill(Bundled,默认安装)和 70+ 个可选 Skill(Optional,按需安装)。
| 分类 | 数量 | 代表性 Skill | 能做什么 |
|---|---|---|---|
| creative | 16 | excalidraw、manim-video、p5js、comfyui、songwriting-and-ai-music | 架构图、数学动画、创意编码、图像生成、作曲 |
| software-development | 9 | test-driven-development、plan、systematic-debugging、hermes-agent-skill-authoring | TDD 工作流、任务规划、系统调试、Skill 开发辅助 |
| productivity | 8 | google-workspace、notion、airtable、powerpoint、ocr-and-documents | 办公套件集成、文档处理 |
| mlops | 7 | huggingface-hub、vllm、weights-and-biases、segment-anything | 模型训练、推理部署、实验追踪 |
| github | 6 | github-pr-workflow、github-code-review、github-issues、codebase-inspection | 代码审查、PR 管理、仓库分析 |
| apple | 5 | apple-notes、apple-reminders、findmy、imessage | 苹果生态集成 |
| research | 5 | arxiv、research-paper-writing、llm-wiki、polymarket | 论文检索、学术写作、预测市场 |
| autonomous-ai-agents | 4 | claude-code、codex、hermes-agent、opencode | 与其他 AI Agent 框架协作 |
| media | 4 | gif-search、heartmula、songsee、youtube-content | 音乐生成、视频内容、GIF 搜索 |
| devops | 2 | kanban-orchestrator、kanban-worker | 看板协作工作流 |
| 其他 7 类 | 各 1 | jupyter-live-kernel、himalaya、obsidian、openhue 等 | 数据科学、邮件、笔记、智能家居 |
可选 Skill 覆盖了更多专业领域。其中 MLOps 类是最庞大的单一分类,包含 27 个 Skill:
| 领域 | 代表 Skill | 覆盖场景 |
|---|---|---|
| MLOps(27 个) | axolotl、peft、unsloth、trl、whisper、stable-diffusion、tensorrt-llm | 微调、推理优化、语音识别、图像生成 |
| 金融 | dcf-model、lbo-model、3-statement-model | 财务建模、估值分析 |
| 安全 | 1password、web-pentest、oss-forensics、sherlock | 密码管理、渗透测试、安全调查 |
| 区块链 | evm、solana、hyperliquid | 智能合约交互 |
| 游戏 | minecraft-modpack-server、pokemon-player | 游戏服务器管理 |
| 研究 | osint-investigation、bioinformatics、drug-discovery | 开源情报、生物信息学 |
这个 Skill 库的广度意味着:大多数常见场景,你不需要从零写 Skill——先看看有没有现成的。
基于社区和第三方评测的反馈,这几个 Skill 使用频率最高:

一个常见误解是把 Hermes Skills Hub 当成「提示词市场」。不是。每个 Skill 是包含指令、脚本、参考文件和资源的完整能力包,遵循 agentskills.io 开放标准的目录结构:
skill-name/
├── SKILL.md # 必需:元数据前置声明 + 指令正文
├── scripts/ # 可选:可执行脚本
├── references/ # 可选:参考文档
├── assets/ # 可选:模板、资源
└── ...
agentskills.io 规范推荐 SKILL.md 主体控制在 500 行 / 5000 token 以内,详细参考资料放到子目录按需加载。这个约束直接服务于渐进式披露——主文件不能太大,否则 Level 1 加载的成本就失控了。

agentskills.io 定义的是一个开放的 Skill 格式标准,不绑定特定 Agent 运行时。同一个 SKILL.md 文件理论上可以在 Hermes、OpenClaw、Claude Code、Cursor 等兼容运行时加载。
区别在于:Skill 文件本身是可移植的,但自主创建和 Curator 维护是 Hermes 独有的行为。 其他运行时只能手动安装和管理这些文件。如果你对 Claude Code 的 Skill 开发感兴趣,可以参考 Claude Code Skill 开发指南——两套系统的 Skill 文件格式高度兼容,但运行时的自动化机制完全不同。
Hermes 集成了 9 个 Skill 生态源,从官方到社区多层次覆盖:
| 来源 | 安装格式 | 信任等级 | 特点 |
|---|---|---|---|
| official | official/security/1password |
内置信任 | 仓库内可选 Skill |
| skills.sh | skills-sh/vercel-labs/... |
社区 | Vercel 公共 Skill 目录 |
| github | openai/skills/k8s |
受信/社区 | 直接 GitHub 仓库安装 |
| lobehub | — | 社区 | LobeHub 公共 Agent 目录 → 转为 Hermes Skill |
| browse-sh | — | 社区 | 200+ 站点浏览器自动化 Skill |
| well-known | well-known:https://... |
社区 | 网站发布的 Skill 索引 |
| clawhub | — | 社区 | 第三方市场 clawhub.ai |
| claude-marketplace | — | 社区 | Claude 兼容插件清单 |
| url | 直接 HTTPS URL | 社区 | 单文件 SKILL.md 直接安装 |
LobeHub 导入是其中比较有意思的一条路径——它可以搜索 LobeHub 公共 Agent 目录中的 Agent 条目,将其转换为可安装的 Hermes Skill:
hermes skills search react --source lobehub
hermes skills install lobehub/<agent-id>
安装社区 Skill 的安全保障:
| 级别 | 来源 | 策略 |
|---|---|---|
builtin |
Hermes 自带 | 始终信任 |
official |
仓库内 optional-skills | 内置信任 |
trusted |
openai/skills、anthropics/skills、huggingface/skills、NVIDIA/skills | 比社区更宽松 |
community |
其他所有来源 | 必须通过安全扫描 |
安全扫描器检查五类风险模式:数据外泄指令、提示注入攻击、破坏性命令(rm -rf 等)、Shell 注入、可疑的供应链信号。标记为 dangerous 的 Skill 始终阻止安装,不支持 --force 覆盖。

在动手之前先判断:你要实现的能力适合做成 Skill 还是 Tool?
做 Skill:能力可以用「指令 + Shell 命令 + 现有工具」表达。比如封装一个 CLI 工具的使用流程、定义一套 Git 工作流规范、包装 API 调用模式。
做 Tool:需要端到端集成 API Key 和认证流程、处理二进制数据或流式传输、需要精确的自定义处理逻辑。比如浏览器自动化、文字转语音、视觉分析。
💡 通俗讲:Skill 是教 Agent 「怎么用已有的工具做事」,Tool 是给 Agent 「造一把新工具」。
mkdir -p ~/.hermes/skills/api-health-monitor
在目录内创建 SKILL.md 文件,先写 YAML 前置声明。前置声明定义了 Skill 的身份、分类和可配置参数:
提示词:生成 Hermes SKILL.md 的 YAML 前置声明
请帮我生成一个 Hermes Skill 的 YAML 前置声明(放在 --- 围栏内)。要求包含以下字段:
name:Skill 名称,最多 64 字符,只允许小写字母、数字和连字符description:用途描述,最多 1024 字符,说明触发条件——这段文字在 Level 0 加载时展示,直接决定 Agent 是否激活该 Skillversion:语义版本号,如 1.0.0metadata.hermes.tags:标签数组,用于分类检索,如 [monitoring, api, devops]metadata.hermes.category:所属分类,如 devopsmetadata.hermes.requires_toolsets:条件激活——只在指定工具集可用时才显示,如 [terminal, web]metadata.hermes.config:用户可配置参数数组,每项包含 key(配置键名)、description(说明)、default(默认值)、prompt(交互提示语)我的 Skill 功能是:[在此描述你的 Skill 用途]
前置声明中最关键的是 description 字段——它在 Level 0 阶段展示给 Agent,是 Agent 决定是否激活这个 Skill 的唯一依据。requires_toolsets 控制条件激活,config 中定义的参数存储在 config.yaml 中,Agent 运行时读取。
前置声明下方写 Markdown 格式的指令正文。指令正文是 Agent 执行 Skill 时的操作手册,包含触发条件、操作步骤、输出格式和告警规则:
提示词:生成 Hermes SKILL.md 的指令正文
请帮我编写 SKILL.md 前置声明之后的 Markdown 指令正文。要求包含以下结构:
curl 检测状态码和响应时间、与阈值对比)curl -o /dev/null -s -w "%{http_code} %{time_total}" <endpoint>我的 Skill 功能是:[在此描述你的 Skill 用途]
指令正文中可以使用两个模板变量:${HERMES_SKILL_DIR} 替换为 Skill 目录的绝对路径,${HERMES_SESSION_ID} 替换为当前会话 ID。引用 Skill 内的脚本或资源文件时用这个变量。
如果你的 Skill 需要自带脚本或参考文档:
api-health-monitor/
├── SKILL.md
├── scripts/
│ └── batch-check.sh # 批量检查脚本
└── references/
└── status-codes.md # HTTP 状态码参考
在 SKILL.md 中引用支持文件:
Run the batch check script:
bash ${HERMES_SKILL_DIR}/scripts/batch-check.sh
参考文件不会在 Level 1 加载——只有 Agent 调用 skill_view(name, "references/status-codes.md") 时才会读取,这是 Level 2 按需加载。
如果你的 Skill 是某个工具的兜底方案,可以用条件激活字段控制显示逻辑:
metadata:
hermes:
fallback_for_toolsets: [web] # web 工具集可用时隐藏,不可用时显示
实际场景:内置的 duckduckgo-search Skill 用了 fallback_for_toolsets: [web]。当 FIRECRAWL_API_KEY 存在时 web 工具集可用,DuckDuckGo Skill 自动隐藏;API Key 缺失时 web 工具集不可用,DuckDuckGo Skill 自动浮现作为兜底。
安装后通过斜杠命令测试:
hermes
> /api-health-monitor
# Agent 加载 Skill 并询问你要监控哪些端点
也可以在自然对话中触发——直接说「帮我检查一下这几个 API 的健康状态」,Agent 会根据描述匹配到你的 Skill 并自动加载。
如果发现问题,Agent 自己就能修补:
用户: 报告格式改成 JSON 输出
Agent: 好的,我来修改 Skill。
[调用 skill_manage patch,更新报告输出格式]
如果你经常需要同时使用几个相关的 Skill,可以把它们编组为一个 Bundle。Bundle 是一个 .bundle.yaml 文件,放在 ~/.hermes/skills/ 目录下,定义一组 Skill 的组合和执行顺序:
提示词:生成 Hermes Skill Bundle 配置
请帮我生成一个 Hermes Skill Bundle 文件(~/.hermes/skills/{名称}.bundle.yaml)。要求:
name:Bundle 名称,如 fullstack-devdescription:整体用途描述,如"全栈开发工作流——代码审查、测试、PR 管理"skills:包含的 Skill 名称列表,如 github-code-review、test-driven-development、github-pr-workflow、codebase-inspectioninstruction:工作流执行顺序指令,用编号步骤定义各 Skill 的调用顺序(如先检查代码结构 → 写失败测试 → 实现功能 → 自审 → 创建 PR)我需要组合的 Skill 是:[列出你想编组的 Skill 名称和期望的执行顺序]
运行 /fullstack-dev 一次加载 Bundle 内全部关联 Skill,并且按 instruction 中定义的工作流顺序执行。
除了 Agent 内建的「做中学」循环,Hermes 还有一条更系统的自我进化路径——GEPA(Genetic-Pareto Prompt Evolution,基因-帕累托提示进化),由独立项目 hermes-agent-self-evolution 实现。
| 维度 | 内建循环 | GEPA |
|---|---|---|
| 触发方式 | 自动 | 需要人工启动 |
| 数据来源 | 当次执行经验 | 完整执行 trace 历史 |
| 优化方式 | 增量修补 | 系统性变异 + 测试套件验证 |
| 安全门控 | 无(直接写入) | 必须通过 PR 审查 |
| 成本 | 内含在对话中 | 每次约 $2-$10 API 费用 |
| 进化深度 | 浅层修补 | 深层重写 |
GEPA 的工作方式:读取 Agent 的执行 trace,不仅知道哪里失败了,还理解为什么失败。然后提出针对性的变异方案——每个变体必须通过完整测试套件、大小限制、缓存兼容性、语义保持等多维度验证。
目前已实现的是第一阶段——优化 Skill 文件。后续计划扩展到优化工具描述、系统提示词和工具代码。这是一个有人在环的自我进化流程,不是完全无人值守。
我在 Mac mini 上跑 Hermes 两个月,踩过的一个坑值得分享:Hermes 的 Skill 系统和我在 Claude Code 里维护的知识库工作流,如果不划清边界,会产生两套平行的「野生流程」。
我的解法是在 SOUL.md 中设了一条红线:
创作类任务(写文章、发推文、写公众号、发布内容、翻译、SEO 等):
禁止创建技能,必须走 KB 工作流。
允许 Hermes 自动创建 Skill 的范围:Hermes 自身的平台操作、知识库检索优化、工具调用快捷方式、日常问答模式。
核心理由:知识库(KB)工作流和 Hermes Skill 不在同一层。工作流是多步创作管线——品牌差异、SEO 规范、多平台分发,这些复杂度由 KB 承载。Skill 是单次操作的快捷方式——轻量、即时、可自我修补。两层各管各的,不冲突。
但如果 Hermes 把工作流逻辑写进 Skill,就会产生两个真值源:KB 里一套,Hermes 的 ~/.hermes/skills/ 里又一套。我改了 KB 工作流,Hermes 不会知道;Hermes 自己修补了 Skill,KB 工作流也不会更新。
这个问题的根源在于指针架构的设计:Hermes 的 SOUL.md、MEMORY.md、USER.md 只存路径指针和导航指令,不复制内容。Claude Code 改了任何 KB 工作流,Hermes 下次对话通过 read_file 现场读取即可感知——零维护。但如果 Hermes 把工作流逻辑固化进了 Skill,这个「现场读取、零维护」的优势就断掉了。
如果你也在多 Agent 协作环境中使用 Hermes,建议在 SOUL.md 里明确 Skill 创建的边界——哪些事让 Hermes 自主学习,哪些事走外部系统。关于 SOUL.md 记忆系统的完整设计,参见 Hermes Agent SOUL.md 记忆系统详解。
X 上的开发者评论直接:
"Hermes Agent 的自进化 Skill 是最强大的功能。Agent 不只是解决问题——它记住了自己是怎么解决的。" —— @akshay_pachaar
这个评价精确抓住了关键区别:大多数 Agent 框架在每次对话结束后就「失忆」了,下次遇到同样的问题需要从头推理。Hermes 把推理结果沉淀成文件,下次直接加载,跳过推理过程。
社区也观察到了一些已知局限:
这些都是实际使用中的真实反馈。前两个问题可以通过调整 Curator 配置来缓解(缩短间隔、降低阈值),第三个是产品阶段决定的——GEPA 目前还在第一阶段。
最核心的区别是自主创建能力。Claude Code 的 Skill 由人手动编写或从市场安装,Agent 本身不会在执行过程中自动创建新 Skill。Hermes 的 Skill 可以由 Agent 在完成复杂任务后自动创建,形成创建、使用、修补、淘汰的完整循环。此外,Hermes 有 Curator 自动清理机制,Claude Code 没有。更多关于 Claude Code Skill 的内容可以参考 Claude Code Skill 开发指南。
初始质量取决于 Agent 的推理能力和任务复杂度。但 Hermes 有两道保障:第一道是自我改进循环,Skill 在后续使用中遇到问题会自动修补(skill_manage patch);第二道是 Curator 定期审查,合并重叠的 Skill、归档废弃的 Skill。如果你追求更系统的优化,还可以用 GEPA 自我进化引擎做反思式重写,每次约 $2-$10。
不会。Hermes 采用渐进式披露策略:会话启动时只加载所有 Skill 的名字和描述(约 3000 token),完整 Skill 内容只在 Agent 决定需要时才展开。配合 tool_search 元工具,72 个工具的 Schema 从 19,210 token 降到 2,200 token,减少 89%。未使用的 Skill 真正做到零 token 开销。
不会。Curator 通过 usage.json 中的精确使用量遥测来判断:30 天未使用标为 stale,90 天未使用才归档。经常使用的 Skill 的 last_used_at 会持续更新,不可能被归档。你还可以用 hermes curator pin 命令锁定关键 Skill,彻底阻止自动归档。即使误操作,也有 hermes curator rollback 一键回滚和 hermes curator restore 单个恢复。
Skill 文件本身基于 agentskills.io 开放标准,同一个 SKILL.md 可以在兼容的运行时加载。但自主创建和 Curator 维护是 Hermes 独有行为——其他运行时只能手动安装和管理这些 Skill 文件。格式兼容,自动化不兼容。
Hermes 有四级信任体系。内置和官方 Skill 始终信任;受信源(openai/skills、anthropics/skills 等)策略更宽松;社区源必须通过安全扫描器检查五类风险模式——数据外泄、提示注入、破坏性命令、Shell 注入、供应链信号。标记为 dangerous 的 Skill 始终阻止安装。
分层互补。Skill 自动创建是「做中学」——Agent 从执行过程中自动沉淀经验,增量修补。GEPA 是「反思式进化」——通过 DSPy 框架读取执行 trace,理解失败原因,提出系统性变异,经完整测试套件验证后优化。GEPA 每次运行约 $2-$10 API 费用,需要人工启动和 PR 审查,目前处于第一阶段(Skill 文件优化)。
最快的方式是使用内置的 hermes-agent-skill-authoring Skill——输入 /hermes-agent-skill-authoring,告诉 Agent 你想创建什么能力,它会引导你完成完整流程。也可以手动在 ~/.hermes/skills/ 下创建目录和 SKILL.md 文件。本文「Skill 开发实战」章节有完整的六步教程,从目录创建到前置声明到指令正文到条件激活到测试。
每周精选 AI 编程与自动化实战内容,直达你的邮箱