Agent Loop:AI 是怎么从“一句一答“进化成“自己干活“的
一个一句一答解决不了的问题你跟 ChatGPT、DeepSeek 聊天的时候交互模式是这样的你说一句 → 它回一句 → 结束一问一答单次往返。这叫Single-pass单轮响应。绝大多数聊天场景下够用了。你问量子纠缠是什么它给你解释清楚完事儿。但有些事情一个来回搞不定。比如你说帮我查一下最近三个月 A 股涨幅最大的 10 只股票分析它们的行业分布然后做一张可视化图表。这里面有搜索、有筛选、有数据处理、有图表生成。中间任何一步的结果都会影响下一步怎么做出了错还得回头调整。单轮响应干不了这事。Agent Loop 就是为了解决这个问题而存在的。Agent Loop 是什么一句话Agent Loop 是让 AI 在循环里反复推理 → 调工具 → 看结果直到任务完成或触发停止条件的执行循环。换成生活比喻普通聊天是问路路人指一下就走Agent Loop 是你请了个私人助理他接了任务后自己一趟趟跑腿——查资料、打电话、算账、画图中间发现不对还回头重来最后把成品交到你手上。听起来抽象拆成伪代码就六行while not done:response call_llm(messages) # LLM 想一步if response has tool_calls: # 它决定调工具results execute_tools(...) # 执行工具messages.append(results) # 结果塞回上下文else:done True # 不调了输出答案return response就是一个 while 循环。LLM 每跑一轮要么决定调用某个工具继续干活要么判断任务完成、输出最终结果。循环会一直转直到它认为够了或者触发了你设置的停止条件比如最大迭代次数、token 预算。Anthropic 的工程团队有个说法挺到位的Agent 通常就是 LLM 在一个循环里基于环境反馈使用工具。每一轮循环里AI 在做五件事把循环拆开每轮内部跑五个阶段感知Perceive接收输入——用户的指令、上一轮工具的结果、或者一条报错全部塞进上下文。推理ReasonLLM 想清楚现在什么状况、目标达成了吗、下一步干嘛。这一步是整个循环的大脑。规划Plan复杂任务先拆成子步骤、排优先级简单任务直接跳到执行。行动Act真正动手——调 API、查数据库、跑代码。这些动作都通过工具完成工具定义了名称、描述和参数 schema。观察Observe检查结果——成功了吗数据对吗够了吗没完成就把结果追加进上下文回到第 1 步继续转。五个阶段不断循环。这就是 Agent Loop。用一个例子走一遍任务找 2026 年引用量最高的 Agent Memory 论文总结核心发现。第 1 轮推理得先搜论文 → 调学术搜索 API → 拿到 15 篇论文和引用数。第 2 轮推理引用最高那篇 340 次得拿全文 → 调文档检索工具 → 拿到摘要和核心章节。第 3 轮推理信息够了可以总结了 → 不调工具直接生成 → 输出答案退出循环。三轮、三次工具调用、一个完整答案。用单轮响应根本没法做——你不可能在一次 LLM 调用里同时搜索、检索、总结。三种主流干法Agent Loop 是统称具体到LLM 在循环里怎么思考和行动业界演化出了几条路子。ReAct边想边做全称 Reasoning Acting2022 年普林斯顿和谷歌联合提出。机制很直觉每一步先想Thought再做Action然后看结果Observation。想完做做完看看完再想。优点灵活每一步都可以根据上一步的结果调整策略碰到意外能随时应变。缺点每轮都调 LLM 做推理token 消耗高延迟也高。适合探索性任务、路径不确定、需要随时纠偏的场景。Plan-and-Execute先想好再做把规划和执行彻底拆开先让一个 Planner 生成完整的任务计划再让一个 Executor 按计划逐步走走完所有步骤任务结束。优点LLM 调用次数少规划只做一次执行阶段每步不需要重新推理。缺点计划本身有问题、或者执行中环境变了整个流程容易跑偏。适合步骤清晰、环境稳定、对成本敏感的任务。Reflexion做完回头看在 ReAct 的基础上加了一层反思。三个组件协作Actor执行者按 Thought → Action → Observation 循环干活Evaluator评估器做完后打分Self-Reflection反思器复盘哪一步判断错了、为什么失败、下次怎么避免把结论存进情景记忆。下次遇到类似任务Agent 从记忆里取出之前的反思笔记作为上下文的一部分送给 LLM。相当于给 Agent 配了一本错题本。优点能从失败中学习不改模型权重、只靠自然语言反馈就能让 Agent 持续进步。缺点每多一次尝试就多一轮完整循环加上反思本身也是一次 LLM 调用token 消耗是三种里最高的而且它依赖明确的成功/失败信号。适合需要迭代提升、有清晰评估标准的任务。三种怎么选维度ReActPlan-and-ExecuteReflexion决策方式每步都推理先规划后执行执行后反思改进灵活性高低中Token 消耗高低最高适合场景路径不确定步骤明确需要迭代提升实际工程里三种经常混着用Plan-and-Execute 做顶层框架每个子步骤内部用 ReAct 处理不确定性整体再加 Reflexion 做复盘。上生产之前先想清楚两件事成本Agent 每转一圈就是一次 LLM 调用。它的 token 消耗大约是普通聊天的数倍复杂任务上能到几十倍一个不受约束的 Agent单次任务成本能到几美元。控成本的手段能用 Plan-and-Execute 就别用 ReAct——规划一次比每步推理便宜得多给每个 Agent 设 token 预算缓存工具调用结果Prompt Cache 可以砍掉大量重复输入成本。可观测性普通聊天就一个来回出了问题一目了然。Agent 可能跑了 15 轮循环调了 8 个工具中间还有分支判断。结果不对的时候你得知道第几轮开始跑偏的哪个工具返回了错误数据LLM 的推理在哪一步出了岔子没有结构化日志和追踪Agent 就是黑盒出了问题无从下手。生产环境需要每一轮的推理过程、工具选择、参数、返回值全部记录支持按时间线回放连续多轮没进展时自动告警。最容易被忽视的一环停止条件没有停止条件的 Agent Loop 是危险的。一个真实案例某团队部署的网页爬虫 Agent目标网站改了页面结构爬虫工具开始返回空数据而 prompt 写着重试直到拿到数据——于是它 5 分钟内循环了 400 次烧掉几千个 token直到撞上平台速率限制才停下来。如果设了最大迭代次数哪怕只是 3 次这事根本不会发生。生产环境推荐的停止条件最大迭代次数、token/成本预算、无进展检测、目标达成检查。这几个条件叠着用互为保底。它和传统编程的本质区别初次接触 Agent Loop 的人经常会问这跟我写个 for 循环调 API 有啥区别区别在控制权。传统编程里循环做什么、怎么做、何时停全部由你的代码决定逻辑是硬编码的。Agent Loop 里每一轮做什么、调哪个工具、传什么参数是LLM 在运行时动态决定的。你写的代码只提供循环框架和工具集具体走哪条路是 Agent 自己想出来的。所以 Agent 能处理开放性任务——你不需要提前写好所有的 if-else 分支。代价是 Agent 也会出错——毕竟决策权交给了一个概率模型。思考与总结1. Agent 的本质是把程序的控制流从确定性代码转移到了概率模型上。这既是它强大的地方——能应对开放式任务也是它危险的地方——你没法用单元测试保证它每一步都对。所以我们才需要日志、预算、停止条件这些工程护栏。很多人做 Agent 只盯着 prompt 打磨其实真正决定它能不能上生产的是这个循环骨架搭得结不结实。2. 最反直觉的一点越聪明的 Agent 越贵工程上反而要用笨办法省钱。ReAct 每步都推理、Reflexion 还要反思效果是好但 token 消耗成倍上涨。于是现实里的最优解往往是反着来——先规划好、少推理用更机械的方式把成本压下来。这跟用更聪明的模型的直觉正好相反。3. 停止条件才是 Agent 设计里最被低估的细节。什么时候停下来比怎么干更关键。一个不会停的 Agent再聪明也是事故现场。这让我联想到评估一个 Agent 系统成不成熟别问它能干什么先问它干不完的时候会不会体面地停下来。4. Agent 和 AI 的本质区别AI 负责想Agent 负责做成。大模型AI本质上是一个知识 语言引擎你问它答被动响应一次一问一答能力边界就停在输出一段内容。Agent 则是在 AI 之上加了两样东西——手工具和眼睛环境反馈再套上一个循环。它不再是回答一个问题而是搞定一件事自己拆目标、定计划、调工具、看结果错了回头改直到完成。所以可以这么记AI 负责想Agent 负责做成。没有 AIAgent 就没有大脑但光有 AI、不给它循环和工具它永远只是个会说话的聊天机器人。