R

E02 Agent 反馈振荡与 Repetition Loop 剖解

创建 2026-06-07 更新 2026-06-11 0 条双链 控制论 专题 AI 整理

当一个 LLM Agent 开始”鬼打墙”——反复说同一句话、在两个工具之间来回横跳、把同一个文件读了又读——大多数人的第一反应是”模型不够聪明”或”prompt 没写好”。本节点的判断主轴恰恰相反:这些现象不是玄学,也不是单纯的能力缺陷,而是一类有名有姓的控制失稳。 用反馈与稳定性的语言来剖,token 级的 repetition loop、回合级的 agent 来回打转、工具级的调用震荡,是同一种结构性病理在三个尺度上的投影;而控制论早就备好了对应的处方——阻尼、增益上限、状态记忆、终止判据。看不懂这层,PM 只会无穷尽地”调 prompt”;看懂了,才知道哪些 loop 该在解码层治、哪些该在编排层治、哪些根本治不了只能加熔断。

§0 为什么用”控制失稳”框架,而不是”模型能力”框架

读者脑中的默认框架是能力归因:Agent 转圈 = 模型笨 = 换个更大的模型/更好的 prompt 就好。这个框架的致命缺陷是它不可证伪也不可工程化——它解释一切失败,却不预测任何一次失败,也不告诉你该改哪一行代码。

控制论框架则把问题重新坐标化。控制系统理论中,一个系统是否”稳定”指的是:受到扰动后能否回到平衡态(Lyapunov 稳定性是标准框架)。一个稳定的反馈系统需要三样东西:负反馈把偏差拉回设定点、足够的阻尼防止过冲振荡、明确的终止条件防止无限循环。反过来,系统会发散/振荡,通常是因为:正反馈占了主导(偏差自我放大)、增益过高(过度修正引发来回过冲)、或缺少停机条件(永远收不了尾)。

把 Agent 套进这个坐标系,三类”鬼打墙”立刻各就各位:

  • token 级 repetition loop:自回归解码形成的自我强化吸引子——这是正反馈失稳
  • 回合级来回打转:observe-decide-act 闭环里增益失配、缺乏状态记忆——这是振荡 + 缺阻尼
  • 工具级调用震荡:多步规划中目标与反馈的耦合产生过冲——这是延迟反馈导致的极限环(limit cycle)

这不是给旧现象贴新标签的文字游戏。坐标化的价值是:它直接告诉你哪一层的失稳该用哪一层的控制手段,而能力归因框架做不到这一点。下面三节逐尺度剖,第四节给统一的控制处方表。

§1 Token 尺度:repetition loop 是经典的正反馈吸引子

本段事实基础不复述 LLM repetition loop,只做控制论重述与升级对照。

LLM repetition loop 已经讲清了机制:自回归生成下,某段后缀让下一个 token 的分布形成自我强化的吸引子,低温/贪心解码最易触发;判定标准不是”语义合理性”而是”分布形状”(概率集中度)。本节点要补的是它在控制论坐标里的精确位置

这是一个教科书级的正反馈环。把”已生成的重复片段”看作系统输出,它被反馈回输入(上下文),抬高了”继续重复”那条路径的条件概率;条件概率越高,越容易再次采到同一 token;采到后又延长了重复片段,进一步抬高概率——输出 → 反馈 → 放大输出,这正是 Wiener(1948)定义的正反馈:输出的一部分返回作为输入,放大而非抑制初始偏差。在控制论里,正反馈主导的系统行为是指数发散或锁死到一个简并状态;在 LLM 里,这个简并状态就是字符级循环。

控制论的处方因此也变得清晰,而且与 LLM repetition loop 已列的缓解手段一一对应——只是给了它们一个统一的”为什么有效”的解释:

缓解手段控制论角色作用机制
temperature > 0.5降增益 / 加噪声抬高采样熵,打破吸引子的确定性收敛
top-p / top-k限定状态空间防止分布退化到单点
frequency / presence penalty显式负反馈对已出现 token 施加反向修正项,直接对抗正反馈
no-repeat-ngram硬约束 / 饱和限幅在控制器上加一个”禁止 n-gram 复现”的硬上界
Contrastive Decoding(Li et al. 2022)误差信号重构用大小模型 logits 之差当作校正信号

frequency penalty 是其中最纯粹的负反馈——它就是一个对”输出多样性偏离”做反向作用的调节器,数学形式上等价于在 logits 上减去一个正比于历史出现次数的惩罚项。这恰好印证了控制论的核心命题:对抗正反馈失稳,最直接的办法是注入一个等量级的负反馈通道。

升级对照:LLM repetition loop 是 token 级现象的”机制说明书”,本节点不重复它的解码细节,而是把它接入控制论的统一语法,并指出它与 §2/§3 的高尺度 loop 是同构的——这是旧节点没有的跨尺度视角。

§2 回合尺度:agent 来回打转是 OODA 闭环的振荡

升一个尺度。Agent 的运行节拍常被描述为 OODA(Observe-Orient-Decide-Act)循环,或 ReAct 的 Reason→Act→Observe→Reason(Yao et al., 2022)。ReAct 的关键贡献正是把 Agent 从开环控制(few-shot prompting,生成后无外部信号修正)变成闭环控制(观察结果实时修正推理),在 ALFWorld 上比纯 CoT 提升约 34%(来源:Yao et al. 2022;ReAct Loop, MindStudio)。

但闭环不等于稳定闭环——这正是 PM 最容易栽的地方。一个有反馈的回路,如果增益过高 + 反馈有延迟 + 没有阻尼,标准结果就是振荡。Agent 的”来回打转”是教科书级的极限环:它访问了网页 A,觉得不对,跳到搜索 B,搜索结果又把它指回 A,如此往复。从控制论看,这是两个或多个平衡点之间的持续振荡,系统既不发散也不收敛,卡在一个 limit cycle 里。

为什么会缺阻尼?三个可工程化的原因:

  1. 缺乏状态记忆(无积分/历史项)。一个无记忆的控制器只看当前误差,看不到”我刚才已经试过这条路了”。Agent 若不把”已访问状态/已尝试动作”显式存入工作记忆,每一回合都是冷启动,自然会重蹈覆辙。这对应控制论里”纯比例控制器(P controller)“的局限——没有积分项就消不掉系统性的往复。
  2. 增益过高(过度修正)。这与 Forrester 系统动力学里的牛鞭效应同构:啤酒游戏中各层级玩家各自理性地响应库存信号,但系统性地低估时延、对反馈过度反应,导致整条链剧烈振荡——即使终端需求几乎不变(Sterman, MIT SD Group)。Agent 对单次工具失败反应过激(立刻全盘推翻计划重来),就是 PM 视角下的牛鞭。
  3. 观察噪声污染状态空间。MAST 失败分类学(Cemri et al., arXiv:2503.13657, 2025;1600+ 标注轨迹,14 种失败模式)把这类归为”Context Pollution”——上下文被噪声填满,Agent 的”状态空间”被污染,决策质量下降。控制论语义上,这是观测器(observer)失效导致的反馈信号失真。

值得注意的是,Cemri 等人发现的最大失败类之一正是”缺少终止信号导致的无限等待/循环”——用控制论的话说,一个缺少停机条件的反馈回路必然要么发散要么死循环。这不是巧合,而是结构性必然。

升级对照:m207 - Agent 产品化:场景推演与失败模式 把”无限循环”列为六类失败模式之一,并给出 HITL 断点这一产品级缓解。本节点不复述 m207 的失败模式清单,而是给”无限循环”补上动力学解释:它不是孤立的 bug 类型,而是闭环增益失配的可预测后果——从而把 m207 的”事后打补丁”升级为”事前可设计阻尼”。

§3 工具尺度:调用震荡是延迟反馈下的极限环

再升一个尺度,看多步工具编排。这里的震荡有一个 §2 没有的新变量:决策诱导延迟(decision-induced delay)。Eslami & Yu(arXiv:2603.10779, 2026)提出 Agent 系统形式化基础时明确指出,扩展 Agent 能力会引入时变适应、内生切换、决策诱导延迟,创造出物理状态、记忆、工具输出、设计变量共同演化的耦合动力系统——这正是经典控制理论里产生不稳定的温床。

工具调用震荡的典型形态:Agent 调用工具 X 得到结果,据此修改共享计划;但工具 Y 的输出与 X 的假设冲突,Agent 又回头调 X。多 Agent 场景中更糟——Cemri 等人指出,推理上的微小差异在 agents 独立修改共享计划时会被放大,形成不兼容分叉(incompatible forks),类似正反馈放大。这是从振荡(§2,单 Agent)升级到发散(§3,多 Agent 耦合)的临界过渡。

控制论给出三道防线,每道对应一个具体工程旋钮:

  • 状态记忆 = 积分项 + 防重放。把”(工具, 参数, 结果)“三元组存入记忆,对重复调用做去重/缓存。这直接消掉了”读了又读同一文件”这类最低级的震荡。
  • 增益上限 = 重试边界 + 退避。给每类工具设最大重试次数,失败后指数退避而非立即重试——这是控制论里的饱和限幅 + 阻尼S01 Agent 六层架构剖面 § 9 已把”重试边界”列为执行层与反思层之间的核心工程耦合点;本节点为它补上”为什么是控制论意义上的阻尼”的理论依据。
  • 终止判据 = 停机条件 / 算gedonic 信号。这是最关键也最常被忽略的一道。Stafford Beer 的 VSM(Brain of the Firm, 1972)有一个精妙设计:algedonic 信号(希腊语 algos 痛 + hedone 乐)——当任一运营单元绩效偏离阈值(过差或卡死),触发一条绕过正常管理层级、直达最高决策层(S5)的紧急信号通道。类比神经系统的疼痛反射:不必走完整的决策流程,异常直接穿透层级触发响应。Agent 系统极度缺这条通道:绝大多数 loop 之所以致命,正是因为”卡住”这个信号被淹没在正常的 token 流里,没有一条专门的旁路把它升级到 orchestrator/人类。给 Agent 装一个 algedonic 旁路(检测到 N 轮无进展即强制熔断并上报),是把 VSM 三十年前的洞见直接落到今天的 Agent 工程。

升级对照:本节点与 S01 Agent 六层架构剖面 的关系是纠偏 + 深化——S01 把重试边界、反思笔记写入、token 预算瓜分列为工程耦合点,本节点指出这三者本质上都是控制论里的稳定性手段(阻尼/积分/限幅),并补一个 S01 未显式点出的第四件套:终止判据(algedonic 旁路)。

判断主轴:90% 的人会在这四个点上搞错

每点带 症状 → 为什么会错 → 正确做法 → 真实反例 四件套。这是本节点区分”PM 顶刊”与”技术博客”的命门。

错点一:把所有”鬼打墙”都归因为”模型笨”,指望换大模型解决。

  • 症状:Agent 转圈,团队的第一个动作是申请更大模型预算。
  • 为什么会错:repetition loop 是解码动力学问题,与模型规模弱相关——温度=0 的贪心解码下,再大的模型也会进吸引子。能力归因框架不可证伪,掩盖了真正的控制旋钮。
  • 正确做法:先按尺度定位失稳类型(token/回合/工具),token 级的用解码层负反馈(penalty),回合级的加状态记忆,工具级的加重试边界 + 熔断。
  • 真实反例:同一个模型,加上 frequency penalty 和 no-repeat-ngram 后 token 级循环显著缓解(机制见 LLM repetition loop),而模型权重一字未改——证明这是控制问题不是能力问题。

错点二:以为”加了反馈(ReAct)就稳了”。

  • 症状:上了 ReAct/闭环架构,认为闭环天然优于开环,不再关心稳定性。
  • 为什么会错:闭环引入反馈,但反馈系统的默认状态不是稳定,而是可能振荡。高增益 + 延迟 + 无阻尼 = 极限环,这是控制论的基本结论。
  • 正确做法:闭环必须配阻尼(状态记忆/退避)和停机条件,否则把开环的”不会动”换成了闭环的”停不下来”。
  • 真实反例:Cemri et al.(2025)的 1600+ 轨迹里,“缺终止信号导致无限循环”是高频失败模式——这些系统全都有反馈闭环,恰恰是闭环没配阻尼才出的事。

错点三:把 repetition loop 和 hallucination 当成一回事来治。

  • 症状:Agent 输出有问题就笼统归为”模型不可靠”,用同一套手段(如加 RAG、调 prompt)去治。
  • 为什么会错:二者的分布形状相反。幻觉 是分布够散但内容错误(过自信地编造);repetition loop 是分布过窄退化为循环(LLM repetition loop 已辨析)。一个要”收紧约束”,一个要”打开多样性”,处方方向相反。
  • 正确做法:先判分布形状再开方——循环型加噪声/penalty,幻觉型加事实接地/约束解码。
  • 真实反例:对一个正在 repetition loop 的输出加 RAG 约束(治幻觉的手段)往往无效甚至加剧,因为它进一步压窄了已经过窄的分布。

错点四:缺少 algedonic 旁路,把”卡住”的信号埋在正常输出里。

  • 症状:Agent 已经空转 20 轮,系统毫不知情,直到 token 预算烧光或用户投诉。
  • 为什么会错:正常 token 流里没有一条专门的”我卡住了”紧急通道,异常信号被淹没——这正是 Beer 设计 algedonic 信号要解决的”噪音中信号被淹没”问题。
  • 正确做法:独立监控”无进展轮数/状态重复度”,触发阈值即强制熔断并升级到 orchestrator 或人类,绕过正常决策流程。
  • 真实反例:VSM 在 Project Cybersyn(智利, 1971–1973)中正是靠这种绕层级的紧急信号实现实时调控;今天的 Agent framework 大多还在用”最大步数”这种粗糙的硬上限代替真正的痛觉旁路。

产品 PM 视角补盲

跳出工程 PM,补三个”看走眼”点:

  1. 用户心理模型错位:用户看到 Agent 转圈,归因是”这 AI 真笨”,而非”这是个可控的稳定性问题”。产品上需要把”我在重试/我检测到卡顿,正在换策略”这类控制状态可视化给用户(类似 c11 - System 2 思维与 Test-Time Compute 讲的思维过程白盒化作为信任载体),否则一次可见的 loop 就摧毁信任。
  2. 商业模式错位:loop 直接烧 token,且烧的是无产出的 token。一个没有 algedonic 熔断的 Agent,最坏情况下的成本不可控——这对按 token 计费的产品是定价灾难。熔断不只是稳定性手段,更是成本封顶手段(对照 m208 - AI 基础设施与中间件选型 的成本视角)。
  3. 合规边界错位:在高风险动作上,振荡可能意味着 Agent 反复触碰危险操作的边缘。来回打转若发生在”发邮件/转账/删数据”这类不可逆步骤附近,每一次过冲都是一次风险敞口——HITL 断点(见 m207 - Agent 产品化:场景推演与失败模式)在这里既是稳定性阻尼,也是合规闸门。

对手框架回应:控制论隐喻的边界在哪

接受 + 边界,不是反驳。

最强的反方立场是:“把 LLM Agent 称为’控制系统’是比喻,不是工程意义上的稳定性保证。” 这一立场有坚实依据——LLM 本质上是高维概率采样,其内部状态空间维度极高且不可直接观测,经典 Lyapunov 稳定性分析所需要的”可观测状态 + 已知动力学”在这里都不成立(此为控制论应用于 Agent 的公认开放争议)。MPC 类比同样脆弱:真实 MPC 要求精确、可微的动力学模型,而 LLM 的”世界模型”是近似且不可微的,理论保证缺失。

我接受这个边界: 本节点用控制论做的是诊断与处方的语法,不是稳定性的形式化证明。我不主张”用 Lyapunov 函数证明某个 Agent 一定收敛”;我主张的是更弱也更可操作的命题——repetition loop / 振荡 / 调用震荡在因果结构上与正反馈失稳、缺阻尼、无停机条件同构,因此控制论已验证有效的工程手段(负反馈、限幅、积分项、algedonic 旁路)在这些 Agent 病理上大概率迁移有效,且这一迁移在解码层(penalty 治 token loop)已有实证支持。

我赌的是: 即便形式化证明遥遥无期,把 Agent 当控制系统来”调参”(加阻尼、设上限、装熔断)的工程直觉,比把它当”不够聪明的大脑”来”调教”的直觉,收敛更快、可证伪性更强。这个赌注在 token 尺度已经赢了(penalty 确实有效);在回合/工具尺度仍是初步,待更多工程验证。这正是 Eslami & Yu(2026)等形式化工作的价值所在——他们在把这个赌注往严格证明的方向推进。

[!note] failure scenario 本节点的控制论处方在一种场景下会失效:当 loop 的根因是任务本身无解或目标自相矛盾时,加再多阻尼也只是让 Agent 更平滑地卡死。控制手段治的是”动力学失稳”,治不了”目标病态”。此时正确做法不是调阻尼,而是回到 §2 的状态记忆 + 终止判据,让 Agent 尽早识别”此路不通”并升级,而非优雅地无限收敛到一个错误平衡点。

跨域呼应:Ashby 必要多样性定律——loop 的最深层语法

把控制论调到最深一层。W. Ross Ashby 的必要多样性定律(Law of Requisite Variety, An Introduction to Cybernetics, 1956)给了 Agent loop 一个比”增益/阻尼”更根本的解释。

Ashby 的命题:“Only variety can destroy variety”——调节器的状态多样性 V(R) 必须不低于扰动的多样性 V(D),否则控制在信息论意义上根本不可能完备(数学形式 V(C) ≥ V(D);Ashby 在 10/1 节明确将其等价于 Shannon 信道容量上界)。

这对 Agent loop 的推论是颠覆性的:有些 loop 不是”没加阻尼”,而是 Agent 的可表征状态多样性已经触顶了。 当 Agent 被困在两个状态之间来回打转,一个常被忽略的根因是——它的工作记忆/上下文所能区分的状态数,小于任务环境真实的状态数。它”看不见”自己已经试过的路径,不是因为没存,而是因为相关状态在它的表征里被压缩成了同一个点。这时再多负反馈也无济于事,因为反馈信号本身落进了一个分辨不出差异的状态空间

这把 §1–§3 的工程处方又往上托了一层,落到具体的 Agent 工程判断:

  • token loop:解码层多样性不足(分布退化),用 temperature/penalty 注入多样性
  • 回合/工具 loop:状态表征多样性不足,要么扩大上下文/记忆的可区分状态(给它能分辨”A 试过了 vs A 没试过”的显式记忆),要么降低环境扰动多样性(VSM 里 S2 的”衰减器”角色:在信号到达 Agent 前先过滤噪声)。

更进一步,Conant-Ashby 的 Good Regulator 定理(1970:“Every good regulator of a system must be a model of that system”)说:好的调节器必须是被控系统的模型。推论到 Agent:一个能不卡死地完成任务的 Agent,必须内含一个足够好的任务/环境模型——loop 频发往往是世界模型不足的表症。这正是 WALL-E(Zhao et al., arXiv:2410.07484, 2024)用 LLM+规则世界模型 + MPC 重规划能减少 8–20 轮重规划的控制论理由。(注:Good Regulator 定理本身存在证明缺口争议,原文构造的是 homomorphism 而非标题暗示的 isomorphism;此处作为启发式而非定理引用。)

这条跨域链可链入 0114认识论(什么是”足够好的模型”)与 0117社会学(VSM 作为组织治理的递归结构)。它把”调 prompt 治 loop”的工程直觉,升级为”context/记忆不够 → requisite variety 不够 → 失控是结构性约束,不是模型不聪明”的判断。

PM 决策启示

  • 面试怎么用:被问”Agent 老转圈怎么办”,不要答”换大模型/调 prompt”。答:“先按尺度定位失稳——token 级是正反馈吸引子,加 frequency penalty;回合级是闭环缺阻尼,加状态记忆 + 退避;工具级是延迟反馈极限环,加重试边界 + algedonic 熔断。根因若是 requisite variety 不足,则要扩记忆或降环境噪声。“——一句话展示从控制论到工程旋钮的完整下推链。
  • 选型怎么用:评估 Agent framework 时,别只看 feature list,问三件控制论的事:(1) 有没有状态去重/防重放(积分项)?(2) 有没有可配的重试边界与退避(限幅 + 阻尼)?(3) 有没有绕层级的紧急熔断/上报(algedonic 旁路)?三者缺一,生产环境的 loop 成本不可控。
  • 复现怎么用:自己搭最小 Agent 时,在 observe-decide-act 循环里强制实现三件套——已访问状态集合(防重放)、每工具最大重试 + 指数退避(阻尼)、无进展轮数计数器 → 触发熔断(停机条件)。这是把本节点的控制论处方落成 50 行代码。

与已有节点的关系

  • LLM repetition loop:深化 + 接入统一语法。不复述其解码机制与缓解清单,而是给它一个控制论坐标(正反馈吸引子),并指出它与回合/工具级 loop 同构。
  • m207 - Agent 产品化:场景推演与失败模式:纠偏 + 升级。m207 把”无限循环”列为失败模式并给 HITL 缓解;本节点为它补动力学解释,把”事后打补丁”升级为”事前设计阻尼/熔断”。
  • S01 Agent 六层架构剖面:理论补缺。S01 § 9 把重试边界列为工程耦合点;本节点说明它是控制论意义上的阻尼,并补第四件套——algedonic 终止判据。
  • 与 0416(失败 显式升级)的关系:0416 讲”失败要显式升级”,本节点给出升级触发的控制论判据(algedonic 旁路的阈值设计),二者互补不复述。

关联节点

核心(必读)

延伸(可选)

修订日志

  • R1(2026-06-07):首稿。建立 token/回合/工具三尺度的控制失稳框架;判断主轴四件套(能力归因谬误/闭环非稳/loop≠幻觉/缺 algedonic 旁路);对手框架回应(控制论隐喻的边界与赌注);跨域呼应 Ashby 必要多样性 + Good Regulator 定理;与 LLM repetition loop、m207、S01 的升级对照(不复述)。