Files
autumn-recruitment/06.AI/agent-design/循环状态机在Agent中的应用_test.md
T

7.1 KiB
Raw Blame History

tags, create time
tags create time
test/review
ai
agent-design
react-loop
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 个要点即可得满分;完全正确需覆盖全部要点。

关联笔记