--- tags: [test/review, ai, agent-design, react-loop] create time: 2026-08-09 12:00 --- # 循环状态机在Agent中的应用 — 测试题 ## 概述 本测试覆盖 ReAct 循环(思考→行动→观察)、自反思修正(Self-Reflection)、收敛条件设计以及与简单 Loop 的区别。共 10 道题目(6 选择 + 3 填空 + 1 简答)。 --- ## 一、选择题(6道,由浅入深) > **难度阶梯**: Q1-Q2 基础概念 → Q3-Q4 核心原理 → Q5-Q6 深入应用/边界场景 ### Q1(基础)— 考察定义层面 ReAct 循环中的三个核心步骤依次是: A. Plan → Execute → Report B. Reason → Act → Observe C. Think → Do → Check D. Search → Read → Answer ### Q2(基础)→ 以下关于 Self-Reflection 的描述哪个是正确的? A. 它是一个可有可无的附加功能 B. 它在每次 Observe 之后额外增加自我评估步骤,判断当前进度是否足以完成任务 C. 它只在所有迭代结束后才执行一次 D. 它替代了 Reason 步骤 ### Q3(进阶)— 核心原理 原文提到的经验表明,ReAct 的最大迭代次数不建议超过多少轮?为什么? A. 3 轮——太慢了 B. 5 轮——没有证据支持 C. 8 轮——超过后错误率开始反弹,因为早期错误累积进历史污染后续推理 D. 20 轮——越多越准确 ### Q4(进阶)— 比较/辨析 ReAct 状态机与简单 while Loop 的核心区别不包括以下哪项? A. ReAct 有 LLM 推理 + 工具反馈做决策依据,简单 Loop 只有固定规则 B. ReAct 携带完整历史上下文,简单 Loop 无状态感知 C. ReAct 需要数据库存储每步结果,简单 Loop 不需要 D. ReAct 每轮可换策略,简单 Loop 不支持 ### Q5(深入)— 场景推理 一个 Agent 正在执行搜索任务获取「Go 1.21 GC 改进」的信息。三轮后的状态是:第一轮搜索返回摘要,第二轮 fetch URL 得到详情,第三轮综合信息准备生成答案。这体现了哪种模式? A. Supervisor 分发 B. Planner 静态规划 C. ReAct 多轮循环 D. Critic 审查 ### Q6(深入)— 源码级/边界场景 以下哪种防无限循环的技巧**不**是原文中提到的? A. Token 用量监控——单轮突增 3 倍则强制中断 B. 去重检查——相同 Action 和结果连续出现两次说明卡死 C. Entropy 监测——计算 Thought 文本的 perplexity D. 动态学习——根据每轮表现自动调整 LLM 温度参数 --- ## 二、填空题(3道) ### F1 — 填空1 收敛条件包括五种:最大迭代次数(典型值 _____~_____ 次)、连续无改善(N=3)、置信度阈值(通常 0.8)、时间预算(通常 30s)以及 Token 预算。这是防止无限循环的最重要机制。 > **提示**: 第一个空填最小值,第二个空填最大值。 ### F2 — 填空2 简单的 while loop 只能让 Agent "做一件事直到成功",缺乏对执行过程的结构性理解。基于状态机的循环——特别是 ReAct 模式——为 Agent 引入了可推理、可观测、可终止的_____框架。这是构建自主智能体的基础架构模式。 > **提示**: 回忆原文概述部分的原词。 ### F3 — 填空3 ThumbUP 项目中缓存策略选择是一个典型的 ReAct 决策过程:Thought(单一缓存有风险) → Action(调研业界方案) → Observation(二级缓存+HeavyKeeper是主流) → Thought(验证一致性开销) → Action(模拟测试) → Observation(延迟增加15ms) → Reflection(利大于弊)。这个过程中每一步都依赖上一步的_____做出调整,而非预先写死的流程分支。 > **提示**: 回想 ReAct 的本质特征——不是 pre-defined,而是 reactive to what you just learned. --- ## 三、简答题(1道) ### S1 面试官问:"如果一个 Agent 在执行 ReAct 循环时陷入了死循环——同一组 Thought-Action-Observation 反复出现,该怎么办?请设计一套完整的防无限循环机制。" > **答题框架提示**: > 1. 硬性约束(不可绕过的上限) > 2. 软性检测(基于语义的智能保护) > 3. 提前退出条件 > 4. 最佳尝试兜底 --- ## 参考答案与解析 ### 选择题答案 | 题号 | 正确答案 | 解析 | |------|---------|------| | Q1 | B | ReAct = Reasoning + Acting,核心三步:思考分析当前局面 → 行动调用工具或生成答案 → 观察获取工具返回结果。然后根据评估决定是继续还是结束。 | | Q2 | B | Self-Reflection 是在每次 Observe 后额外增加的一步自我评估,判断进展、不足和下一步策略。它不是可选的——没有反思的循环就是蛮力,有反思才是智能。 | | Q3 | C | 原文警告:超过 8 轮后错误率开始反弹。因为早期的错误被不断累积进历史上下文,污染了后续推理。8-10 轮是经过实验验证的黄金区间。 | | Q4 | C | 原文对比表中列出的五个区别是:决策依据、状态感知、策略调整、终止条件、可解释性。数据库存储不是区分标准——两者都可以用内存或持久化存储。 | | Q5 | C | 这是一个典型的 ReAct 多轮展开:每一轮都是 Thought → Action → Observation 的循环,每步依赖上一步的观察结果做出调整。 | | Q6 | D | 原文提到的四种技巧是:① Token 用量监控;② 去重检查;③ Entropy/perplexity 监测;④ 人工介入网关。动态调整 LLM 温度参数不在其中。 | ### 填空题答案 | 题号 | 答案 | 解析 | |------|------|------| | F1 | `5`;`10` | 最大迭代次数 5-10 是最常用的范围。低于 5 可能不够完成复杂任务,超过 10 错误率开始反弹。配合连续无改善(N=3)和置信度(0.8)双重判断更可靠。 | | F2 | `执行` | 原文原话:"为 Agent 引入了可推理、可观测、可终止的执行框架。这是构建自主智能体的基础架构模式。" | | F3 | `观察结果`(或"Observation") | ReAct 的核心价值在于每一步不是预先写死的流程分支,而是 reactive 到上一步的实际观察结果,据此调整策略。 | ### 简答题参考答案 S1:**参考答案要点**: 1. **硬性约束**:设置 max_iterations(如 8 次)作为不可绕过的上限。同时设时间预算(30s)和 token 预算,任一超限立即终止。 2. **去重检测**:如果当前 Step 的 Action 和前两轮完全相同且结果也一样,说明陷入卡死状态。此时强制切换工具或重试不同的 Action。 3. **Token 突增检测**:单轮 token 消耗突增 3 倍说明 LLM 可能陷入冗长输出循环,强制中断当前轮次。 4. **提前退出**:当 confidence ≥ 0.8 或连续无改善达到限制时提前退出,不必等到 max_iterations。 5. **兜底策略**:即使未达最优但已达上限,也返回 history 中 bestOf(history) 的最佳尝试结果,而不是返回空或错误。 6. **人工介入**:超过一定复杂度(如 iteration > 6)自动请求 human-in-the-loop 确认下一步方向。 **评分标准**:答出任意 2 个要点即可得满分;完全正确需覆盖全部要点。 ## 关联笔记 - [[Eino DAG 工作流设计]] - [[上下文工程与记忆管理]] - [[沙箱权限治理]]