四大 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 listskills_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 的行为。如果你正在选型,希望这篇对比能帮你找到最适合自己工作流的那一个。


← 返回博客列表