第三部分:框架实战篇
🛠️ "框架不会让你的 Agent 变聪明,但能让你把聪明更快地落在产品里。选错框架的代价,不是重写代码,而是被迫接受一套不属于你问题的心智模型。"
本部分导读:我们到底在"框架"里买到了什么
在前面两部分,你靠 Prompt + 工具调用 + 上下文工程 从零手搓过 Agent——自己管消息循环、自己解析工具输出、自己维护状态。这让你获得了完全的控制力,也让你真切体会到了"样板代码"的重量:一个能跑的最小 Agent,光是把工具 Schema、执行循环、错误处理、重试、流式输出拼起来,就足以淹没业务逻辑。
框架存在的全部意义,就是把这些反复出现的"工程横切关注点"收敛成可复用的抽象。
但 2026 年的"框架"已经分化成两条路线:
| 路线 | 代表 | 抽象对象 | 适合谁 |
|---|---|---|---|
| 代码框架 | LangChain / LangGraph | 把 Agent 拆成可调的库,让你写代码时组装 | 写代码、交付产品、追求灵活 |
| 行动型 Harness | OpenClaw / Hermes / Claude Code / DeepSeek Harness | 把 Agent 整个交付,你用它而不只是调它 | 想立刻拥有能干活的 AI 助理 |
本部分重点放在后者——6 个深重点章节,每个章节聚焦一个项目,做"从使用到架构"的全景式拆解。
两种路线的根本对比
| 维度 | 从零手搓(裸 LLM API) | 代码框架(LangChain/LangGraph) | 行动型 Harness(OpenClaw/Claude Code 等) |
|---|---|---|---|
| 控制力 | 完全可控,每一行都是你的 | 受框架抽象约束,需绕过才能定制 | 不开放定制,只能配置 |
| 开发速度 | 慢,每个横切关注点都自己写 | 快,开箱即用的编排/状态/观测 | 最快,"开箱即用、能跑能干" |
| 抽象泄漏 | 无 | 高(复杂行为常需"钻出"框架) | 中(通过 Skill/扩展接口补齐) |
| 可调试性 | 栈帧清晰 | 需框架级观测工具 | 依赖 Harness 自带的事件流 |
| 厂商锁定 | 仅模型 API 稳定性 | 框架演进,API 易变 | 高(如果是闭源 Harness) |
| 适用阶段 | 研究原型、极致可控生产、学习原理 | 快速交付、团队协作、原理落地 | 想立即拥有能替你干活的个人助理 |
📌 核心判断:框架是"杠杆",不是"答案"。当你清楚自己要什么、且重复样板代码已成为负担时,框架的杠杆才正向;当你还在探索问题本身时,裸 API 反而让你看得更清楚。这也是为什么本书前两部分坚持带你不依赖框架地手搓——先理解原理,再借框架加速。
行动型 Harness 是另一回事:它默认你已经有了一个手搓 Agent 或者代码框架作为对照——它的价值是把"用 Agent"这件事的门槛降到零,而不是替换原理。所以本部分同时教了你"如何自己搭"和"如何用现成的",二者并不互斥。
一、六大框架 / Harness 选型矩阵
第三部分共 6 章,每章一个项目,全部深重点写法。下面是这一篇的总览(每章节省 800–1500 字):
| 章 | 项目 | 路线 | 类型 | 许可 | 一句话定位 |
|---|---|---|---|---|---|
| 12 | LangChain | 代码框架 | 通用编排框架 | MIT | 生态最广的 Agent 装配库:链、工具、Agent、LCEL |
| 13 | LangGraph | 代码框架 | 有状态图框架 | MIT | 复杂流程:状态图 + 检查点 + Human-in-the-Loop |
| 14 | OpenClaw | 行动 Harness | 消费级个人助理 | MIT | 住在你所有聊天 App 里的本地 Agent |
| 15 | Hermes Agent | 行动 Harness | 自进化个人助理 | MIT | "会成长的 Agent"——技能自动生成并自迭代 |
| 16 | Claude Code | 行动 Harness | 工业 IDE 范本 | 闭源(source-available) | 标杆级 Harness:六层架构 + 源码级分析 |
| 17 | DeepSeek Harness | 行动 Harness | 开发者工坊 | MIT | "一切皆插件"的开源 Agent 底座 |
1.1 选择决策树
Q1: 你想立刻"用上"一个 Agent,还是想"自己搭"一个?
├─ 立刻用 → 跳过到行动型 Harness 子树(Q4)
└─ 自己搭 → 继续
Q2: 控制流是否需要循环/状态/人工介入?
├─ 否(线性管道)→ 第 12 章 LangChain + 裸 API
└─ 是 → 继续
Q3: 是否需要多 Agent 角色分工?
├─ 否(单 Agent 有状态)→ 第 13 章 LangGraph
├─ 是 → 第 18 章 多 Agent 协作(含 CrewAI / AutoGen)
└─ 是,需要团队级通信 + 协议 → 第 19 章 Agent 通信协议(MCP/A2A/ANP)
Q4: 行动型 Harness 子树
├─ 我想让它住进聊天 App(WhatsApp/Telegram/Discord)→ 第 14 章 OpenClaw
├─ 我想让它"越用越懂我",自己写技能 → 第 15 章 Hermes Agent
├─ 我想要工业级 IDE 体验 + 一手可学的工程实现 → 第 16 章 Claude Code
└─ 我想要开源 + 模型无关 + 可换内核 + 插件化 → 第 17 章 DeepSeek Harness
1.2 选型维度对照表
| 维度 | LangChain | LangGraph | OpenClaw | Hermes | Claude Code | DeepSeek Harness |
|---|---|---|---|---|---|---|
| 核心范式 | Runnable 链 + 集成 | 有向图 + 状态 + 检查点 | 多渠道个人助理 | 闭环自进化 | 工业 IDE Harness | 一切皆插件 |
| 最擅长 | 快速接入多模型/多工具 | 复杂有状态 + 可恢复 + 人机协作 | "用户键在聊天框里" | 技能自动生成 + 自迭代 | 真实软件工程的 AI 编程 | 长期可控 + 模型无关 |
| 抽象重量 | 中 | 中 | 中(产品级) | 中(产品级) | 重(产品级) | 轻(框架级) |
| 可定制深度 | 高(代码级) | 高(代码级) | 中(Skill 级) | 中(Skill 级) | 低(配置级) | 极高(插件级) |
| 生产就绪度 | 高 | 高(含托管平台) | 高(社区驱动) | 高 | 高(商业) | 预览版(v0.1) |
| 学习曲线 | 中 | 中 | 低 | 中 | 低 | 中 |
| 许可 | MIT | MIT | MIT | MIT | source-available | MIT |
⚠️ 许可与维护以各仓库
LICENSE与main分支为准:开源项目迭代极快;任何"Star 数 / 安装量 / 下载量"等会随时间变化的数字,本书不引用——只引用可独立核验的事实(协议、协议文本、版本号、命令、文档站链接)。DeepSeek Harness 当前为 v0.1 开发者预览版,DeepSeek 官方明确提示未来会出现破坏兼容性的变更。
1.3 三种思考路径
按"先判需求、再选范式、最后看工程"的顺序:
路径 A:追求"用上"(行动型 Harness)
- 场景:个人 / 小团队想立刻拥有能替你干活的 Agent;不想自己写代码;接受"配置级"定制。
- 首选:OpenClaw(多渠道)/ Claude Code(编程 IDE)/ Hermes(自进化)/ DeepSeek Harness(开源 + 插件化)。
- 决策关键:看你的主战场是聊天 App、终端 IDE、VPS,还是"想要一个能长出新能力的底座"。
路径 B:追求"搭出来"(代码框架)
- 场景:中大型团队、产品需要可控可观测;想自己控制 Agent 的每一步。
- 首选:LangChain(编排)+ LangGraph(有状态控制流)。
- 决策关键:是否需要"复杂流程 + 人机协作 + 长期运行"——是则 LangGraph 占主,否则 LangChain 足矣。
路径 C:追求"造轮子"(自研)
- 场景:研究机构、定制化深度要求极高的产品、希望不被任何 Harness 锁定。
- 首选:阅读 6 章节里任何一个的"架构 / 借鉴点"小节,再结合第 8 章 Harness Engineering 与第 10 章 Agentic-RL,自己从零搭一个最小 Harness(参考本书仓库
reference-agent/教学底座)。
💡 实践建议:本书实战项目统一采用 LangChain + LangGraph 的组合(路径 B),因为它在"生态集成广度"与"复杂流程表达力"之间最均衡。但请记住——框架是手段,原理才是你真正带得走的东西。6 个行动型 Harness 案例(路径 A)会反复回到这个原则:原理上它们都是同一个最小 Agent + 工具 + 记忆 + 沙箱 + 权限的组合,只是接口形态不同。
二、好开源项目是怎么写的:从架构中偷师
选框架之前,更值得做的是直接读框架源码。顶级开源 Agent 项目在"如何组织一个 Agent 系统"这件事上,已经沉淀出高度一致的设计范式。下面用可核验的事实,拆解这一篇要重点研究的 4 个行动型 Harness——它们的内部组织方式,几乎就是第 8 章"Harness 六大工程支柱"的四种实例化。
2.1 跨项目共通的六种设计范式
| 范式 | 含义 | 在本部分体现的项目 | 对你自建系统的启示 |
|---|---|---|---|
| 事件流(Event Stream) | 所有"动作-观察"以带类型的事件流经中央总线,状态即事件日志 | Claude Code(QueryEngine) | 用不可变事件日志替代可变全局状态,天然支持回放/恢复 |
| 状态图 + 检查点(State Graph + Checkpoint) | 用图表达节点/边/状态,定期快照以支持暂停/恢复/时间旅行 | LangGraph | 复杂 Agent 的本质是状态机,先画状态图再写代码 |
| 代码即动作(Code-as-Action) | 让 LLM 直接输出可执行代码来调用工具,而非 JSON 工具字典 | DeepSeek Harness(PTC 模式) | 代码比结构化字典表达力更强、步骤更省 |
| 分层包结构(Layered Packages) | 核心协议层 / 编排层 / 集成层互相解耦、独立发版 | LangChain / DeepSeek Harness | 把"接口稳定性"和"实现多变性"分开 |
| 模型无关(Model-Agnostic) | 通过统一接入层屏蔽模型差异 | DeepSeek Harness / OpenClaw / Hermes | 永远不要让你的业务代码硬耦合某个厂商 API |
| 沙箱隔离(Sandboxing) | 工具/代码在隔离环境执行,危险动作需确认策略 | Claude Code / DeepSeek Harness / Hermes | 凡是执行外部代码/命令,默认隔离 + 最小权限 |
| 插件化元框架(Plugin Meta-Framework) | 所有能力都是插件,可换可增可减 | DeepSeek Harness(Cordis) / OpenClaw(Skill+Plugin)/ Hermes(Skill) | "换能力"的成本降到改配置 |
| 自进化技能(Self-Evolving Skills) | Agent 自己从执行轨迹提炼技能并迭代 | Hermes Agent | Agent 的"长期成长"靠的是这个,不是更大模型 |
表格中的 6 个范式是一个 Agent 想达到生产级所必须覆盖的"横切关注点"——也是你读后面任何一章后回头对照的清单。
2.2 把范式搬回你自己的系统
读 4 个行动型 Harness 时建议你把它们的架构画出来,并标出每个范式落在哪里:
- 定义一个统一的消息/事件协议(类比 Claude Code 的 QueryEngine / DeepSeek Harness 的事件总线),所有组件都说同一种语言;
- 把状态显式建模(类比 LangGraph 的
StateGraph+ checkpointer / Hermes 的三层记忆),而不是散落各处的变量; - 让模型输出"可执行的动作"(Claude Code 的工具调用、DeepSeek Harness 的 PTC 模式),并配一个沙箱执行器;
- 接入层与业务逻辑解耦(DeepSeek Harness 通过 Cordis 插件、OpenClaw/Hermes 通过 Skill),厂商锁定是技术债;
- 为长期记忆和人工介入预留接口(Hermes 的 Nudge Engine、OpenClaw 的多渠道确认),复杂 Agent 几乎一定需要。
2.3 自进化 vs 插件化:两条"如何扩展 Agent"的路线
Harness 的"如何扩展能力"问题,目前收敛为两种路线:
- 插件化路线(OpenClaw Skill / DeepSeek Harness 插件 / Claude Code Skills & MCP):能力由"外部开发者或用户"显式写好,运行时选择加载——简单、可控、可审查。
- 自进化路线(Hermes Self-Evolving Skills):能力由 Agent "自己"从经验中学,自动生成、迭代——强大但更难审查与对齐。
两条路线并不互斥:Hermes 的技能在生成后也会被纳入 Skill 目录,本质上是"自动 + 显式"的混合。读第 15 章时请把这个对比记在心里。
三、第三部分章节地图
| 章节 | 内容 | 核心收获 |
|---|---|---|
| 第12章 LangChain 深入实战 | 架构、Chain、Agent、LCEL、可观测性、生产化 | 掌握最流行的 Agent 编排框架 |
| 第13章 LangGraph | 图结构、状态管理、条件路由、人机协作 | 构建复杂有状态的 Agent |
| 第14章 OpenClaw | 多渠道接入、Skill 生态、消费品级 Harness | 让 Agent 住在聊天 App 里 |
| 第15章 Hermes Agent | 自进化技能、三层记忆、Nudge Engine | 理解"会成长的 Agent"工程实现 |
| 第16章 Claude Code 深度解析 | 六层架构、System Prompt、权限工程、Prompt Cache | 从工业级实现反推 Agent 系统设计 |
| 第17章 DeepSeek Harness | "一切皆插件"、Cordis 内核、四种运行模式 | 开源底座 + 模型无关 + 插件化工坊 |
读完这 6 章,你将拥有看清任何新 Harness的能力——任何新框架出现时,你能从它的协议、状态、记忆、沙箱、扩展机制 5 个维度快速判断它属于谱系哪一支、能解决什么、不能解决什么。
开始学习:第12章 LangChain 深入实战