跳到主要内容

The Complete LangGraph Blueprint — 本课题摘录

读了哪几节: 第 8 章的 ReAct 四小节、第 9 章的 9.1 与 9.2。 全书八十多节,其余本轮没读。

这本书例子多、原理少,读的这几节几乎没有代码。它对本课题只有两条真正的贡献,下面只写这两条。

它对本课题回答了什么

决定四的来龙去脉:ReAct 补的是哪两个洞

历史上的系统要么专注推理(链式思考那一路),要么专注行动(强化学习那一路)。

两者单独都有效,但任务需要"又想又做"时都失灵:

路线缺什么
纯推理容易编(生成幻觉)
纯行动缺上下文与规划

ReAct 的贡献是在两者之间建了一条反馈回路。 (依据:书 · The Complete LangGraph Blueprint: Build 50+ AI Agents for Business Success §ReAct —— 历史上 AI 系统要么专注推理(如思维链)要么专注行动(如强化学习),纯推理路线常产生幻觉、纯行动路线缺上下文与规划;ReAct 的贡献是在推理(想法)与行动(执行并收集信息)之间建立反馈回路)

这段历史值得进讲义的开头,因为它回答了一个基本问题:为什么循环必须是"想—做—看"三步,而不是"想完再做"或"直接做"。

前面所有实现都默认了这个三步循环,没有一家解释它为什么长这样。这一份解释了。

而且它顺带解释了一件我们已经撞上多次的事: hands-on 那本书里"汇率是模型自己编的"、cline 的打转、kun 的复读—— 这些全是"纯推理那一路的老毛病"在有工具的系统里的残留。工具没有覆盖到的地方,模型就会编。

自己写一个 ReAct agent 只需要三样东西

要件干什么
系统提示定目标与行为
工具一组可调的函数、接口或资源
图结构每个节点或推理、或行动、或调工具,一直转到不再需要调工具为止

(依据:书 · The Complete LangGraph Blueprint: Build 50+ AI Agents for Business Success §LangGraph —— 自定义 ReAct agent 只需要三样东西——system prompt(定高层目标与行为)、tools、以及一个图结构(每个节点或推理或行动或调工具,一直循环到不再需要调工具为止))

注意第三行的退出条件跟前面所有实现一致:不再需要调工具就停。 而"图结构"这个说法把循环换了一种画法——不是 while,是一张有回边的图。

两种画法等价,但图这种画法有一个副产品:每一步都是一个有名字的节点,于是"停在某一步"变成一件自然的事。 这直接引出下面那一条。

决定四:人机协同被拆成三个正交概念 —— 这是它最值钱的一条

概念是什么
断点有意设置的暂停点,agent 停在这儿等人看过、批准或调整,再往下走
检查点存档点,捕获当前状态;失败或中断后可以从这里续,不必从头再来
状态编辑暂停期间人可以直接改工作流里的数据与参数,改变 agent 接下来的走向

(依据:书 · The Complete LangGraph Blueprint: Build 50+ AI Agents for Business Success §9.2 —— 人机协同被拆成三个概念——breakpoints(有意的暂停点,等人反馈才继续)、checkpoints(存档点,失败或需人介入时可从这里恢复而不必从头开始)、state editing(暂停期间人可以动态修改工作流的输入数据、参数或走向))

这三条正交,而且前面各家分别只实现了其中一两条:

  • agentscope:断点 + 状态编辑(用户批准时"允许修改工具名和入参");
  • letta-code:断点 + 检查点(状态在服务端,关掉重开还在);
  • cherry-studio / goose:只有断点(审批)。

三个都齐的很少见。而"检查点"这一条是本课题"循环状态存在哪"那一问的答案: 存的不是"跑到第几行",是"这一步之前的状态"。

它给的"需要人来把关"的三类场景也很具体:金额异常的资金操作、要对外发布的内容、法律文书。

共同点是:做错了不能撤。 这比"危险操作"更准确——判据是可逆性,不是危险性。

五条最佳实践里,有两条值得留意

实践说的是
推理步与行动步要分开好让人能看清它在想什么、在做什么
要有错误处理与反思能识别并从错误中恢复,或者在不确定时主动问

第二条后半句"在不确定时主动问"在前面六十份材料里几乎没出现过。 各家都在做"错了怎么救",很少有人做"不确定就先别做"。 这是本课题第三圈("人怎么看见与插手")的一个空白点,值得记下来。

它没回答什么

  • 循环的内部机制——怎么解析工具调用、结果怎么回填、并发怎么处理,都没讲。
  • 上下文长度与压缩——只说了"要外挂记忆",没讲历史长了怎么办。
  • 其余七十多节——本轮没读。

坑与代价

  • 它是围绕一个特定框架写的,概念名词跟那个框架绑得很紧。剥掉框架名之后,剩下的原则不多。
  • 读的这几节几乎没有代码。 真正的实现散在各章的例子里,而例子是按业务场景组织的,不是按机制组织的。
  • "图"这种画法把循环画成了静态结构,这会带来一个盲区:图画得出"能走哪些路",画不出"走了几圈"。

    判断(无锚): 轮数上限、连错熔断这类护栏在图这种表示里没有自然的位置——它们不属于任何一个节点。 如果错,会错在: 如果框架把这些护栏做进了执行器(而不是图里),那图不表达它们是正确的分工,不是盲区。