四大 AI Agent Skills 机制对比:OpenClaw、Hermes、Claude Code、Codex
发布于 2026-06-02 03:59
四大 AI Agent Skills 机制对比:OpenClaw、Hermes、Claude Code、Codex
本文对比当下主流的四款 AI Agent 工具——OpenClaw、Hermes Agent、Claude Code 和 Codex CLI——在 Skills(技能/知识模块)的编写方式、配置方法、存放路径和生效机制等方面的差异,帮助你快速搞清楚它们各自的游戏规则。
一、概念对齐:都叫 Skills,但含义不同
在开始对比之前,先纠正一个常见的误解:这四个工具虽然都有"skill"或类似概念,但它们的定位和行为并不一样。
| 工具 | 核心定位 | Skills 的本质 |
|---|---|---|
| Hermes | 通用多平台 Agent 框架 | Markdown 格式的过程性知识文档,Agent 自主判断何时加载 |
| OpenClaw | 对话式 Agent 平台 | Markdown 格式的工具使用指南,可绑定为斜杠命令 |
| Claude Code | 自主编码 Agent CLI | CLAUDE.md 是项目记忆,Skills 是自然语言触发的操作指南 |
| Codex CLI | 轻量级编码 Agent | 依赖 AGENTS.md / instructions,原生无独立 Skill 系统 |
二、Skills 存放路径对比
1. Hermes Agent
Hermes 采用分类目录 + 扁平技能目录的双层结构:
~/.hermes/skills/ # 主技能根目录
├── autonomous-ai-agents/ # 分类目录(category)
│ ├── hermes-agent/
│ │ └── SKILL.md
│ ├── claude-code/
│ │ └── SKILL.md
│ └── codex/
│ └── SKILL.md
├── software-development/
│ ├── plan/
│ │ └── SKILL.md
│ └── debugging/
│ └── SKILL.md
├── github/
├── devops/
└── ...(30+ 个分类目录)
关键规则:
- 每个 skill 是一个文件夹,内部包含
SKILL.md - 分类目录名即 category,用于
skills_list(category="xxx")筛选 - 支持嵌套子目录(如
references/、templates/、scripts/) - 也可通过 Hermes Hub 在线安装:
hermes skills install <id> - Profile 隔离:不同 profile 有独立的
~/.hermes/profiles/<name>/skills/
2. OpenClaw
OpenClaw 采用多层级优先级覆盖的六层加载顺序:
| 优先级 | 路径 | 可见范围 |
|---|---|---|
| 1(最高) | <workspace>/skills/ |
仅当前 Agent |
| 2 | <workspace>/.agents/skills/ |
当前工作区 Agent |
| 3 | ~/.agents/skills/ |
本机所有 Agent |
| 4 | ~/.openclaw/skills/ |
本机所有 Agent(托管目录) |
| 5 | 内置 Bundled Skills | 所有用户 |
| 6(最低) | skills.load.extraDirs + Plugin Skills |
额外配置目录 |
关键规则:
- 同名 skill 高优先级覆盖低优先级
- 支持子目录分组组织:
skills/personal/research/SKILL.md仍为 skill "research" - 可通过 ClawHub 公开市场安装:
openclaw skills install <slug> - 支持 Agent allowlist,精确控制每个 Agent 能看到哪些 skills
3. Claude Code
Claude Code 没有独立的 "Skills" 目录,它的知识系统分为三个层次:
(1)CLAUDE.md —— 项目记忆文件(核心)
~/.claude/CLAUDE.md # 全局记忆(所有项目生效)
<project>/CLAUDE.md # 项目记忆(团队共享,git 追踪)
<project>/.claude/CLAUDE.local.md # 本地覆盖(个人偏好,gitignored)
(2)Skills 目录 —— 自然语言触发的操作指南(v2.1+)
<project>/.claude/skills/ # 项目级 Skills(团队共享)
~/.claude/skills/ # 个人 Skills(全局)
SKILL.md 放到这里后,Claude 会在任务匹配时自动触发,不需要手动调用。
(3)Rules 目录 —— 模块化规则(替代巨型 CLAUDE.md)
<project>/.claude/rules/ # 项目规则(git 追踪)
~/.claude/rules/ # 个人规则(全局)
每个 .md 文件会被自动加载为额外上下文。
4. Codex CLI
Codex CLI 没有原生的 Skill 系统。它的上下文注入方式非常简单:
~/.codex/instructions.md # 全局指令(类似 CLAUDE.md)
$CODEX_HOME/skills/ # 部分版本支持,但非标准机制
AGENTS.md # 项目根目录的代理指令文件
CODA 的主张是"少即是多",依赖系统提示 + AGENTS.md 就够用了。如果需要复用复杂流程,通常通过 MCP 服务器或 shell 脚本实现,而非 skill 文件。
三、SKILL.md 编写格式对比
Hermes Agent 格式
最完善的格式,包含 YAML Frontmatter + Markdown Body + 支持文件:
---
name: my-skill-name
description: "一句话描述,告诉 Agent 这个 skill 做什么"
version: 1.0.0
author: Your Name
license: MIT
metadata:
hermes:
tags: [tag1, tag2]
homepage: https://example.com
related_skills: [other-skill]
---
# Skill 标题
## 触发条件
当用户请求涉及 XXX 时,加载此 skill。
## 步骤
1. 第一步操作
2. 第二步操作
## 注意事项
- 不要做 XXX
- 必须验证 YYY
## 依赖
- 需要安装:`some-tool`
- 需要环境变量:`SOME_API_KEY`
特点:
- 通过
skill_manage(action="create")工具创建 - 支持
linked_files(references、templates、scripts 子目录) - 可通过
skill_view(name)读取,skill_manage(action="patch")更新 - 内置 curator 保护机制(pinned skills 不可删除)
OpenClaw 格式
与 Hermes 高度相似,但增加了 OpenClaw 特有的 frontmatter 字段:
---
name: hello-world
description: A simple skill that prints a greeting.
metadata:
openclaw:
requires:
config: ["some_feature_flag"] # 依赖特定配置项才加载
env: ["MY_API_KEY"] # 需要环境变量
commands: ["jq", "curl"] # 需要命令行工具
---
# Hello World
When the user asks for a greeting, use the `exec` tool to run:
```bash
echo "Hello from your custom skill!"
**特点:**
- 支持条件加载:根据环境变量、配置项、命令是否存在来决定是否激活
- 可以绑定为斜杠命令:`/hello-world`
- 可通过 Skill Workshop 让 Agent 草拟 skill,人工审核后生效
- 信任验证:`openclaw skills verify <slug>` 检查 ClawHub 上的安全扫描
### Claude Code Skills 格式
更简洁,侧重于"触发条件 + 操作指南":
```markdown
# database-migration
When asked to create or modify database migrations:
1. Use Alembic for migration generation
2. Always create a rollback function
3. Test migrations against a local database copy
4. Never auto-generate without review — always show the diff first
也可以带简单的 frontmatter(可选):
---
name: database-migration
description: Database migration best practices
---
当用户要求创建或修改数据库迁移时:
1. 使用 Alembic 生成迁移
2. 始终编写回滚函数
3. 在本地数据库副本上测试
特点:
- 无强制 frontmatter——纯 Markdown 也能用
- 触发完全靠自然语言匹配,不是精确名称调用
- 放在
.claude/skills/或~/.claude/skills/即可自动发现
Codex CLI
Codex 不写 SKILL.md。它的项目指令文件(AGENTS.md)格式极其简单:
# Project Instructions
## Build
- Run `make build` to compile
- Run `make test` to test
## Code Style
- Use 2-space indentation
- No semicolons in TypeScript
四、配置生效方式对比
Hermes Agent
| 操作 | 命令/方式 |
|---|---|
| 查看已安装 | hermes skills list 或 skills_list() |
| 在线搜索 | hermes skills search <query> |
| 在线安装 | hermes skills install <id> |
| 手动创建 | skill_manage(action="create", name="xxx", content="...") |
| 更新 skill | skill_manage(action="patch", name="xxx", old_string="...", new_string="...") |
| 删除 skill | skill_manage(action="delete", name="xxx") |
| 会话中加载 | /skill <name> 或 hermes -s <name> |
| 生效时机 | 新会话自动加载;当前会话用 /skill 手动加载 |
| 平台过滤 | hermes skills config 可按平台启用/禁用 |
生效机制: Skills 在系统提示中注入为 <available_skills> 列表,Agent 根据用户请求语义匹配后自动加载对应 SKILL.md 全文。
OpenClaw
| 操作 | 命令/方式 |
|---|---|
| 查看已加载 | openclaw skills list |
| 从市场安装 | openclaw skills install <slug> |
| 全局安装 | openclaw skills install <slug> --global |
| 更新 | openclaw skills update --all |
| 安全验证 | openclaw skills verify <slug> |
| 斜杠命令调用 | /skill-name |
| Agent 白名单 | 配置 agents.list[].skills |
| 生效时机 | Gateway 重启或 /new 新会话 |
生效机制: 文件监听器自动检测 SKILL.md 变更,Gateway 重新加载后生效。支持 Agent 级别的 allowlist 精确控制可见性。
Claude Code
| 操作 | 命令/方式 |
|---|---|
| 创建 CLAUDE.md | /init(交互式向导) |
| 编辑 CLAUDE.md | /memory |
| 添加记忆 | # 你的指令(行内快捷添加) |
| 创建 Skill | 手动在 .claude/skills/ 创建 SKILL.md |
| 创建 Slash Command | 在 .claude/commands/ 创建 .md 文件 |
| 生效时机 | 新会话自动加载;/compact 后保留 |
生效机制:
- CLAUDE.md:每次会话开始时自动注入到系统提示
- Skills:放在
.claude/skills/目录下,Claude 根据任务语义自动判断是否触发 - Slash Commands:用户手动输入
/command-name触发 - Auto-Memory:Claude 自动积累的项目笔记,存于
~/.claude/projects/<project>/memory/
Codex CLI
| 操作 | 方式 |
|---|---|
| 全局指令 | 编辑 ~/.codex/instructions.md |
| 项目指令 | 在项目根目录创建 AGENTS.md |
| 生效时机 | 每次 codex exec 自动加载 |
生效机制: 极简——系统提示 + AGENTS.md 内容拼接,没有 skill 发现、匹配、加载的复杂逻辑。
五、Slash Commands(斜杠命令)对比
| 工具 | 存放位置 | 调用方式 | 参数支持 |
|---|---|---|---|
| Hermes | 内置 + Plugin | /skill <name> |
通过 skill 内容指导 |
| OpenClaw | <root>/skills/<name>/SKILL.md |
/<skill-name> |
自然语言参数 |
| Claude Code | .claude/commands/<name>.md |
/<command-name> |
$ARGUMENTS 变量替换 |
| Codex | 无 | 无 | 无 |
Claude Code 的 Slash Commands 是最灵活的——支持 $ARGUMENTS 变量:
# .claude/commands/deploy.md
Run the deploy pipeline:
1. Run all tests
2. Build the Docker image
3. Push to registry
4. Update the $ARGUMENTS environment (default: staging)
用户输入 /deploy production,$ARGUMENTS 被替换为 production。
六、多 Agent 场景下的 Skills 隔离
| 工具 | 隔离机制 |
|---|---|
| Hermes | Profile 隔离:~/.hermes/profiles/<name>/skills/ 完全独立 |
| OpenClaw | 工作区隔离 + Agent allowlist:每个 Agent 可有独立 workspace 和 skill 白名单 |
| Claude Code | 项目级 .claude/ 目录天然隔离,无多 Agent 概念 |
| Codex | 无多 Agent 概念,单实例运行 |
七、总结:一句话概括每个工具的设计哲学
- Hermes:Skills 是 Agent 的"长期记忆 + 操作手册",强调积累和复用,分类管理,跨会话持久化。
- OpenClaw:Skills 是"可安装的工具说明书",强调优先级覆盖、条件加载、安全验证和多 Agent 隔离。
- Claude Code:CLAUDE.md 是"项目宪法",Skills 是"自动触发的最佳实践",强调自然语言匹配和零配置发现。
- Codex CLI:没有 Skills,只有 AGENTS.md,强调极简和"约定优于配置"。
如果你已经在使用其中某个工具,理解它的 skill 机制能让你更好地定制 Agent 的行为。如果你正在选型,希望这篇对比能帮你找到最适合自己工作流的那一个。
← 返回博客列表