Agent 架构文档 · Markdown
Skill 系统:10 家 Agent 框架的深度对比
这一篇只盯一个主题: Skill 是什么、它跟 tool/subagent/hook/microagent 的边界在哪里、各家把它落地成什么样子。 文中所有跨家结论都能在原文档里找到出处,引用形式 <file 章节 或 <file :章节名 (具体行号会随源文档调整漂移,以章节定位为准)。
这一篇只盯一个主题:Skill 是什么、它跟 tool/subagent/hook/microagent 的边界在哪里、各家把它落地成什么样子。 文中所有跨家结论都能在原文档里找到出处,引用形式
<file>#章节或<file>:章节名(具体行号会随源文档调整漂移,以章节定位为准)。
#目录
- 零、为什么 "Skill" 在 2025-2026 突然成为 agent 一等公民
- 一、10 家 Skill 速览大表
- 二、Skill 是什么 —— 跟 tool / subagent / hook / microagent 的边界
- 2.2 Claude Code 的两轴四象限
- 三、Skill 定义形式(frontmatter + body)的 5 种风格对照
- 四、Skill 加载策略的 4 种取舍
- 五、Skill 触发机制对照(4 种召回)
- 六、Skill 自进化(Hermes 独家)
- 七、Skill 生态对比(ClawHub / agentskills.io / 跨家兼容)
- 八、没有 "Skill" 的家如何替代
- 九、最值得抄走的 5 个 Skill 设计
- 十、趋势观察 + 一句话各家总结
#零、为什么 "Skill" 在 2025-2026 突然成为 agent 一等公民
"Tool 太细,Subagent 太重,Skill 是 agent 时代真正缺失的中间层。"
2024 年前 agent 能力扩展只有两个尺度:Tool(一次原子调用)和 Subagent(独立 context 的子推理)。但生产场景里 80% 的需求落在中间——比如"从 Jira 拉 ticket → 比对 commit → 生成发版备注",是一连串 tool 的组合 + 自然语言指令,不需要独立 context 也不需要回传摘要。
2025 年 Anthropic Skills 标准(agentskills.io)和 Claude Code .claude/skills/ 率先把这一层定义为 "模型用得上的、人写好的、可发布的、由 markdown + frontmatter 组成的工作流单元"。OpenClaw 把它社区化(5400+ skill),Hermes 把它自动化(agent 自己造),OpenHands 把它落到仓库(.openhands/microagents/)。到 2026 上半年,"Skill" 已经成为 agent 框架里跟 tool 同级别的一等公民。
本质判断:
| 维度 | tool | skill | subagent |
|---|---|---|---|
| 谁写的 | 程序员(代码) | 写 prompt 的人(markdown) | 程序员(代码) + 配置 |
| 触发 | LLM 自决调用 | LLM 自决 + 用户 / glob 多种 | 主 agent 显式 spawn |
| 上下文 | 共享主 ctx | 共享主 ctx(默认) | 独立 ctx |
| 可发布 | npm / pypi | 一个 markdown 目录 | 一份配置文件 |
| 粒度 | 一次原子动作 | 一段 playbook | 一段独立任务 |
引用:claude-code-agent-architecture.md 第 1.3 节、hermes-agent-architecture.md 第 1.2 节都给了同样的拆分。
#一、10 家 Skill 速览大表
"先把 10 家的 skill 形态摆一张表,后面所有章节都是这张表的展开。"
| 是否有原生 Skill | 路径 | 加载策略 | 主要触发方式 | 自进化 | 生态 | |
|---|---|---|---|---|---|---|
| Claude Code | ✓ | .claude/skills/<name>/SKILL.md(Enterprise / Personal / Project / Plugin 4 scope) |
描述常驻(每 skill 1,536 字符,按 ctx 1% 预算)、body 用时进;invoke 后按 25K 总预算 / 5K each re-attach | LLM 自决 invoke / 用户 /name / disable-model-invocation 关掉自动 / user-invocable: false 隐藏菜单 |
✗ | agentskills.io 开放标准 |
| OpenClaw | ✓(最大生态) | skills/<name>/SKILL.md(6 层优先级) |
session 启动打快照 + frontmatter gating | LLM 自决 / /skill-name(user-invocable) |
✗ | ClawHub 5400+ skill |
| Hermes | ✓ | skills/<name>/SKILL.md + optional-skills/ |
启动加载 + Skills Hub 拉取 | LLM 自决 + /skills 命令 |
✓ agent 自己造 + patch | agentskills.io 兼容 + Skills Hub |
| OpenHands | ✓(叫 Microagents,v1 SDK 改名 Skills) | .openhands/microagents/{repo,knowledge,tasks}/*.md,v1 → .agents/skills/ |
repo.md 永久注入 + knowledge triggers + task slash 触发 | 关键词 triggers / slash command | ✗ | 公共 microagents 仓库 |
| Cursor | ✓(Rules + Agent Skills) | .cursor/rules/*.mdc + AGENTS.md + SKILL.md(2.4 起) |
Rules 4 种触发;Skills 按 SKILL.md 作为 procedural/on-demand context |
Rules: Always / Auto-Attached glob / Agent-Requested / Manual @-mention;Skills: agent / CLI 按需使用 |
✗(Memories 是另一套) | 私有 |
| Cline | 部分(.clinerules/ + slash commands) |
.clinerules/*.md + 内置 /newtask /smol /deep-planning |
全部拼成 system prompt 注入 | 启动注入;slash 命令直接改思考链 | ✗ | 无中央生态 |
| Codex | 弱(.codex/skills/ + $skill_name + AGENTS.md + subagent toml) |
.codex/skills/(脚本片段) + .codex/agents/*.toml + AGENTS.md(多层级合并) |
AGENTS.md 启动注入;skills 显式 $name 触发;subagent 显式 spawn |
$imagegen 等 / spawn agent / AGENTS.md 永久 |
✗(明确禁止 LLM 写 AGENTS.md) | 私有 |
| AutoGen | ✗(lib 层无原生) | n/a | n/a | 用户自己用 system_message + tools=[...] 模拟 |
✗ | 无 |
| LangGraph | ✗(lib 层无原生) | n/a | n/a | 用户自己用 subgraph + 自定义 Node 模拟 | ✗ | 无 |
速读结论 3 条(后面章节会详细论证):
- markdown + frontmatter 几乎成为事实标准:8/10 家把 skill / rules / microagent 落到带 YAML frontmatter 的 markdown 文件。
- Hermes 是唯一的"agent 自己造 / patch skill":5+ tool_call 后自动生成 SKILL.md,使用过程中检测错误自动 patch(来源:
hermes-agent-architecture.md§1.3 自进化闭环)。 - OpenClaw 的 ClawHub(5400+ skill)是当前规模最大的社区生态(来源:
openclaw-agent-architecture.md§4.1)。agentskills.io 是另一种生态形态——它是 Anthropic 主导的开放标准 + 兼容花名册(截至 2026-05 已有 ~40 家厂商接入),不直接托管 skill 文件,跟 ClawHub 不是同类对比物。
#二、Skill 是什么 —— 跟 tool / subagent / hook / microagent 的边界
"边界比定义重要。把 skill 跟相邻概念区分开,才能讲清楚为什么它必须独立存在。"
#2.1 四种相邻抽象的本质差异
┌──────────────────────────────────────────────┐
│ LLM 主 context │
└──────────────────────────────────────────────┘
▲ ▲
┌──────────────────┼──────────────┴──────────────┐
│ │ │
▼ ▼ ▼
┌────────┐ ┌─────────┐ ┌──────────┐
│ tool │ │ skill │ │ subagent │
│ schema │ │ body │ │ 独立 ctx │
│ + impl │ │ + assets│ │ 摘要回传 │
└────────┘ └─────────┘ └──────────┘
▲ ▲ ▲
│ LLM 决调 │ LLM 自决 / 用户 / glob │ 主 agent 显式
│ tool_call │ /name / @ref │ spawn
│ │ │
│ ┌────────────────┴────┐ │
│ │ hook │ │
│ │ 确定性事件触发 │ │
│ │ 不进 LLM 决策 │ │
│ └─────────────────────┘ │
│ │
│ ┌─────────────────┴────┐
│ │ microagent │
│ │ 仓库走的提示词补丁 │
│ │ (= skill 的更早期形态) │
│ └──────────────────────┘
四个轴对比:
| 维度 | tool | skill | subagent | hook | microagent |
|---|---|---|---|---|---|
| 决策主体 | LLM | LLM / 用户 / glob | 主 agent | 框架(确定性) | 框架(关键词 / 文件) |
| 执行环境 | 主 ctx 内 | 主 ctx 内(fork 模式可独立) | 独立 ctx | hook 进程 | 主 ctx 内 |
| 结构 | schema + 代码 | frontmatter + body + (可选) 资源 | 配置 + system prompt | matcher + handler | frontmatter + body |
| 生命周期 | 一次 tool_call | 渲染后整段消息常驻 | 任务完成回收 | 事件级 | 触发后注入消息 |
| 可携带脚本 | 必须有代码 | 可选(scripts/ helpers.py) |
不携带(仅 .md) | 必须有 handler | 可选 |
| 谁写它 | 程序员 | 写 prompt 的人 | 程序员 + 配置者 | 程序员 | 写 prompt 的人 |
| 代表家 | 全 10 家 | Claude Code / OpenClaw / Hermes | Claude Code / Codex | Claude Code / OpenClaw | OpenHands |
引用:
- Tool vs skill:
claude-code-agent-architecture.md§1.3 "skill 跟 subagent 的关键差异"对照表 - Subagent vs skill:同上 §1.3 对照表
- Hook vs skill:
claude-code-agent-architecture.md§8.5 "确定性 → hook(每次必跑);模型决定 → skill(描述合适才 invoke)" - Microagent ≈ skill:
openhands-agent-architecture.md§1.3 "v1 SDK 演化(Skills / AgentSkills standard)"——v0 三分类 microagent 在 v1 被改名为 Skills,路径迁移到.agents/skills/
#2.2 Claude Code 的"两轴四象限"——最工程化的抽象
来自 claude-code-agent-architecture.md §8.5("工具"的边界在哪里):
两个判断轴:
- 是不是新原子能力:是 → 内置 / MCP;否(组合现有)→ skill / subagent
- 是确定性还是模型决定:确定性 → hook(每次必跑);模型决定 → skill(描述合适才 invoke)
确定性 模型决定
新原子 ┌──────────────────┐ ┌──────────────────┐
能力 │ 内置工具 / MCP │ │ 内置工具 + allowed-│
│ + permission rule │ │ tools 让模型选 │
└──────────────────┘ └──────────────────┘
组合 ┌──────────────────┐ ┌──────────────────┐
现有 │ hook(强制) │ │ skill / subagent │
│ + slash command │ │ (description) │
└──────────────────┘ └──────────────────┘
"Claude Code 这种'hook 是确定性、skill 是模型决定、subagent 是 ctx 隔离的执行体'的三轴划分非常工程化。如果要抄,建议先把这三轴的策略文档化再开发。" ——
claude-code-agent-architecture.md§8.5注:原文用语是"两轴判断 + 三种执行体(hook / skill / subagent)",这里沿用 §8.5 的"三轴划分"叫法。本节早期版本写成"五轴"是把"内置 / MCP / skill / hook / subagent 五种工具来源"和"两轴四象限的划分"混在了一起,已修正。
#2.3 Skill 不是 prompt,也不是工具
容易踩的坑:
- "skill 不就是 prompt 模板?" —— 不是。Claude Code 的 skill 可以带
scripts/、可以context: fork跑在 subagent 里,可以声明allowed-tools/paths影响权限链与触发条件;OpenClaw 的 skill 可以声明requires.binsrequires.env,运行环境不满足就 gating 掉。这些都不是 prompt 模板能干的(来源:openclaw-agent-architecture.md§4.1 Skills 章节)。 - "skill 不就是 tool?" —— 不是。Tool 是 LLM 一次决策,skill 一旦 invoke 后整段 body 渲染成消息常驻 context(来源:
claude-code-agent-architecture.md§1.3 "渲染后作为一条消息常驻在 session";Claude Code skills 文档 Skill content lifecycle 节也明确"the rendered SKILL.md content enters the conversation as a single message and stays there for the rest of the session")。Tool 的 result 进 context,skill 的 prompt 进 context,方向相反。 - "skill 不就是 subagent 退化?" —— 不是。subagent 必须独立 context(
claude-code-agent-architecture.md§1.3 对照表里 subagent "一次调用、回传摘要" vs skill "渲染后作为一条消息常驻")。
#三、Skill 定义形式(frontmatter + body)的 5 种风格对照
"YAML frontmatter 是 agent 框架圈的 'Markdown 加 H1' —— 看似一样,字段哲学差很远。"
#3.1 5 种 frontmatter 风格
#A. Claude Code 风格(重权限 + 重路由)
---
name: deploy
description: Deploy the application to production
when_to_use: 当用户说 "ship it" / "deploy" / "上线" 时
disable-model-invocation: true
user-invocable: true
allowed-tools: Bash(git push *) Bash(npm run build *)
context: fork
agent: Explore
paths: ["src/**/*.ts"]
model: sonnet
effort: high
---
字段全集(来自官方 Frontmatter reference 表,皆可选):name / description / when_to_use / argument-hint / arguments / disable-model-invocation / user-invocable / allowed-tools / model / effort / context / agent / hooks / paths / shell。
特点:
disable-model-invocation把"自动召回"关掉只留用户触发;user-invocable: false反过来——只让 LLM 看见、不让用户在/菜单看见allowed-tools用通配符控制权限(skill 激活时这些 tool 无需 per-use approval)context: fork让 skill 跑在 subagent 里,agent指定哪种 subagent(Explore / Plan / general-purpose / 自定义)paths跟 Cursor 的 glob 类似——文件命中时才把 skill 描述算进候选- 来源:
claude-code-agent-architecture.md§1.3;Claude Code 官方 skills 文档
#B. OpenClaw 风格(重环境依赖声明)
---
name: jira
description: Search, create, update, and comment on Jira issues.
version: 1.4.0
metadata:
openclaw:
requires:
env: [JIRA_HOST, JIRA_EMAIL]
bins: [jq]
anyBins: []
config: []
os: [darwin, linux]
primaryEnv: JIRA_API_TOKEN
install:
brew: [jq]
always: false
---
特点:requires.{env,bins,config,os} 是 运行时 gating,启动时任一不满足这次 session 直接不上这个 skill,生态级别防御——不是每个用户的机器都能跑每个 skill。primaryEnv 标"主要看哪个 env"用于 UI 提示,install.brew 给"装哪个 brew 包"的建议(来源:openclaw-agent-architecture.md §4.1 Skills frontmatter / 6 层加载优先级)。
#C. Hermes 风格(最简,跟 agentskills.io 靠齐)
---
name: pdf-summarize
description: 把任意 PDF 抓取要点并产出结构化摘要
version: 0.3.0
platforms: [linux, macos]
metadata:
hermes:
config:
max_pages: 50
---
特点:顶层字段(name / description / version / platforms)跟 agentskills.io 开放标准对齐——platforms 是 OS gating,跟 OpenClaw requires.os 等价但更轻;metadata.hermes 段是 Hermes 私有扩展,runtime 可读 config 子段做参数注入(来源:hermes-agent-architecture.md §1.2 SKILL.md)。
#D. Cursor 风格(Rules 4 种触发 + Agent Skills)
---
description: "When the user asks about database migrations, load this."
alwaysApply: false
globs: ["db/migrations/**"]
---
特点:三个字段(alwaysApply / globs / description)排列组合出 4 种触发模式(见第五章),是 frontmatter 设计最精巧的一家(来源:cursor-agent-architecture.md §1.2,官方原文用语 "Always Apply / Apply to Specific Files / Apply Intelligently / Apply Manually")。
2026-06 复核补充:Cursor 2.4 changelog 已新增 Agent Skills,文件形态是 SKILL.md。
因此 Cursor 现在应按双轨理解:.cursor/rules/*.mdc 是 declarative context,
SKILL.md 是 procedural/on-demand context。旧结论"Cursor 的 Skill 叫 Rules"需要降级为
"Rules 是 Cursor 最早的 skill-like 机制"。
#E. OpenHands Microagent 风格(关键词触发)
---
name: react-best-practices
type: knowledge
version: 1.0.0
agent: CodeActAgent
triggers:
- react
- hooks
- useState
---
特点:triggers 是关键词数组(字面 substring 匹配,不做语义匹配),user message 里出现任一就触发 RecallAction → RecallObservation 注入 microagent。
v1 SDK 简化:v1 把 frontmatter 大幅精简,Keyword-Triggered Skills 只有
triggers是必填,name/type/version/agent都已非强约束;General Skills(永久注入类)干脆不要 frontmatter(来源:openhands-agent-architecture.md§1.3 "v1 SDK 的演化")。
#3.2 字段哲学对照表
| 字段意图 | Claude Code | OpenClaw | Hermes | Cursor | OpenHands (v0 / v1) |
|---|---|---|---|---|---|
| 身份 | name / description / when_to_use | name / description / version | name / description / version | description | name / type / version → v1 大多非强约束 |
| 触发(自动) | description(model-invocation 默认 ✓)/ paths glob | description / always | description | alwaysApply / globs / description | triggers (关键词数组) |
| 触发(人工) | /<name> + arguments / argument-hint;user-invocable 控制菜单 |
/<skill-name>(slash command) |
/<name> 注入成 user message |
@<rule-name> |
slash style(task microagent) |
| 抑制自动召回 | disable-model-invocation | always: false / disable-model-invocation | (runtime 策略) | alwaysApply: false + 空 description | (v1 留 triggers 即可) |
| 权限 | allowed-tools(per-skill 免审批) | (在 agent allowlist 处) | (runtime / AGENTS.md) | (IDE 权限) | agent (CodeActAgent) |
| 环境 gating | ✗(仅 paths 限制触发) | requires.env / bins / anyBins / config / os | platforms (OS) | ✗ | ✗ |
| 执行体路由 | context: fork + agent | (session lane) | (runtime) | ✗ | ✗ |
| 模型 / 思考量 | model / effort 覆盖会话级 | ✗ | (runtime 切换) | ✗ | ✗ |
| 生命周期 hook | hooks(PreToolUse/...) | 全局 hook | 全局 hook + plugin hook | hooks.json(Cloud only) | Stuck Detector 等 |
| 多文件资源 | scripts/ + reference/ + assets/ | TS / Python helpers + brew install hint | helpers.py + examples/ | ✗(单文件 .mdc) |
单文件 .md |
| 动态注入 | !`<command>` 在 body 里执行 shell;${CLAUDE_SKILL_DIR} / $ARGUMENTS 等占位符 |
bash inline + 自定义脚本 | tools/*.py 自动发现 | Rules 无;Agent Skills 走 SKILL.md body |
✗ |
最大差异:OpenClaw 把"运行环境依赖"作为一等字段,其它家全靠 body 里写"安装 jq 才能用"。这是社区生态级别才需要的设计(5400+ skill 不可能假设用户都装齐了)。Claude Code 的特色相反——把 skill 的"执行策略"(context、agent、model、effort、hooks)也做成一等字段,让 skill 不只是文本,而是带运行时偏好的可执行单元。
#3.3 多文件 skill:目录形态 vs 单文件形态
单文件:
skill.md ← Cursor / Cline / OpenHands microagent
目录:
skills/jira/
├── SKILL.md ← 必需
├── jira-search.ts ← OpenClaw 可选
├── helpers.py ← Hermes 可选
├── scripts/ ← Claude Code 可选
└── examples/ ← 都可选
目录形态的优势:可以通过 ${CLAUDE_SKILL_DIR}/scripts/build.sh 这种相对路径,在 body 的自然语言指令里 inline 调脚本,让"自然语言 → 确定性脚本"无缝桥接(来源:claude-code-agent-architecture.md §4.2,及 Claude Code 官方 Available string substitutions 表里 ${CLAUDE_SKILL_DIR})。
#四、Skill 加载策略的 4 种取舍
"Context 是有限的,skill 是无限的——加载策略决定 skill 系统能不能 scale 到 5000+ 量级。"
#4.1 4 种主流加载策略
#策略 1:Preload All(全注入)
代表:Cline .clinerules/、OpenHands repo.md、Codex AGENTS.md
启动时:把所有 .clinerules/*.md 拼成一段,append 到 system prompt
- 优点:行为可预测,永远在 ctx 里
- 缺点:rules 多了 ctx 爆掉。Cursor 文档(
cursor-agent-architecture.md§8.3 "Rules 越来越多,怎么不让 system prompt 爆炸")就专门讨论这件事
#策略 2:Description 常驻 + Body 用时进("on-demand 召回")
代表:Claude Code skill、OpenClaw skill、Hermes skill
启动时:
├─ skill 描述清单(每个 1,536 字符)→ 进 system prompt
└─ skill body(5K-25K tokens)→ 不进,只准备好
LLM 看到合适的 description → 决定 invoke <name>
└─ 此时 body 渲染成一条 user/system 消息插进对话
- 优点:~1% ctx 预算装下 50 个 skill 的"广告位"(来源:
claude-code-agent-architecture.md§5 五层加载表;Claude Code 官方 Skill descriptions are cut short 节确认:默认按"模型 context 的 1%"分配字符预算,溢出时优先丢"用得少的 skill"的描述) - 缺点:依赖模型读 description 的判断力——description 写不好就召回不到
来源:claude-code-agent-architecture.md §5(五层记忆加载表):
4. skill descriptions 你 启动 名字 + 1,536 字符
~/.claude/skills/* + 描述/skill, 共享
.claude/skills/* ~1% ctx 预算
skill body 你 用时 一条消息常驻
可调旋钮:
skillListingBudgetFraction(默认 0.01)/maxSkillDescriptionChars(默认 1,536)/SLASH_COMMAND_TOOL_CHAR_BUDGETenv var 都能改这两个预算。
#策略 3:File Glob 自动 Attach(按文件命中)
代表:Cursor .cursor/rules/ 的 Auto-Attached 模式、Cline frontmatter paths:、Claude Code skill 的 paths: 字段
对话里出现匹配 globs 的文件(@File 引用 / open editor / git diff):
└─ 自动把匹配的 rules 注入 system prompt
- 优点:跟"当下任务相关"绑定最紧密
- 缺点:依赖 IDE / harness 知道"当下文件"是什么
来源:cursor-agent-architecture.md §1.2 "Auto Attached: 当对话里出现匹配该 glob 的文件时自动注入"。
#策略 4:关键词 Triggers(OpenHands 独有)
代表:OpenHands Knowledge Microagent
user message: "我想加个 useEffect 管下副作用"
↓
扫已注册的 triggers → 命中 "useEffect"
↓
emit RecallAction → Memory.recall → emit RecallObservation(content=microagent_text)
↓
注入 system 区
- 优点:决策点在用户原话,比 LLM 决策更稳定
- 缺点:关键词覆盖率有限,遗漏的话 microagent 永远不被触发
来源:openhands-agent-architecture.md §5.4 触发链路。
#4.2 加载优先级(同名 skill 怎么覆盖)
只有 OpenClaw 和 Claude Code 显式做了"多 scope 同名优先级"。
#OpenClaw 6 层(来源:openclaw-agent-architecture.md §4.1 Skills 加载策略)
1. <workspace>/skills ← 工作区私有,最高
2. <workspace>/.agents/skills ← project-scoped agent skills
3. ~/.agents/skills ← personal agent skills
4. ~/.openclaw/skills ← managed/local
5. <install>/skills ← bundled
6. skills.load.extraDirs ← 兜底扩展目录
#Claude Code 4 scope(来源:Claude Code 官方 skills 文档 Where skills live 表)
Enterprise(managed settings) > Personal(~/.claude/skills/) > Project(<repo>/.claude/skills/)
Plugin(<plugin>/skills/)— 走 `plugin-name:skill-name` 独立命名空间,跟以上不冲突
注:早期对照文档把这套写成 "managed > --agents CLI > 项目 > 用户 > 插件",那是 subagent 的覆盖链,skill 比这简单——只看四个 scope。
核心设计:
Session 启动时打快照—— OpenClaw 明确"session 跑起来后再改 SKILL.md 默认不影响这一轮(除非开了 watcher)"(来源:openclaw-agent-architecture.md§4.1)。Claude Code 反过来支持 live change detection——~/.claude/skills/、project.claude/skills/、--add-dir目录的增删改都会在当前 session 内生效,无需重启(新建顶层目录除外)。这是少有的在"快照 vs 热重载"上跟 prompt cache 完整性反向取舍的家。
#4.3 加载策略对比表
| 家 | 加载策略 | 触发判断主体 | 是否支持环境 gating | session 内热重载 |
|---|---|---|---|---|
| Claude Code | desc 常驻 + body 用时进(+ paths glob 条件触发) | LLM | ✗(paths 仅过滤触发) | ✓ live change detection |
| OpenClaw | desc 常驻 + body 用时进 + 6 层覆盖 | LLM | ✓ requires.{env,bins,config,os} | ✗(默认) |
| Hermes | 启动加载 + Hub 拉 | LLM + /skills 命令 |
platforms (OS) | ✗(cache 完整性) |
| OpenHands | repo 永久 + knowledge triggers + task slash | 框架 + 用户 | ✗ | ✗ |
| Cursor | Rules 4 种触发 + Agent Skills SKILL.md |
框架 + glob + LLM + 用户 / agent 按需 | ✗ | ✓ |
| Cline | 全注入 | 框架 | ✗ | ✓ |
| Codex | AGENTS.md 全注入 + skill 显式 $name |
用户显式 | ✗ | ✗ |
| AutoGen | n/a(手写) | n/a | n/a | n/a |
| LangGraph | n/a(手写) | n/a | n/a | n/a |
#五、Skill 触发机制对照(4 种召回)
"召回机制决定 skill 系统的'幻觉率'——召回不到就跟没写一样,召错了就污染 ctx。"
#5.1 4 种触发机制
┌──────────────────────────────────────────────────────────────┐
│ 触发 skill 的 4 种方式 │
└──────────────────────────────────────────────────────────────┘
① LLM 自决(按 description) ② 文件 glob 自动 attach
───────────────────────── ──────────────────────
desc → system prompt glob → 命中文件
LLM 看到合适就 invoke 自动 inject
代表:Claude Code / OpenClaw 代表:Cursor Auto-Attached
③ 关键词 / @-mention 显式触发 ④ slash command / 元工具调
────────────────────────── ──────────────────────
user 输入触发词 / @rule /skill-name args
框架检测注入 直接执行
代表:OpenHands triggers 代表:Claude Code /name
Cursor @rule-name OpenClaw /skill-name
#5.2 Cursor 的 Rules 4 种模式 + Agent Skills 双轨
来自 cursor-agent-architecture.md §1.2:
┌─────────────────┬─────────────────────────────┬─────────────────────────────┐
│ 模式 │ frontmatter 关键字段 │ 何时塞进 system prompt │
├─────────────────┼─────────────────────────────┼─────────────────────────────┤
│ Always │ alwaysApply: true │ 每次 agent 调用都注入 │
│ Auto Attached │ 非空 globs │ 命中文件时自动注入 │
│ Agent Requested │ 非空 description, alwaysApply │ desc 给 agent,由 agent 自决 │
│ │ : false │ │
│ Manual │ 空 frontmatter │ 只在用户 @rule-name 时加载 │
└─────────────────┴─────────────────────────────┴─────────────────────────────┘
核心洞察:Cursor 用 frontmatter 字段的有无 / 值,把 4 种触发机制全压在一个 .mdc 文件里。
项目大了 50+ rules 也不会爆 ctx —— 实际进 prompt 的 rules 远少于硬盘上的 rules(来源:cursor-agent-architecture.md §8.3)。
但 2026-06 的最新口径要多加一层:Cursor 2.4 已有 Agent Skills (SKILL.md)。
Rules 解决"什么上下文应该附加",Skills 解决"某类任务应该按什么步骤做"。横评时 Cursor
不能再归为"没有原生 skill,只靠 rules 替代"。
LLM 看到的初始 tools 数组:
skill, ← 元工具:根据 toolset_id 加载工具集
find_assets, ← 元工具:向量搜索能力库
<preload 4 件套>
LLM 流程:
1. find_assets("把 PDF 转成图片") → 向量搜索返回相关 toolset 列表
2. skill(toolset_id=176) → 加载 pdf_processor 的 11 个工具到 tools 数组
这是"on-demand"思路的另一种实现:不是 LLM 看 description 自决,而是 LLM 主动调元工具搜索 + 加载。差异:
|------|---------------------------|----------------------| | skill 描述存在哪 | system prompt | 向量库(Milvus) | | 触发开销 | 0(LLM 直接 invoke) | 1 个 tool_call(先搜) | | 召回精度 | 取决于 LLM | 取决于向量相似度 + LLM | | 量级 | ~50 skill 仍可用 | 1000+ toolset 也撑得住 | | 可解释性 | 高 | 中(向量搜索黑盒) |
#5.4 Cline 的 slash command 是"改思考链",不是"召 skill"
来自 cline-agent-architecture.md §3.5(slash commands 改思考链):
/newtask 把当前 task 的 plan + 已完成的事 + 相关文件 + 下一步打包成 prompt,开新 task(清 context)
/smol 让 LLM 给当前 history 出一份压缩摘要,替换原 history(同 task 内瘦身)
/deep-planning 切到强化推理 prompt,强制先产出多步计划再开始
/reportbug 走对话式 bug report 收集,自动 POST 到 Cline GitHub Issues
这跟"skill"不完全对应——它们改变的是 整个 session 的思考策略,不是注入一段领域知识。 但功能上扮演了"用户显式触发的 playbook"角色,所以归到 skill 大族里。
#六、Skill 自进化(Hermes 独家)
"Skill 系统真正的天花板,是让 agent 自己学新本事。10 家里只有 Hermes 把这一步做到 first-class。"
#6.1 Hermes 的三件事闭环
来自 hermes-agent-architecture.md §1.3(自进化闭环):
┌────────────────────────────────────────┐
│ A closed learning loop │
└────────────────────────────────────────┘
┌────────────┐ ┌────────────┐ ┌────────────┐
│ 1. 持久记忆 │ │ 2. 自动造 │ │ 3. 技能 │
│ MEMORY.md │ │ 技能 │ │ 自我修补 │
│ + 周期 nudge │ │ 5+ tool_call│ │ 用着不对就 │
│ │ │ 任务结束后 │ │ patch SKILL │
└────────────┘ └────────────┘ └────────────┘
▲ │
└──────── 同一个 agent 自己干 ─────┘
具体规则(来自 Hermes 的 AGENTS.md 文档):
- Persistent memory: agent-curated facts written to
MEMORY.mdwith periodic nudges to persist durable knowledge - Autonomous skill creation: after complex tasks (5+ tool calls), the agent creates reusable skill documents
- Skill self-improvement: skills are patched during use when they are outdated, incomplete, or wrong
#6.2 为什么这个闭环能成立
关键设计:MEMORY.md 和 SKILL.md 都是普通 markdown 文件。Agent 学到的东西
不是黑盒向量,而是 人类可读、可 diff、可 git 提交、可分享上 Skills Hub 的纯文本(来源:hermes-agent-architecture.md §1.3 "设计哲学" 段)。
跟 RAG / vector memory 的取舍:
| 维度 | RAG / vector memory | Hermes SKILL.md |
|---|---|---|
| 可读性 | 黑盒 embedding | 人类可读 markdown |
| 可审计 | 只能看 query / hit | diff + git log |
| 可分享 | 难(向量库不通用) | 直接复制文件 / Skills Hub |
| 召回质量 | 向量相似度 | LLM 看 frontmatter description 决定 |
| 适用场景 | 大规模事实记忆 | 程序性记忆("怎么做") |
#6.3 Hermes 的工作流细节
第 N 次推理:
user: "把这 PDF 抽出表格再合并到 sheet"
agent.run_conversation():
LLM 调 read_file → 调 pdf_extract_tables → 调 sheet_merge
LLM 调 verify_result → 调 fix_columns → 调 final_check
(6 个 tool_call ≥ 阈值 5)
任务结束后:
└→ SkillCreator 触发:
├─ LLM 总结这次的工具序列 + 决策逻辑
├─ 生成 SKILL.md(frontmatter + body)
└─ 写到 ~/.hermes/skills/pdf-table-to-sheet/SKILL.md
第 N+1 次推理:
user: "再帮我处理另一个 PDF 的表"
prompt_builder 拼 system prompt 时:
└→ 检测 skills/ 目录有 pdf-table-to-sheet
└→ 把 description + body 注入 [3] 已加载的 SKILL.md 段
LLM 直接按 SKILL.md 走,不用从头摸索
第 N+M 次推理(skill 用错了):
agent 发现按 SKILL.md 第 3 步执行时报错
└→ SkillPatcher 触发:
├─ 分析失败原因
└─ 改 SKILL.md 的第 3 步表述
复用启发:
- 任意写过完整流程 ReAct 的 agent 框架,理论上都能加这个闭环——只要持久化层支持 markdown。难点不在工程,在"agent 该不该被信任去 patch 自己的 skill"。
- 跟 Codex "明确禁止 LLM 写 AGENTS.md" 形成对比(来源:
codex-agent-architecture.md§1.4 / §8.4——"AGENTS.md 是让人 review 给 LLM 看的文档,而不是 LLM 自己存的记忆。Codex 不会自己往里写")。Codex 的立场:AGENTS.md 是要 review、要 PR 的工程文档,不能让 LLM 偷偷改。Hermes 的立场:SKILL.md 是 agent 的程序性记忆,不让 agent 改就等于禁止它学习。两条路线没有对错,是不同场景的合理选择。
#6.4 自进化对照表
来自各家单架构文档对"agent 自学 / patch 自己能力"章节的交叉总结:
| 能否 agent 自己造工具 | 能否 patch 自己的能力 | 能否管理自己的长期记忆 | |
|---|---|---|---|
| OpenClaw | ✗ | ✗ | 部分(hook 抢救 + DREAMS.md 社区扩展) |
| Hermes | ✓ 5+ tool_call 后自动造 SKILL | ✓ skill 用错时 patch | ✓ MEMORY.md curate + 周期 nudge |
| Claude Code | ✗(subagent / skill 都人写) | ✗ | 部分(auto MEMORY.md / KAIROS 模式后台 /dream 整理 topic files) |
| Codex | ✗(明确不让 LLM 写 AGENTS.md) | ✗ | ✗(仅 SQLite session resume / fork) |
| Cursor | ✗(rules 由人维护) | ✗ | 部分(Memories 自学,与 Rules 互补) |
| Cline | ✗ | ✗ | ✗(靠用户写 .clinerules/) |
| OpenHands | ✗(microagents 由人写) | ✗ | 部分(Condenser 自动总结 event history) |
| AutoGen / LangGraph | ✗(lib 不管这层) | ✗ | ✗ |
结论:Hermes 是 10 家里唯一把"自进化闭环"做成 first-class —— 这是模型公司做 agent 的天然优势:用户使用 trace 是下一代训练数据。
#七、Skill 生态对比(ClawHub / agentskills.io / 跨家兼容)
"Skill 的真正价值不在框架本身,而在能不能形成跨家可流通的生态。"
#7.1 三大生态
#ClawHub(OpenClaw 社区)
- 仓库:
openclaw/clawhub(来源:openclaw-agent-architecture.md§9 附录 / 第 4 章) - 量级:5400+ skill(来源:
openclaw-agent-architecture.md§4.1;社区策展仓库VoltAgent/awesome-openclaw-skills) - 格式:OpenClaw
SKILL.md标准(带metadata.openclaw.requires字段) - 同时托管 SOUL(人格)和 SKILL(能力),双轨发布
#agentskills.io(Anthropic 主导的开放标准)
- 性质:开放规范 + 兼容花名册,而不是中心化 skill 仓库——它定义
SKILL.md的最小字段(name/description)+ progressive disclosure(启动只读名字+描述、激活时再读 body、执行时按需读 scripts/references/assets)+ 目录结构约定 - 兼容厂商(截至 2026-05,agentskills.io 官方花名册):Claude Code / Claude / OpenAI Codex / OpenHands / Cursor / Gemini CLI / Goose / VS Code / GitHub Copilot / Kiro / Roo Code / Amp / Letta / Factory / Tabnine / Spring AI / Databricks / Snowflake / 等 ~40 家
- 量级:没有一个中心仓库,每家厂商自己组织 skill 分发(如 Claude Code 走
~/.claude/skills/+ plugin) - 格式:
SKILL.md带name / description / version等基础字段,私有扩展走metadata.<vendor>
关于 "Anthropic Skills Hub" 的提法:Anthropic 官方主推的是 agentskills.io 开放标准(含一个 GitHub 讨论入口
agentskills/agentskills),并没有一个中心化的 "Skills Hub" 仓库。原文里"Anthropic Skills Hub"是非正式叫法,本节统一改用"agentskills.io 标准"。
#OpenHands 公共 Microagents / Skills 仓库
- 仓库:
microagents/(OpenHands 官方仓库根目录;v1 SDK 改名skills/走.agents/skills/) - 量级:相对前两家小
- 格式:trigger 关键词 + frontmatter(v1 大幅精简)
#7.2 跨家兼容性(同一份 SKILL.md 能不能多家用)
| 兼容方向 | 可行性 | 备注 |
|---|---|---|
| Claude Code SKILL.md → Hermes | 高 | 都跟 agentskills.io 标准对齐,frontmatter 字段重叠度高 |
| Hermes SKILL.md → Claude Code | 高 | 同上 |
| OpenClaw SKILL.md → Claude Code | 中 | OpenClaw 的 requires.bins 等字段 Claude Code 不识别但不会报错 |
Cursor .mdc → Claude Code skill |
低 | alwaysApply / globs 字段没对应概念 |
| OpenHands microagent → Claude Code | 低 | triggers 关键词机制 Claude Code 没有 |
| 任何家 → AutoGen / LangGraph | n/a | 这两家没 skill 概念,要用户自己 wrap |
实际操作:OpenClaw 的 plugin bundle 机制可以"绕路接 Codex / Claude / Cursor 生态"——把 Cursor mcp.json 或 Claude Code settings.json 作为 bundle 装进来,OpenClaw 重映射成 native skill / hook / MCP(来源:openclaw-agent-architecture.md §4.1 Plugin Bundles 段)。这是 10 家里唯一显式做"跨家生态吸引"的设计。
#7.3 商业化角度
- OpenClaw 的 ClawHub 是 MIT 开源 + 社区,没有直接收费
- agentskills.io 是 Anthropic 主导的开放标准,本身不直接绑订阅(跨厂商兼容),但 Anthropic 自家 Claude / Claude Code 用上 skill 时间接受益于 Pro/Max 订阅
- Hermes Skills Hub 跟 Nous 的模型推服务捆绑——用户用了好的 skill 反过来沉淀 Nous 模型的 agent 数据(待核实:Skills Hub 商业化路径官方尚未公开)
趋势观察:skill 生态可能会成为 agent 框架的"App Store 时刻"。 谁先把 skill 标准化 + 收钱机制做出来,谁就拿到长尾开发者的红利。 目前看 OpenClaw 走得最快但没收钱(社区驱动),Anthropic 走得最稳(开放标准 + 大量厂商接入),还没人开始做"skill 付费市场"。
#八、没有 "Skill" 的家如何替代
"看一个抽象有多基础,就看没有它的家是怎么蹩脚地替代它的。"
APC (scenario_pack)
│ 存 system prompt 主体 markdown 在 S3
│ 启动时拉到 prompt_builder 注入 system 段
│ ★ 跟 Claude Code 的 CLAUDE.md 类似,跟 Cursor Always rules 类似
│
├─ preload_toolsets ← 4 件套常驻 LLM tools 数组
│ toolset = 工具集(OpenAI tools schema)
│
└─ toolsets (on-demand) ← 11 件套,元工具按需加载
skill(toolset_id=...) ← 元工具,加载到 LLM tools
find_assets(query) ← 元工具,向量搜索能力
FastAgent = 一个完整的子 LLM 推理过程,被包装成一个 tool
= "工具同构原则"
举例:browser_operator (toolset 368) 是 FA:
fastagent_config:
model: gpt-4o
max_iterations: 30
is_async: false
调用时:
2. FA 内部跑自己的 ReAct 循环(最多 30 轮):截图 → 点击 → 填表 → 截图...
3. FA 完成后返回最终结果给 SystemAgent
#8.2 Codex:subagent + AGENTS.md + .codex/skills/
Codex 的 subagent(.codex/agents/*.toml)扮演了类似 Claude Code subagent 的角色,但跟 skill 是两回事。Codex 真正最接近 skill 的有两层:
.codex/skills/(仓库根目录)—— 可复用的 prompt / 脚本片段,用$skill_name触发。$imagegen是内置 skill。来源:codex-agent-architecture.md§4.5。- AGENTS.md 嵌套层级合并—— 多层级(
~/.codex/AGENTS.override.md→~/.codex/AGENTS.md→<git_root>/AGENTS.md→<git_root>/<sub_dir>/AGENTS.md→ ... →<cwd>/AGENTS.md),每个目录最多取一个文件,先找.override.md再找AGENTS.md。来源:codex-agent-architecture.md§1.4。
Codex 的特色:subagent 必须显式 spawn("在 prompt 里说'开 N 个 agent 做 X'"),max_threads = 6 / max_depth = 1 默认很保守(来源:codex-agent-architecture.md §1.3)。这跟 Claude Code skill "LLM 自决 invoke" 是两种安全哲学。
#8.3 AutoGen:用 system_message + tools 模拟
agent = AssistantAgent(
"writer",
model_client=client,
tools=[web_search],
system_message="Use tools to solve tasks.",
)
AutoGen 没有 skill 抽象(来源:autogen-agent-architecture.md 工具系统章节)。要做"一段可复用 playbook"只能:
- 把 system_message 抽出来成
Path("skills/foo.md").read_text() - 用 SocietyOfMindAgent 把一组 agents 包装成 sub-team
- 自定义
BaseChatAgent子类,在on_messages里实现 playbook 逻辑
AutoGen 不做 skill 是合理的选择:lib 形态的框架要保持"无意见",让用户自己决定如何组织 prompt 资产。代价是 AutoGen 没有 ClawHub 这种生态。
#8.4 LangGraph:subgraph + 自定义 Node
# 把"写文章 + 校对 + 发布"的 playbook 做成 subgraph
def write_article_subgraph():
sg = StateGraph(ArticleState)
sg.add_node("write", write_node)
sg.add_node("review", review_node)
sg.add_node("publish", publish_node)
...
return sg.compile()
# 主图里把 subgraph 当 node 用
main_graph.add_node("article_workflow", write_article_subgraph())
LangGraph 的 skill 等价物是 subgraph + state schema(来源:langgraph-agent-architecture.md 第 4 章 StateGraph / ToolNode / subgraph)。优势是状态可观测、可中断、可 checkpoint;劣势是认知门槛高,不能像 markdown 那样让"写 prompt 的人"直接维护。
#8.5 替代形态对照表
| 家 | "skill" 的功能性替代 | 可发布性 | 跨家移植性 |
|---|---|---|---|
| Codex | .codex/skills/$name + subagent toml + AGENTS.md |
git 走 PR | 中 |
| AutoGen | system_message 字符串 + 自定义 agent class | Python 包 | 低 |
| LangGraph | subgraph + state schema | Python 模块 | 低 |
#九、最值得抄走的 5 个 Skill 设计
"一个抽象好不好用,看的不是它本身,是它生出来的二阶设计有多漂亮。"
#9.1 Claude Code: description 常驻 + body 用时进 + auto re-attach
启动时所有 skill description(每条上限 1,536 字符)进 system prompt(共享 ~1% ctx);LLM invoke 后 body 渲染常驻;auto-compact 时最近 invoked skill 按 25K 总预算 / 5K each re-attach(最新优先,旧的可能被全丢)。抄走理由:1% ctx 装 50 个 skill 广告位 + 用时才付 body 代价 + 失忆后 re-attach 容错,三件事一起做才完整;还附送 /doctor 自检 + skillListingBudgetFraction 可调旋钮。来源:claude-code-agent-architecture.md §5 + Claude Code 官方 Skill content lifecycle / Skill descriptions are cut short。
#9.2 OpenClaw: requires.{env,bins,config,os} gating
metadata:
openclaw:
requires:
env: [JIRA_HOST]
bins: [jq]
os: [darwin, linux]
抄走理由:5400+ skill 不可能假设用户机器都装齐。把"运行依赖"做成 frontmatter 一等字段,启动时 gating 掉跑不起来的 skill。任何想做 skill 生态(不只是自用)的团队都该抄。来源:openclaw-agent-architecture.md §4.1。
#9.3 Hermes: 5+ tool_call 后自动造 SKILL + 用错时 patch
任务结束 tool_call_count ≥ 5 → SkillCreator 自动生成 SKILL.md;后续使用过程中检测到 skill 失效 → SkillPatcher 改写。抄走理由:让 agent 自己沉淀程序性记忆是 skill 系统的"圣杯",10 家里只有 Hermes 做了。代价是企业场景需要 staging + sandbox + review 流程。来源:hermes-agent-architecture.md §1.3。
#9.4 Cursor: Rules 4 种触发 + Agent Skills
一个 .mdc 文件 frontmatter 字段排列出 Always / Auto-Attached / Agent-Requested / Manual 四档:alwaysApply: true → Always,非空 globs → Auto-Attached,非空 description + alwaysApply: false → Agent-Requested,空 frontmatter → Manual。抄走理由:50+ rules 不爆 ctx 的根本机制,比"每种触发起一个目录"优雅。
2026-06 以后再加一个判断:Cursor Agent Skills 采用 SKILL.md,承担 procedural context。
如果要抄 Cursor,应该同时抄"Rules 控上下文"和"Skills 控流程"的分层。来源:cursor-agent-architecture.md §1.2 / §1.3。
#十、趋势观察 + 一句话各家总结
"从 2024 到 2026,skill 从 'nice to have' 变成 'must have',下一站是 skill 市场化。"
#10.1 四个趋势
#趋势 1:markdown + frontmatter 已成事实标准
#趋势 2:on-demand 召回 > preload all
#趋势 3:skill 自进化是下一个分水岭
Hermes 是当前唯一做了"agent 自己造 skill + patch skill"的家。 但这条路有两个挑战:
- 安全审计:agent 自己改 skill,企业场景必须有 review 流程
- 质量校准:5+ tool_call 不一定意味着学到了好的流程,可能只是把臭代码沉淀成了臭 skill
预测:2027 年会有更多家加入自进化阵营,但需要配套**"skill staging" + "skill review"** 这套机制(类似代码 PR)。
#趋势 4:skill 商业化是 agent 时代的"App Store 时刻"
OpenClaw 5400+ skill 没收钱,agentskills.io 限定 Anthropic 生态。真正的"skill 市场"还没出现——但 skill 的天然属性(高复用 / 低代码 / 长尾需求)跟 App Store 完全匹配。猜测:2026-2027 会有专做 skill 市场的创业公司出现。
#10.2 一句话各家总结
| 家 | 一句话总结 |
|---|---|
| Claude Code | Skill 系统的"工业级标杆"——description 常驻 + body 用时进 + auto re-attach + permission 链整合,五种工具来源(内置 / MCP / skill / hook / subagent)配合两轴四象限的划分,边界最清楚。 |
| OpenClaw | Skill 生态的"集大成者"——ClawHub 5400+ skill + 6 层加载优先级 + requires.{env,bins,config,os} 环境 gating,是唯一规模化生态。 |
| Hermes | Skill 自进化的"独此一家"——5+ tool_call 自动造 SKILL + 用错时 patch + MEMORY.md curate,模型公司做 agent 的天然优势。 |
| OpenHands | Skill 是 microagent 时代过渡到 skill 时代的"过渡形态"——repo / knowledge / task 三类 + 关键词 triggers,v1 SDK 已统一到 .agents/skills/。 |
| Cursor | Rules 触发机制仍是最精细设计之一;2026-06 起还要把 Agent Skills (SKILL.md) 纳入原生 skill 口径,形成"Rules 控上下文、Skills 控流程"双轨。 |
| Cline | Skill 的"IDE 扩展简化版"——.clinerules/ 全注入 + slash command 改思考链,没有真正的 on-demand 召回,靠用户克制 rules 数量。 |
| Codex | Skill 的"工程严肃派"——AGENTS.md 多层级合并 + 显式禁止 LLM 写、.codex/skills/$name 显式触发、subagent 必须 prompt 里 spawn,"工程文档要走 git review" 的极致执行。 |
| AutoGen | 没有 skill 概念——lib 形态保持"无意见",让用户用 system_message + tools=[...] + 自定义 agent class 自己拼,代价是没有 skill 生态。 |
| LangGraph | 没有 skill 概念——把"playbook"建模成 subgraph + state schema,可观测可中断可重放,代价是认知门槛高,不像 markdown 那样亲民。 |
#10.3 收束
┌──────────────────────────────────────────────────────────────────┐
│ Skill 系统的 4 个维度的取舍空间 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 载体形态 │
│ ├─ markdown + frontmatter ◀── 8/10 家收敛 │
│ └─ Python 代码 ◀── AutoGen / LangGraph │
│ │
│ 加载策略 │
│ ├─ preload all ◀── Cline / Codex AGENTS.md │
│ ├─ desc 常驻 + body 用时进 ◀── Claude Code / OpenClaw / Hermes │
│ ├─ 4 种触发合一 ◀── Cursor │
│ │
│ 生态 │
│ ├─ 跨家标准 ◀── agentskills.io(Anthropic 主导) │
│ ├─ 大型社区 ◀── ClawHub(5400+) │
│ └─ 私有生态 ◀── 其余 │
│ │
│ 自进化 │
│ └─ ✓ agent 自己造 + patch ◀── 仅 Hermes │
│ │
└──────────────────────────────────────────────────────────────────┘
最后一句话:Skill 不是 agent 框架的"装饰",是 agent 时代的"应用程序"。 Tool 是 agent 的"系统调用",subagent 是 agent 的"进程",skill 是 agent 的"app"。 谁先把 skill 标准化 + 生态化 + 自进化做透,谁就拿到下一个 5 年的话语权。
#附录:引用的文档章节速查
claude-code-agent-architecture.md§1.3(skill 长什么样)、§4(工具系统)、§5(五层加载 + 25K 预算 re-attach)、§8.5(hook / skill / subagent 三轴)openclaw-agent-architecture.md§4.1(4 类工具 + skill frontmatter + 6 层优先级 + gating + slash command + plugin bundles)hermes-agent-architecture.md§1.1-1.4(身份四件套 + SKILL.md + 自进化闭环 + cache 约束)openhands-agent-architecture.md§1.3 / §5.4(Microagents 三类 v0 → v1 Skills 四类 + RecallAction / RecallObservation 触发链路)cursor-agent-architecture.md§1.2 / §1.3 / §5.x(4 种触发模式 + Memories vs Rules)cline-agent-architecture.md§1.2 / §3.5(.clinerules/两层结构 + use_skill 工具 + slash commands 改思考链)codex-agent-architecture.md§1.3 / §1.4 / §4.5 / §8.4(Profile+Subagent+AGENTS.md 四层 +$skill_name+ 禁 LLM 写 AGENTS.md)autogen-agent-architecture.md工具系统章节langgraph-agent-architecture.md第 4 章(StateGraph + ToolNode + subgraph)
外部参考(已 WebFetch 复核 2026-05 仍有效):
- agentskills.io —— Anthropic 主导的开放标准 + 兼容花名册(~40 家厂商)
- Claude Code skills 文档:https://code.claude.com/docs/en/skills
未覆盖主题(→ 别的主题文档):tool 系统、subagent / 多 agent 协作、记忆系统、权限 / 沙箱。