1. 题目分析
Agent Loop 是 Agent 持续推进任务的执行循环:根据当前目标和已有信息决定下一步,必要时调用工具,再利用返回的结果更新状态,直到满足完成条件或进入其他合法退出状态。它把一次模型生成连接成可持续的任务执行过程,也因此需要回答“为什么还要继续”和“凭什么可以结束”。
生产环境不能只用“模型返回了工具调用就执行,否则退出”作为完整控制逻辑。模型可能再次提出没有增量的操作,也可能把工具的“已受理”误认为业务已完成;有些任务还需要等待用户补充信息、审批或异步结果。这些情况对应不同的状态,不能都交给一条循环条件处理。
模型负责提出下一步,运行时负责校验动作、记录事实,并依据完成条件、权限和预算约束状态迁移。要明确两者如何配合,可以从一轮执行的完整流程入手,再讨论继续推理、调用工具、等待和结束各自需要什么依据。
1.1 执行闭环
先把一项任务从头到尾走通,Loop 中各个步骤的作用才容易理解。以一个示意任务为例:读取工单 T100,依据值班规则转派给正确团队,再说明处理结果。这里的目标不是生成一句“已转派”,而是工单确实进入目标团队,并且交付的说明与业务结果一致。
任务刚进入系统时,Agent 只有用户要求,还不知道工单内容与当前归属。运行时先建立任务记录,绑定经过认证的用户、租户、允许的操作范围和执行预算,再把当前目标与可用查询工具交给模型。模型发现缺少工单事实,提出查询调用;运行时校验后执行,并把返回的工单内容、版本与归属记入任务状态。
下一轮的输入因此发生了变化:工单已查到,剩下的问题是根据值班规则选择团队。规则齐备时,可以分析并提出转派;规则缺失时,需要检索相应规则。转派执行后,还要确认结果,再整理说明。每一轮都在减少尚未解决的问题,而不是把最初那句话反复发送给模型。
上下文、决策、校验、执行与状态更新形成受控循环
将这条过程抽出来,就是读取当前状态、组装上下文、生成候选动作、校验并执行、记录观测、更新状态,再检查是否继续。如果进入等待或已经满足退出条件,本次调度就不再启动下一轮。任务初始化发生在入口,循环中的工作则围绕已有任务状态推进。
这里有两个不同的判断者。模型根据语义与证据判断下一步做什么;运行时检查这个动作是否允许、结果是否可信、任务能否继续。模型给出的计划可以调整,权限和预算却不会因为计划变化而自动放宽。要让这种配合成立,首先需要把“当前到底完成了什么”保存清楚。
1.2 任务状态
如果只保存聊天记录,运行时就很难回答上面的问题。模型可能在转派之前生成过“准备转给数据库团队”,后来又总结成“已经转派”。两句话都在消息列表里,但它们都不是工单系统的成功回执。下一轮如果只相信摘要,就可能跳过实际操作,或者重复执行一次已经成功的转派。
因此,任务状态需要把目标、已确认事实和待办分开。对 T100 来说,目标记录转派规则和交付要求;事实记录查询到的工单版本、当前归属及结果来源;待办说明还需要查询规则、执行转派,还是核验转派结果。任务编号将这些信息关联起来,操作结果由可信回执或查询更新,不能由模型一句“完成”直接改写。
模型也不必每轮读取整个状态库。第一次只需要目标与查询工具;工单和规则到齐后,下一轮应当看到相关事实及转派能力;转派成功后,再提供结果证据供它生成说明。上下文是当前决策所需信息的选取,任务状态则保存完整的执行依据。这既减少冗余,也避免让无关历史干扰当前动作。
持久化任务状态按需投影为上下文,权限与预算仍由运行时控制
实现时,大段日志可以保存为文件引用,模型只接收相关片段,但关键目标、尚未确认的操作和完成条件不能因摘要而丢失。即使模型上下文省略了授权细节,运行时仍会独立检查;检索内容中出现“忽略权限”等文字,也不能改变任务的真实权限。
状态更新还要避免互相覆盖。比如工具回调刚写入“转派成功”,一个基于旧状态生成的模型候选又要求再次转派,运行时就应重新校验它是否仍有必要。可以通过单一有效执行者或状态版本检查组织更新。这里保留版本的目的,是让动作与它依据的事实对应起来,而不是无条件执行已经过时的决定。
状态明确之后,“继续思考、调用工具还是结束”就不再是三个孤立的选项,而是对当前尚缺什么的判断。
1.3 动作选择
仍以 T100 为例。工单和规则已经齐全,但归属需要比较判断时,模型可以继续分析;如果缺少最新值班表,就应调用查询工具;如果缺的是用户没有给出的必要选择,就应提出澄清并等待。三者的区别在于,缺口分别来自尚未完成的分析、尚未获取的外部事实,以及只能由用户补充的决定。
这也解释了“继续思考”的边界。已有材料足够,只差比较、核对或组织答案,可以再做一轮有明确目标的处理;材料里根本没有当前工单状态,多写几段推理也不会凭空得到这个事实。工程上应记录本轮准备补足的缺口,再用结果判断是否获得了增量,而不能把消息变长当作任务有进展。
模型如何表达选择,需要通过协议接入。工具调用通常有专门的内容类型,普通文本则可能是澄清问题,也可能是最终答案候选。适配层据此转换成内部动作,不靠搜索回复里的“完成”两个字分支。这些内部动作由应用定义,并非所有模型都有统一的“思考、等待、完成”字段;图中的mode、tool和evidence也是设计示意。
例如,Claude 的tool_use表示请求使用工具,end_turn表示本轮生成自然结束,max_tokens表示生成达到输出上限。这些信号描述模型响应,不直接裁定业务任务的终态。半截工具参数不能被执行,自然结束的文本也仍需判断它是在请求补充信息还是交付结果。Claude 停止原因说明
候选动作经过运行时校验,分别进入推理、工具、完成校验或等待分支
运行时接到候选动作后,先检查取消、权限和剩余预算等硬条件,再检查当前状态能否支持该动作。例如转派还在执行中,就不应允许模型另开一次相同转派;已经缺少权限,也不能靠追加推理获得授权。协议负责让动作可识别,状态与规则负责决定动作能否落地。
并不是所有 Agent 都需要一个独立的“思考节点”。分析可以发生在一次模型调用内部,外部只记录必要的决策摘要和证据引用,不需要获取隐藏思维链。真正需要控制的是是否追加一次调用,以及这次调用预期解决什么。选择工具之后,下一步则是保证执行反馈能够真实地改变任务状态。
1.4 工具闭环
假设模型根据工单和规则提出转派到数据库团队。调用前,运行时先检查工单编号、目标团队与参数格式,再核对当前用户对 T100 是否有操作权限。如果这类转派需要审批,就先等待审批,而不是已经调用接口后再补授权。格式正确只说明参数能解析,不代表业务上允许执行。
校验通过后,执行层保存这次业务操作的记录,再发起调用。图中的 C7、O9、J3 分别是示意的调用关联号、业务操作号和异步作业号:C7 用于把结果对应回模型提出的调用,O9 用于追踪这次转派意图,J3 则由下游返回,用来查询已经受理的作业。三个编号是在这条执行链上各司其职,不应混作同一种身份。
异步工具的已受理回执先进入等待,核验完成结果后再反馈下一轮
如果接口直接确认转派成功,执行层保存回执与工单新状态,再按模型协议将结果关联回原调用。如果接口只返回“已受理,作业号 J3”,当前只能记为待完成:请求成功送达了,但转派结果还没有确认。下一步应跟踪 J3,而不是告诉模型“转派成功”,更不是再次提交转派请求。
超时则比“已受理”更不确定。对方可能没收到,也可能已经完成、只是回包丢失。因此,执行层保留 O9 及未知状态,通过查询或符合下游幂等契约的恢复方式核对结果。单独保存一个本地操作号并不能约束第三方;没有可靠去重或查询能力时,应停止盲目重发,交给受控核对流程。
失败信息也要能指导下一步。目标团队不存在,是需要修正参数;明确的权限拒绝,是不能继续该操作;结果未知,则需要核对业务事实。若三者都被压成“工具失败”,模型就只能猜测该重试还是改计划。反馈中应保留错误类别、已确认状态与必要证据,再由状态更新决定下一步动作。
一次调用至此才形成闭环:提议经过校验,执行留下记录,返回被正确解释,并成为下一轮的事实依据。至于暂时拿不到最终结果的调用,则需要解决另一个问题——任务在等待时,Loop 应当在哪里停下来。
1.5 暂停与恢复
当 J3 还在执行时,继续调用 LLM 询问“完成了吗”没有意义,因为新事实只能来自下游。运行时应把任务转入等待,保存待跟踪的作业、操作记录、唤醒条件、截止时间与剩余预算,再交还调度权。需要短暂等待还是持久化挂起,取决于接口形态;长时间等待不应持续占着一个 Worker。
这里释放的是已经不必占用的本地执行资源。若模型请求或网络调用还在途,不能一边让它继续消耗资源,一边提前归还对应并发许可,再放进更多请求。任务逻辑上等待,并不意味着所有外部工作已经停止。
检查点保存待办与预算,外部事件触发恢复,等待期不占用执行槽
下游回调到达后,恢复控制器先确认事件真实、确实属于 J3 和 O9,再更新当前有效的任务状态。重复回调应当识别为同一结果,不能唤醒出两次独立转派;即使回调先于等待状态落库到达,也要能持久保存或通过定时核对找回,避免丢掉唯一的唤醒信号。确认结果后再安排后续步骤,当前进程是否还是原来的 Worker 并不重要。
用户澄清和人工审批也遵循类似流程,但唤醒依据不同。用户补充的是缺失信息,审批确认的是某个具体动作及参数。恢复时需要重新检查权限、参数和截止时间;等待期间用户撤销了请求,就不能拿旧审批继续执行。已消耗的预算同样沿用,暂停不是重新领一份额度。
保存检查点也不等于从任意代码行精确续接。以 LangGraph 为例,包含中断的节点在恢复时会从节点开头重新执行,因此中断前的写操作应当具备幂等保护或拆分到独立步骤。框架的恢复机制要与业务操作记录配合,已确认成功的转派复用原结果,不能因节点重跑而再做一次。LangGraph 中断与恢复说明
等待结束后,系统已经拿到了新的事实。此时可以回到决策环节,也可能直接进入收尾,区别在于任务目标是否还有未完成的部分。
1.6 完成与停止
回到 T100:下游已确认工单转入目标团队,相关操作也没有未决结果,但用户还要求说明处理依据。如果这一说明尚未生成,任务仍需完成交付;如果说明已经存在且通过检查,就可以保存结果并结束,不必为了“再检查一次”无条件追加模型调用。
完成校验因此应对照入口确定的目标:工单归属是否正确,处理说明是否覆盖要求,是否还有必须处理的审批、调用或未知结果。工单归属可以用可信业务查询校验,说明是否覆盖要求则可按清单检查。开放式报告还可能需要模型评审或人工验收,但模型自称完成不能替代这些依据。Anthropic 的 Agent 设计说明同样强调从环境反馈中获取执行依据,并设置明确的停止条件。
模型只能提出完成候选,目标、业务状态和未决事项共同决定是否完成
检查发现缺口后,也不应一律继续。如果只是说明漏了一条依据,可以带着具体反馈修订;如果第三方操作结果仍未知,就回到核对或等待;如果当前权限已经撤销,则停止后续操作并如实报告。成功完成、等待恢复与无法继续,是不同状态,不能因为本轮没有工具调用就统一返回成功。
还有一种更隐蔽的情况:每一轮都能执行,任务却始终没有进展。例如工单与值班表已经查过,模型仍反复请求相同数据,待办没有减少。这时运行时应结合任务状态、工具参数和观测结果识别重复,尝试有界修正,仍无有效进展就结束或转人工。合法的异步轮询也可能连续得到相同结果,所以应结合预期唤醒时间判断,不能只凭参数相同就判死循环。
为了让这种停止真的生效,任务截止时间、调用次数和成本预算要在执行层计数,每次追加工作前检查,执行后记录实际消耗。恢复和重试继续使用原账本。即使模型坚持“再试一次”,额度耗尽也不能被它自行清零;退出时记录预算耗尽、取消或失败的真实原因,已经发生的外部业务结果仍需保留和核对。
验收可以沿着同一个工单任务验证这些分支:正常转派后应按证据结束;缺少必要输入应等待;接口仅受理时不能提前成功;写操作回包丢失后不能重复转派;重复查询没有增量时不能无限运行。再从记录中检查每次动作依据了什么状态、增加了什么证据,以及为什么继续或停止,才能判断 Loop 的控制逻辑是否成立。端到端完成率、提前结束率、无进展次数和单个合格任务成本,则用于观察这些行为在线上的表现。
这样,一条生产级 Agent Loop 的主线就完整了:状态支撑决策,动作经过约束,执行带回事实,事实更新状态;缺输入时保存并等待,满足目标时交付,无法继续时明确退出。循环的价值在于持续推进任务,而不是持续产生调用。
2. 参考回答
我会先确定任务目标、完成条件、身份和预算,再建立独立的任务状态。每一轮从状态中选取上下文,让模型提出下一步,运行时校验后执行,再把可信结果写回状态。判断继续思考还是调用工具,主要看当前缺什么:材料已经齐全,只差比较或整理,可以做有界分析;缺外部事实就调用工具;缺用户输入或审批则保存状态并等待,不让模型空转。模型停止生成,也不能直接当成任务完成。
工具执行后,我会区分成功、失败、已受理和结果未知。成功结果用于推进任务,异步作业等待回调或受控查询,写操作超时先核对结果,不能盲目重做。恢复时沿用原操作记录和预算,并重新校验权限与状态。最后按目标检查交付内容、业务结果和未决事项,通过才标记完成;有明确缺口才继续,无法修复、取消或预算耗尽则如实退出。同时检测反复调用却没有进展的循环,用工单从查询、转派到核验的完整用例验证每个分支,确保任务既不会提前结束,也不会无限运行。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~