(五)吴恩达、Anthropic都在提的“Agent循环”是什么? | 理解Observe→Think→Act基本循环

(五)吴恩达、Anthropic都在提的“Agent循环”是什么? | 理解Observe→Think→Act基本循环
摘要本文从吴恩达与 Anthropic 共同强调的 Agent 循环出发围绕 Observe→Think→Act 基本循环展开白话级拆解。文章先给出极简定义与类比再逐一剖析观察、思考、行动三个阶段的技术要点和常见误区通过联网问答、代码调试、多 Agent 协作三个实战场景演示循环运转全貌并梳理 ReAct、Reflexion 等高级模式与 LangGraph、AutoGPT 的映射关系最后提供循环完整性检查清单帮读者一把抓住所有 Agent 行为的底层密码。引言一个循环揭开所有Agent的行为密码如果你看过吴恩达Andrew Ng的Agent课程或者使用过Anthropic的Claude你一定会反复看到一个概念——Agent循环。吴恩达在《Building Agentic Systems》中不断强调观察-思考-行动Observe-Think-Act循环是Agent区别于普通LLM调用的根本标志而Anthropic为Claude设计的工具使用tool use循环也正是这样一个标准的三段式节奏。可以说理解这个循环就是拿到了理解所有Agent行为的万能钥匙。Agent的循环就像一个人工作时的节奏先用眼睛看Observe大脑思考Think手再行动Act然后看结果再思考、再行动……如此往复直到任务完成。本文将围绕Observe→Think→Act这个基本循环从第一性原理出发为你逐层拆解其核心机制并通过三个经典场景演示它如何“转起来”最后延伸到LangGraph、AutoGPT等真实框架中的变体。读完你会发现原来所有炫酷的Agent架构都能在这个简单循环中找到原型。一、极简定义Observe→Think→ActAgent的心跳Agent循环的最简骨架可以用一行伪代码概括while not done: observe() think() act()这背后是一个持续运转的反馈闭环可以用下面这张文字循环图来描述Observe观察 → Think思考 → Act行动↑ ← ← ← 新状态/反馈 ← ← ← ↓Agent首先通过观察获取外部信息然后思考决定下一步要做什么最后执行行动。行动会改变外部环境或产生新的反馈这些反馈又成为下一次观察的输入循环往复。从“人做事”的视角理解这三个阶段会更直观Observe观察就像你拿起手机看到一条微信消息或者打开网页看到搜索结果。Think思考你大脑开始分析这条消息的意思回忆上下文决定是要回复“好的”还是需要查资料。Act行动手指打字回复或者点击链接、截图分享。下面用一个总览表格来概括每个阶段的输入、处理与输出阶段输入处理输出Observe用户消息、工具返回值、环境状态、人类反馈信息收集与解析、状态跟踪结构化的观察信息如搜索结果文本、报错信息Think历史对话、当前观察、任务目标、系统提示推理CoT、决策ReAct、反思Reflection决定下一步动作调用工具、生成回答、请求帮助等Act思考输出的指令工具名参数执行工具调用、代码运行、生成最终回答行动结果如API返回、代码执行输出、文本回复二、逐一拆解三步循环中的关键细节2.1 Observe观察打开Agent的“感官”直击本质的一句话观察就是Agent从外部世界获取一切可感知信息的阶段没有观察Agent就变成了“瞎子”循环无法启动。为何缺一不可设想一个联网问答Agent如果它只能调用搜索工具却不去读取搜索返回的标题和摘要那么它连搜索的意义都丧失了。观察是闭环的入口一旦被省略后续的思考和行动都会建立在空白或过时信息上彻底“断链”。观察的来源远比想象中丰富用户原始消息最直接的输入。工具返回值如搜索引擎返回的JSON、代码沙箱的stdout/stderr、数据库查询结果。环境状态比如游戏Agent当前坐标、库存数量等。人类反馈人类对之前动作的确认或纠正Human-in-the-loop。Agent自身之前的行动结果如修改代码后运行得到的报错信息。技术实现手段通常是在程序中解析API响应、捕获异常、拼接上下文然后以结构化文本或ChatML格式传递给LLM。吴恩达在课程中特别强调Agent必须能够“感知环境”他把观察能力列为Agent设计的基石。常见误区将观察简单等同于“拿到一个JSON”却忽略了需要从中提取关键信息并做好预处理导致LLM被大量噪音淹没。2.2 Think思考推理与决策的“黑箱”透明化直击本质的一句话思考是Agent基于当前观察和历史信息决定“下一步该做什么”的推理过程是整个循环的智能核心。为何缺一不可如果没有思考Agent就会退化成机械的“输入-输出”映射面对稍微复杂一点的任务如多步推理、工具选择就会乱来。没有思考的Observe→Act其实是硬编码的规则引擎无法处理开放域问题。思考的技术手段从简单到复杂业界已经形成了一套清晰的演化路径CoTChain-of-Thought让模型在回答前先输出推理步骤提升多步推理准确率。ReActReasoning Acting将Thought、Action、Observation交织起来模型每走一步都先Think再Act再根据Observation调整下一步Thought。这是很多Agent框架的默认“思考范式”。Reflection反思在生成答案或执行动作后让模型再“回头看”一遍自己的输出自我批评并修正代表工作如Reflexion。Planning规划在开始行动前先生成一个全局计划再按计划逐步执行如Plan-and-Solve。Anthropic在Claude的工具使用文档中明确展示了模型的思考过程Claude会先产生一段文字推理在tool_use块之前描述它为什么选择某个工具、参数如何构造。这就是Think阶段的具体表现证明了思考不是空谈而是被显式设计在产品逻辑中的。常见误区误以为思考只是LLM内部的黑盒实际上可以通过精心设计的Prompt要求模型结构化输出思考步骤让它透明可控。2.3 Act行动将思想转化为改变直击本质的一句话行动是将思考产生的决策“落地”执行具体工具、函数或生成最终回答是Agent产生价值的唯一出口。为何缺一不可只观察只思考却不行动就成了空想家永远解决不了实际问题。同时行动还承担着生成反馈的职责——如果没有行动下一次观察就没有新内容循环就会停滞。常见的行动类型工具调用搜索、计算器、代码解释器、天气API等。代码执行在沙箱中运行Python/JavaScript代码并捕获输出。生成最终回答当Agent判断任务已完成将结果以自然语言返回给用户。请求人类帮助当遇到无法处理的情况时暂停并等待人工输入。技术实现手段主流做法是由LLM输出特定格式的指令如function call、tool_use block宿主程序解析后执行然后将结果转为文本重新注入下一次观察。吴恩达将这一模式称为“tool-use loop”正是Observe→Think→Act的工程化实现。常见误区把所有Act都简单理解为“回一个消息”忽略了行动本身的质量如参数正确性、异常处理决定了循环能否健康延续。三、循环实战从三个经典场景看循环如何转起来下面通过三个场景用“循环泳道图”式文字演示每一步的输入、思考与输出让你直观感受O-T-A的真实运转。场景1联网问答信息检索任务回答“2024年全球GDP增长预测是多少”循环演示①Observe用户输入问题系统检查历史对话为空。②ThinkAgent判断需要最新数据决定调用搜索工具构造查询词“2024 global GDP growth forecast”。③Act调用bing_search(query2024 global GDP growth forecast)得到一段包含多个链接和摘要的返回文本。④Observe新循环读取搜索返回的前三条摘要发现IMF预测为3.2%世界银行预测为2.6%。⑤Think两条信息基本一致可以直接给出综合回答判断不需要再次搜索。⑥Act生成最终回复“根据IMF和世界银行的最新预测2024年全球GDP增长约在2.6%3.2%之间。”可以看到Observe阶段从空到有再到获取搜索结果Think阶段驱动了工具选择和答案提取整个循环转了两次半两次搜索相关观察一次最终回答。场景2代码生成与调试任务写一个Python函数计算斐波那契数列但故意使用递归且无缓存然后让Agent优化。循环演示①Observe用户要求优化一个已有的递归斐波那契函数并提供了报错截图递归深度超限。②ThinkAgent分析代码发现是标准递归无缓存时间复杂度O(2^n)且容易栈溢出决定改用迭代法。③Act调用代码编辑器将原递归函数替换为迭代版本并生成一个测试调用。④Observe运行测试返回结果正确无报错。⑤Think测试通过任务完成。⑥Act返回成功消息及优化后代码。这个场景中Observe的关键是“报错信息”若Agent只看代码不看报错就很难定位栈溢出问题。Think阶段使用了因果推理递归导致栈溢出Act精准执行了代码替换。场景3多Agent协作宏观视角任务一个主管Agent协调两个子Agent一个负责数据查询一个负责数据分析。循环演示简化① 主管AgentObserve用户需求“分析销售数据并生成报告”。② 主管AgentThink分解任务先查数据再分析计划调用子Agent1。③ 主管AgentAct发送消息给子Agent1“请查询近12个月销量”。④ 子Agent1内部启动自己的O-T-A循环Observe指令→Think决定调SQL→Act查询数据库→得到结果再Act将数据返回主管。⑤ 主管AgentObserve子Agent1返回的数据Think数据已齐调用子Agent2分析。⑥ 主管AgentAct发送消息给子Agent2“请基于此数据生成趋势图和分析文案”子Agent2内部同样跑自己的O-T-A循环。⑦ 最终主管Agent收集结果整合成报告Act返回用户。这揭示了多Agent系统的本质每个Agent内部都在跑自己的Observe→Think→Act循环而Agent之间的消息传递构成了一个更高层的、跨Agent的“通信循环”。四、循环的延伸从基础循环到高级Agent模式Observe→Think→Act不是僵化的三段式而是一个可灵活增强的元模式。许多著名的Agent范式都是在这个基本循环上扩充、分层或内嵌而来。下面用一个表格来快速对比模式与O-T-A的关系核心增强代表性框架ReAct就是O-T-A的同步交织Thought→Action→Observation→Thought…将思考与行动交错并显式标注LangChain ReAct Agent、OpenAI FunctionsPlan-Act-Observe在Think阶段前置一个全局规划步骤再进入O-T-A先规划后执行减少盲目尝试Plan-and-Solve、BabyAGIReflexion在循环尾部增加一个反思步骤对历史循环进行评价并更新记忆长期记忆和自我改进Reflexion论文、AutoGPT部分实现分层循环Hierarchical高层Agent的Task分解为子任务每个子任务启动子Agent自己的O-T-A循环递归分解适合复杂规划AutoGPT、MetaGPT在实际工程中这些模式是如何“兑现”为代码的呢我们以两个主流框架为例LangGraph将Agent行为建模为有向图节点可能是“Think节点”调用LLM或“Act节点”执行工具边则承载条件判断。但无论图怎么画消息在节点间流转的过程本质上就是一轮又一轮的Observe→Think→Act。图结构只是为循环提供了显式的编排和条件分支。AutoGPT的递归循环早期AutoGPT的核心循环就是一个while循环不断地从短期记忆读取上下文Observe调用LLM生成下一步命令Think然后执行命令如google_search、write_fileAct再把结果写入记忆。这种递归的Observe→Think→Act正是其自主性的来源。所以无论你用的是高度抽象的LangGraph还是简单粗暴的Python while True底层的逻辑从未改变。五、写在最后理解循环你就抓住了Agent的设计要义读到这里你已经掌握了Agent设计的“第一性原理”。当你下一次构建自己的Agent时可以用下面这份循环完整性检查清单来审视你的设计Observe是否全面你的Agent能否获取所有必要的上下文用户消息、工具结果、环境状态、历史记录Think是否充分Agent是否有明确的推理步骤有没有可能陷入死循环或过早结束Act是否可靠工具调用的参数是否正确执行失败时是否有备选方案循环是否闭合行动结果是否一定会被纳入下一次观察是否存在“只行动不观察”的断点何时停止循环的终止条件是否明确能否避免无限循环浪费资源答案或许复杂但起点永远简单——Observe → Think → Act。希望这篇白话拆解能让你有一种“一通百通”的透彻感。如果觉得有用欢迎点赞、收藏并在评论区分享你在设计Agent时遇到的循环趣事或踩坑经历我们一起让智能体真正“活”起来。