Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第三部分:框架实战篇

🛠️ "框架不会让你的 Agent 变聪明,但能让你把聪明更快地落在产品里。选错框架的代价,不是重写代码,而是被迫接受一套不属于你问题的心智模型。"


本部分导读:我们到底在"框架"里买到了什么

在前面两部分,你靠 Prompt + 工具调用 + 上下文工程 从零手搓过 Agent——自己管消息循环、自己解析工具输出、自己维护状态。这让你获得了完全的控制力,也让你真切体会到了"样板代码"的重量:一个能跑的最小 Agent,光是把工具 Schema、执行循环、错误处理、重试、流式输出拼起来,就足以淹没业务逻辑。

框架存在的全部意义,就是把这些反复出现的"工程横切关注点"收敛成可复用的抽象。

但 2026 年的"框架"已经分化成两条路线:

路线代表抽象对象适合谁
代码框架LangChain / LangGraph把 Agent 拆成可调的库,让你写代码时组装写代码、交付产品、追求灵活
行动型 HarnessOpenClaw / 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 字):

章项目路线类型许可一句话定位
12LangChain代码框架通用编排框架MIT生态最广的 Agent 装配库:链、工具、Agent、LCEL
13LangGraph代码框架有状态图框架MIT复杂流程:状态图 + 检查点 + Human-in-the-Loop
14OpenClaw行动 Harness消费级个人助理MIT住在你所有聊天 App 里的本地 Agent
15Hermes Agent行动 Harness自进化个人助理MIT"会成长的 Agent"——技能自动生成并自迭代
16Claude Code行动 Harness工业 IDE 范本闭源(source-available)标杆级 Harness:六层架构 + 源码级分析
17DeepSeek 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 选型维度对照表

维度LangChainLangGraphOpenClawHermesClaude CodeDeepSeek Harness
核心范式Runnable 链 + 集成有向图 + 状态 + 检查点多渠道个人助理闭环自进化工业 IDE Harness一切皆插件
最擅长快速接入多模型/多工具复杂有状态 + 可恢复 + 人机协作"用户键在聊天框里"技能自动生成 + 自迭代真实软件工程的 AI 编程长期可控 + 模型无关
抽象重量中中中(产品级)中(产品级)重(产品级)轻(框架级)
可定制深度高(代码级)高(代码级)中(Skill 级)中(Skill 级)低(配置级)极高(插件级)
生产就绪度高高(含托管平台)高(社区驱动)高高(商业)预览版(v0.1)
学习曲线中中低中低中
许可MITMITMITMITsource-availableMIT

⚠️ 许可与维护以各仓库 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 AgentAgent 的"长期成长"靠的是这个,不是更大模型

表格中的 6 个范式是一个 Agent 想达到生产级所必须覆盖的"横切关注点"——也是你读后面任何一章后回头对照的清单。

2.2 把范式搬回你自己的系统

读 4 个行动型 Harness 时建议你把它们的架构画出来,并标出每个范式落在哪里:

  1. 定义一个统一的消息/事件协议(类比 Claude Code 的 QueryEngine / DeepSeek Harness 的事件总线),所有组件都说同一种语言;
  2. 把状态显式建模(类比 LangGraph 的 StateGraph + checkpointer / Hermes 的三层记忆),而不是散落各处的变量;
  3. 让模型输出"可执行的动作"(Claude Code 的工具调用、DeepSeek Harness 的 PTC 模式),并配一个沙箱执行器;
  4. 接入层与业务逻辑解耦(DeepSeek Harness 通过 Cordis 插件、OpenClaw/Hermes 通过 Skill),厂商锁定是技术债;
  5. 为长期记忆和人工介入预留接口(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 深入实战