乐于分享
好东西不私藏

第 27 讲 · 从 OpenClaw 到 Hermes:爆款 Agent 的设计密码与工程范式

第 27 讲 · 从 OpenClaw 到 Hermes:爆款 Agent 的设计密码与工程范式

📌 本讲摘要

读爆款 Agent 的源码不是为了抄功能、而是为了反推它们做对了什么。本讲拆解 OpenClaw(Star 第 1、平台型)与 Hermes(Star 第 2、工程型)这两类代表性 Agent、提炼出 4 大共通设计密码(Harness / Channel / Skills / SubAgent)和 5 个可复用工程范式。学完本讲、你应该能用看 3 套源码、提炼 1 个范式、落地 1 个项目的方法、持续从爆款里吸取养分、而不是只会用 Claude Code 自带的命令。

1. 什么是爆款 Agent:三维度筛选标准

爆款不等于下载量第一、而是有可学习价值的产品。本讲用三个维度筛选:

维度
硬指标
软指标
为什么重要
行业口碑
GitHub star > 5K
被官方文档 / 大会引用
说明被同行验证过
架构代表性
开源 + 代码可读
作者愿意讲架构
说明有可学的设计选择
工程化深度
有完整的 CI / 测试 / 文档
有企业用户在生产用
说明不是 demo 级玩具

按这三个维度筛、本讲选 OpenClaw(平台型、生态化)、Hermes(工程型、极致本地化)做样本。两者刚好代表 Agent 产品的两个极端、合起来覆盖 80% 的设计选择。

排名
仓库
Star 数
本讲定位
1
OpenClaw
⭐ 381K
平台型代表、本讲重点拆解
2
Hermes Agent
⭐ 205K
工程型代表、本讲重点拆解
3
AutoGPT
⭐ 185K
早期范式参考
4
LangChain
⭐ 140K
LLM 框架参照
5
Claude Code
⭐ 135K
本课程主线
6
Browser-Use
⭐ 101K
浏览器 Agent 范式

📊 最终核查结果(数据截至 2026-06-29):OpenClaw 与 Hermes 正是当前 GitHub Star 排名前二的 Agent 项目、用它们做样本、就等于站在行业最高点反推设计密码。

⚠️ 坑 1 · 只看 star 数选型——很多高 star 仓库是 awesome-list 型、只是收集链接没有设计选择;反过来、有些 star 不高但设计极精巧的项目反而更值得学。本讲选 OpenClaw 与 Hermes、不仅是 star 高、更因为它们刚好覆盖”平台型 vs 工程型”两个极端。

2. OpenClaw 架构深读:平台型 Agent 的 7 层骨架

实战代码块 1 — OpenClaw 的 7 层模块结构。看仓库根目录能反推它的设计意图:

OpenClaw/├── 01-frontend/          # Web UI / TUI / IDE 插件├── 02-runtime/           # Agent 执行循环├── 03-tools/             # 工具层(Bash / Read / Edit / Grep ...)├── 04-channels/          # 跨平台通道(Telegram / Slack / CLI)├── 05-memory/            # 长期记忆 + CLAUDE.md 解析├── 06-skills/            # Skills 注册中心└── 07-deployment/        # 部署 / CI / Plugin 打包

OpenClaw 走平台化路线——核心思想是 Agent 不只是一个 CLI、而是一个能挂任意前端、任意通道、任意 Skills 的中间层。这跟 Claude Code CLI 的定位不太一样:Claude Code 是一个具体的产品,OpenClaw 是一个 Agent 操作系统。

它对我们最有启发的设计是 04-channels:同一个 Agent runtime、可以挂 Telegram bot / Slack app / Web chat / 桌面 GUI。用户从哪个通道发命令、Agent 都能响应。这种一次 runtime、多端可达是 2026 年 Agent 产品的标配。

职责
对应本课程
借鉴点
frontend
UI 渲染
无直接对应(Claude Code 自带 TUI)
想清楚前端要不要做
runtime
Agent 循环
第 23-24 讲 Agent SDK
循环要可中断、可恢复
tools
工具注册
第 20 讲 Tools 工具系统
工具要可插拔
channels
通道协议
无直接对应(可借鉴)
一次 runtime、多端可达
memory
记忆系统
第 3 讲 CLAUDE.md 记忆
记忆分层:short / long / project
skills
技能注册
第 10-16 讲 Skills 全系
Skills 要可发现、可降级
deployment
部署打包
第 25 讲 Plugins
一个 Skill = 一个独立 npm 包

3. Hermes 范式:配置即代码、Channel 协议、跨运行时

Hermes 是工程派的代表——它不是做一个新 Agent、而是让现有 Agent 跑得更好。三个核心范式:

实战代码块 2 — 配置即代码(Code as Config)。Hermes 把所有配置都用代码描述、不用 YAML / JSON:

// hermes.config.tsimport { defineConfig } from "@hermes/core";export default defineConfig({  agents: {    default: {      model: "claude-sonnet-4-7",      system: "./prompts/main.md",      tools: ["Bash", "Read", "Edit", "Grep"],      skills: ["./skills/lint-fast", "./skills/test-runner"]    },    reviewer: {      model: "claude-haiku-4-5",      system: "./prompts/reviewer.md",      tools: ["Read", "Grep"],      isolated: true   // 独立上下文    }  },  channels: {    cli: { enabled: true },    telegram: {      token: process.env.TELEGRAM_BOT_TOKEN,      webhook: "/api/telegram"    }  },  hooks: {    PreToolUse: "./hooks/pii-guard.ts"  }});

这个范式的价值:用 TypeScript 写配置、可以 import 别的模块、可以用类型检查、可以在配置里跑逻辑。对比 JSON / YAML 配置的纯数据路线、这是配置即代码——配置本身是项目里的一份源代码、可以被 lint、被 type-check、被测试。

Channel 协议:Hermes 定义了一个抽象的 Channel 接口、每个 Channel(CLI / Telegram / Web)都实现这个接口。Agent 不关心消息从哪来、只管我收到了一条消息、要给出回复。这种输入适配器模式让 Agent 真正做到端无关。

跨运行时:Hermes 的 runtime 抽象可以挂在 Node.js、Bun、Deno、甚至浏览器 Web Worker。核心是把 system prompt + tools + message 变成一个标准化的 task、丢给任何能跑 LLM 的环境。

⚠️ 坑 2 · 抄配置即代码但用 JS 不用 TS——没有类型保护的配置、改一个字段名 runtime 才发现错了。配置代码必须上 TypeScript + 严格模式。

4. 4 大共通设计密码:Harness / Channel / Skills / SubAgent

通读两个项目的源码、能反推出 4 个共通的设计密码:

这 4 个密码不是 OpenClaw / Hermes 独有的、而是 2025-2026 年所有头部 Agent 产品的共识:Claude Code、Gemini CLI、Cursor、Continue.dev、Cline 都在不同程度上实现了这 4 个。学完本课程、你已经掌握了 Claude Code 版本的全部 4 个、等于掌握了行业基准线。

5. 5 个可复用工程范式:从爆款反推范式

除了 4 大密码、还有 5 个工程范式也是行业标配:

范式
核心思想
代表项目
适用场景
范式 1 · 插件热加载
Skills / Plugins 运行时注册、无需重启
Claude Code、OpenClaw
频繁加新能力的产品
范式 2 · 工具白盒化
工具的 schema 显式声明、Agent 看得到
Hermes、Claude Code
需要 Agent 自主选工具
范式 3 · 流式思考
Agent 边想边吐 token、不要沉默 30 秒再回答
Cursor、Claude Code
所有交互式 Agent
范式 4 · 错误可恢复
工具调用失败时、Agent 能 retry 或 fallback
OpenClaw、Agent SDK
长链路任务
范式 5 · 审计可观测
每次工具调用落日志、可回放
Hermes、Claude Code Hooks
企业 / 合规场景

实战代码块 3 — 工具白盒化。Hermes 的工具 schema 范本:

// tools/read-file.tsimport { z } from "zod";import { defineTool } from "@hermes/core";export default defineTool({  name: "Read",  description: "Read a file from the filesystem. Returns file content with line numbers.",  input: z.object({    file_path: z.string().describe("Absolute path to the file"),    offset: z.number().int().min(0).optional().describe("Line offset to start from"),    limit: z.number().int().min(1).max(2000).optional().describe("Max lines to read")  }),  output: z.object({    content: z.string(),    total_lines: z.number().int(),    truncated: z.boolean()  }),  risk: "low",  // 告诉 Agent 这个工具的危险等级  async execute({ file_path, offset = 0, limit = 2000 }) {    // 实现 ...  }});

注意 risk: "low" 字段——这是把工具危险等级显式声明、Agent 在自主选工具时会参考。对比 Claude Code 的隐式风险(只能靠 deny 规则拦)、这是更显式的设计。

⚠️ 坑 3 · 抄工具白盒化但跳过 description——description 是 Agent 选工具的唯一依据、写读文件三个字远不如写读取文件内容、返回带行号的文本、适合查看代码或配置有用。

6. 拿来主义:在自己的项目里怎么抄作业

学完 OpenClaw 与 Hermes 的范式之后、怎么把这些范式带回自己的项目?推荐三步法:

实战代码块 4 — 抄作业 Checklist。每次读完一个爆款、过一遍这个清单:

# 爆款学习 Checklist## 1. 它解决了什么问题?- [ ] 用户痛点是什么?为什么非它不可?- [ ] 替代品是什么?它比替代品好在哪?## 2. 它的核心抽象是什么?- [ ] 用 1 句话总结它的"主架构"- [ ] 这个抽象可以套到我的项目吗?## 3. 它做对了哪 3 件事?- [ ] 列出最值得学的 3 个设计选择- [ ] 每个选择为什么好?解决了什么具体问题?## 4. 它做错了哪 1 件事?- [ ] 列出最明显的 1 个缺陷- [ ] 我能不能避免这个缺陷?## 5. 我能从中拿走什么?- [ ] 提炼 1 个可复用的范式(用 50 字内说清楚)- [ ] 列出在我的项目里落地的 3 个具体动作

具体到本课程学完后、你已经能在 Claude Code 里直接用上这些范式(Harness / Skills / SubAgent / Channel / Hooks / Plugins)、所以”抄作业”的姿势应该是——**先在 Claude Code 里把范式用熟、再去读 OpenClaw / Hermes 源码验证哦原来人家也是这么做的、最后在 Agent SDK 上自己实现一遍。**

下面给出 OpenClaw 与 Hermes 的源码深读路径、按推荐顺序读、配合上面的 Checklist、能最快抽干它们的精华。

6.1 OpenClaw 源码深读指南

OpenClaw(OpenClaw/openclaw)是 GitHub Star 第 1 的 Agent 平台、读它不需要从头到尾看完、按这条路径走最快:

阅读顺序
目录 / 文件
看什么
对应本讲哪一节
02-runtime/
Agent 主循环怎么中断、怎么恢复
第 23-24 讲
04-channels/
同一个 runtime 如何挂 Telegram / Slack / Web
第 2 节
03-tools/
工具如何注册、如何插拔
第 20 讲
05-memory/
短期 / 长期 / 项目三级记忆怎么分层
第 3 讲
06-skills/
Skills 的发现机制与降级策略
第 10-16 讲
07-deployment/
一个 Skill 如何独立打包成 npm
第 25 讲

6.2 Hermes 源码深读指南

Hermes(NousResearch/hermes-agent)是 GitHub Star 第 2 的工程派 Agent、按这条路径读最出活:

阅读顺序
文件 / 模块
看什么
对应本讲哪一节
hermes.config.ts
配置即代码范式、TS 类型如何保护配置
第 3 节 · 配置即代码
channels/interface.ts
Channel 接口如何抽象输入适配器
第 3 节 · Channel 协议
runtime/adapter.ts
runtime 如何跨 Node / Bun / Deno / Web Worker
第 3 节 · 跨运行时
tools/read-file.ts
工具 schema 与 risk 字段如何白盒化
第 5 节 · 范式 2 工具白盒化
hooks/pii-guard.ts
PreToolUse 钩子如何做敏感信息拦截
第 5 节 · 范式 5 审计可观测
agents/reviewer.ts
独立上下文的 reviewer agent 如何调度
第 4 节 · SubAgent 密码

⚠️ 坑 4 · 读源码不写笔记——3 个月后忘光。读完一个仓库、必须用 1 页纸总结它的主架构 + 3 个优点 + 1 个缺点、存进你自己的 knowledge base。

7. 一句话备忘

📖 读爆款源码、不是为了抄功能、而是为了反推它们做对了什么、再把范式带回自己的项目。

📚 学习建议 · 三个项目一起读、视角才能立体。建议按 Claude Code → OpenClaw → Hermes 的顺序交叉看:① Claude Code 是你的”母语”、先把 Harness / Skills / SubAgent / Hooks / Plugins 玩熟、建立体感;② OpenClaw 帮你跳出 CLI 视角、看一个真正的 Agent 平台怎么用 7 层骨架挂任意前端与通道、专攻”系统架构”;③ Hermes 帮你从工程派视角看范式——配置即代码、Channel 协议、跨运行时、工具白盒化、审计可观测——专攻”工程落地”。读完之后、回头看任何 Agent(AutoGPT、LangChain、Browser-Use 等)都能很快定位它在 4 大密码和 5 个范式上的取舍。