《Claude Code 工程化实战》第 27 爆款 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.ts
import { 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.ts
import { 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 个范式上的取舍。
更多推荐



所有评论(0)