3.4 Loop 循环——Agent 怎么转圈、什么时候停

约 15 分钟L2L3T1T3

课程来源

[来源] 腾讯云培训认证《腾讯云人工智能前沿部署工程师(FDE)》第 3 章 ·〈3.4 Loop 循环——Agent 怎么转圈、什么时候停〉

原文:https://cloud.tencent.com/edu/learning/course-4767-84813-84825(腾讯云在线学习中心)

[收录说明] 企业内部培训用途蒸馏收录:保留原课章节结构与要点,截图以图注转写、互动组件转写为要点清单;概念与事实以原课为准。

本课目录(3 节)

3.4 Loop 循环——Agent 怎么转圈、什么时候停

概念

前面三个知识点解决的是"单次调用"的问题。但 Agent 不是单次调用——它会自主循环:思考 → 调用工具 → 看结果 → 再思考 → 再调用……这就是 Agent Loop。

问题来了:如果模型一直觉得自己需要更多信息,它就会无限循环下去。所以 Loop 的核心不是"怎么转",而是什么时候停。

用法

一个 Agent Loop 的四个环节

  1. 感知(Observe) :读取当前状态——任务目标、已有产物、工具刚返回的结果。

  2. 规划(Plan) :基于当前状态决定下一步做什么、调用哪个工具。

  3. 行动(Act) :执行——调用工具、写文件、检索资料。

  4. 反思(Reflect) :检查这一步的结果对不对、是否更接近目标,据此决定继续、修正还是停止。

🖼 图:Agent Loop 四环节循环:感知(Observe)→ 规划(Plan)→ 行动(Act)→ 反思(Reflect)——循环往复,直至满足退出条件。

一个标准的 Agent Loop 长这样:


循环开始

  ① 模型思考(Reasoning):基于当前上下文,决定下一步干什么

  ② 执行动作(Action):调用工具 or 直接输出答案

  ③ 观察结果(Observation):把工具返回结果加入上下文

  ④ 判断:是否满足退出条件?

     - 是 → 退出循环,返回最终结果

     - 否 → 回到 ①

循环结束

这个就是经典的 ReAct(Reasoning + Acting)循环。每转一圈叫一个"step"或"turn"。

退出条件必须在设计阶段就定好,不能靠模型自己判断。常见的退出条件:

退出条件含义用在哪
任务完成模型输出了符合 Schema 的最终答案正常路径
最大步数限制转了 N 圈还没结束,强制停防止无限循环
人工关卡到了关键步骤,暂停等人工确认高风险操作前
超时限制总耗时超过阈值,强制停客户现场防卡死
错误次数限制连续失败 N 次工具调用,强制停防止反复失败烧 Token

示例

假设你的运维诊断 Agent 要执行一个"重启服务器"的动作——这属于高风险操作。Loop 设计应该是:


Step 1: 模型思考 → 用户报服务器异常,先查日志

Step 2: 调用 get_server_logs → 返回错误日志

Step 3: 模型思考 → 发现是内存溢出,建议重启

Step 4: 模型准备调用 restart_server 工具

        → 🚧 触发人工关卡:暂停 Loop,等人工确认

Step 5: 人工确认 "同意" → 继续

Step 6: 调用 restart_server → 返回成功

Step 7: 模型输出最终诊断报告 → 任务完成,退出 Loop

如果没设人工关卡会怎样? 模型可能直接重启了一台生产服务器,客户投诉。

如果没设最大步数限制会怎样? 模型查了日志发现不够,查指标发现不够,又去搜知识库,回来又查日志……无限循环,Token 烧光。

一个实际配置示例:


Loop 配置:

  max_steps: 10          # 最多转 10 圈

  timeout: 60s           # 总超时 60 秒

  max_consecutive_errors: 3  # 连续失败 3 次就停

  human_in_the_loop:     # 人工关卡

    - action: "restart_server"   # 遇到重启动作就暂停

    - action: "delete_data"      # 遇到删数据动作就暂停

    - action: "modify_config"    # 遇到改配置动作就暂停

**⚠️ 风险提示:**人工关卡(Human-in-the-loop)不是"加个确认按钮"这么简单。你需要考虑:暂停后怎么通知人?人不在怎么办?超时未确认默认是放行还是拒绝?建议默认拒绝——不确认就不执行,宁可慢不要错。

随堂测

逐题作答,即时反馈

0 / 3 已作答
  1. 1. 关于 Agent Loop,课文强调的核心问题是什么?

  2. 2. 经典 ReAct 循环每转一圈的标准步骤顺序是?

  3. 3. 课文示例的 Loop 配置中,max_steps / timeout / max_consecutive_errors 三个参数分别是?