蚂蚁二面:“两个Agent讨论任务,怎么防止无限循环?“ 我说加句“请尽量简短,不要讨论太久“,面试官没说话...

发布时间:2026/10/12 2:29:31

蚂蚁二面:“两个Agent讨论任务,怎么防止无限循环?“ 我说加句“请尽量简短,不要讨论太久“,面试官没说话... 前段时间有个粉丝去面蚂蚁的Agent方向岗位回来找我复盘。面试官问了一个问题两个Agent互相讨论一个任务如果一直达不成共识怎么防止对话无限循环下去Token烧完了还没出结果他的第一反应是在Prompt里加一句请尽量简短不要讨论太久。面试官听完笑了笑没说话停了一会儿才问“那如果它们就是谈不拢呢你写一句’适可而止’模型就真的会停”然后面试官换了个角度“路口挂一块’请勿闯红灯’的牌子不装红绿灯也不派交警你觉得管用吗”粉丝愣了一下突然意识到——自己一直在想怎么劝模型停下来但从来没想过停不停这件事是不是应该由模型自己来决定。这道题的表面是考Prompt Engineering实际上是考System Design。今天我想从工程角度把这件事彻底拆清楚。一、为什么Prompt层面的劝说注定失效先破除一个最常见的误区很多人认为只要Prompt写得够好Agent就会自觉地控制行为。这是把LLM当成了有自我约束能力的人而不是一个概率生成器。LLM的核心机制是autoregressive生成根据前面的token预测下一个token的概率分布。它没有任何内在的预算意识——不会因为你说不要烧太多Token就真的少生成几个字。RLHF训练让它学会了让人类满意的表达风格但这种风格往往意味着详细、礼貌、有解释反而更耗Token。更关键的是在多Agent对话场景里循环不是某个Agent的个体行为而是系统的涌现现象。两个Agent互相回复每一轮都把完整历史塞进上下文历史越长推理成本越高越容易陷入重复表达同一观点的僵局。这不是Prompt能解决的因为Prompt只影响单个Agent的输出风格不影响系统的反馈结构。面试官那个闯红灯的比喻很精准Prompt是道德劝说系统架构是物理约束。没有红绿灯的路口靠牌子拦不住系统性失控。二、把问题翻译成控制语言有界性Boundedness如果我们把多Agent系统抽象成一个控制系统那么防止无限循环本质上是一个**有界性Boundedness**问题系统的状态空间是否有限执行路径是否在有限步内必然终止一个开环的多Agent系统是这样的Agent A输出 → Agent B接收并输出 → Agent A再接收并输出……没有外部机制干预循环可以永远进行下去。这是一个典型的正反馈回路——每一轮都在强化上一轮的上下文没有负反馈来收敛。要让它有界必须引入三类约束**1. 状态空间约束State Space Bounding**限制系统可以处于的状态集合。比如上下文窗口不能超过128K对话轮次不能超过20轮工具调用次数不能超过50次。这些约束把无限的状态空间压缩成了有限的。**2. 转移函数约束Transition Function Bounding**限制状态之间的转移规则。比如Agent不能无限创建子Agent同一子任务不能无限转交必须沿着预定义的图结构流转。LangGraph的add_conditional_edges和AutoGen的TerminationCondition都是这类约束。**3. 时间/资源约束Resource Bounding**限制系统可以消耗的资源总量。比如单次运行不能超过5分钟Token消耗不能超过10万费用不能超过1美元。这是最后一道物理防线。这三类约束叠加在一起才能构成一个闭环控制系统——不是指望Agent自觉而是在架构层面让无限循环成为不可能。三、三层防护体系从架构到运行时到观测生产级的多Agent系统通常在这三个层面设防。第一层架构层——把自由对话变成状态机最靠谱的方案是从架构上消灭自由对话的可能性。LangGraph的做法是把多Agent协作建模成一张有向图Directed Graph。每个Agent是一个节点节点之间的流转由开发者显式定义的边Edge控制。不是Agent想聊就聊而是图结构决定了这一轮结束后必须去哪个节点。def should_continue(state): if state[iterations] 10: return end if state[task_complete]: return end return continue workflow.add_conditional_edges( agent, should_continue, {continue: tools, end: END} )这里的关键是END节点。如果图结构里没有指向END的边或者条件判断写错了LangGraph会在编译时就报错或者运行到recursion_limit默认25个super-step时强制抛出GraphRecursionError。AutoGen v0.4的做法不同它保留了对话的灵活性但通过TerminationCondition类来施加外部约束。比如MaxMessageTermination(max_messages20)限制总轮次TextMentionTermination(TERMINATE)检测特定关键词TimeoutTermination限制总时间。CrewAI则在角色层面做限制max_iter限制每个Agent的最大迭代次数allow_delegationFalse禁止叶子Agent把任务无限委托出去。三种框架三种哲学但底层逻辑一致终止条件必须是系统的一部分不是Prompt的一部分。第二层运行时层——熔断器与预算分配架构层解决的是能不能循环的问题运行时层解决的是烧不烧钱的问题。Anthropic在2025年公开了他们的多Agent研究系统架构一个Orchestrator带3-5个并行Sub-agent结果比单Agent快90.2%但Token消耗是单Agent的15倍。更关键的是他们发现Token使用量单独解释了80%的性能方差。这意味着什么意味着在多Agent系统里成本控制不是可选项是生存项。如果Sub-agent失控递归地创建更多Sub-agent15倍的基线成本可能在几分钟内膨胀到150倍。生产环境的防护手段包括**硬预算Hard Budget**给每个Agent、每个Workflow设置Token上限、费用上限、时间上限。任意一项越界立刻中止不留再试一次的余地。Oracle等厂商把这叫Runtime Budget Guardrails。**熔断器Circuit Breaker**当Agent连续失败3次、或者连续调用同一个工具无进展、或者状态指纹State Fingerprint连续几轮没有变化时熔断器触发停止向该Agent发送新任务并提供降级方案汇总已有结果、转人工、或者切换到单Agent模式。**分层模型路由Hierarchical Model Routing**不是每个Agent都需要用最贵的模型。Orchestrator用Opus做规划Sub-agent用Sonnet做执行Lookup和Verification用更便宜的Haiku。这样即使并行 spawning 多个Sub-agent成本也不会线性爆炸。第三层观测层——你不监控循环就不会被发现很多循环不是突然爆炸的而是温水煮青蛙——轮次一点点增加Token一点点累积直到账单出来才发现。生产系统必须监控以下指标平均协作轮数如果正常任务平均5轮完成突然飙到20轮说明有循环风险重复调用率同一个工具被同一个Agent连续调用3次以上大概率是陷入了尝试-失败-再尝试的死胡同预算触顶率多少任务是因为触发了硬预算而被强制终止的单位成功任务成本多Agent方案比单Agent贵了多少质量提升是否值得这个溢价。Anthropic的数据表明即使系统没有陷入循环多Agent架构本身就有很高的成本基线。如果监控不到位你甚至不知道正常和失控的边界在哪。四、上下文压缩别让历史成为负担多Agent循环的另一个隐形杀手是上下文膨胀。每一轮对话Agent A把完整历史传给Agent BAgent B回复后又把完整历史加上自己的回复传回Agent A。轮次越多上下文越长成本呈二次方增长。解决方案不是让Agent少说话而是结构化地管理信息流。**最小上下文传播Minimal Context Propagation**Sub-agent只接收它需要的任务状态而不是完整的对话历史。Orchestrator给Sub-agent分配任务时应该传递做什么和已知事实而不是我们之前怎么讨论的。Anthropic的Claude Research系统就是这么做的每个Sub-agent拿到的是干净的新上下文不继承Orchestrator的对话历史。Checkpoint与状态持久化LangGraph的MemorySaver/PostgresSaver会在每个节点执行后自动保存状态快照。如果任务中断或需要回滚可以从最近的Checkpoint恢复而不是从头重新跑。这避免了因为上下文满了而丢失所有进度的窘境。结构化输出替代自由文本Agent之间的交接用JSON Schema替代自然语言。比如{status: completed, result: ..., confidence: 0.92}比我已经完成了分析结果如下……省80%的Token而且下游Agent解析起来不会出错。五、面试时该怎么答回到那道面试题。如果让我来答我会按这个逻辑组织先亮结论不能靠Prompt让Agent自觉停下来。终止权必须握在外部编排器手里通过架构层面的硬性约束让无限循环在物理上不可能发生。第一层任务结构化把协作从自由对话升级为有状态的任务图。每个子任务有唯一负责人、明确的完成标准和结构化的返回状态completed/needs_info/failed_retryable/failed_fatal。Agent之间不靠自然语言踢皮球靠编排器根据状态字段路由。第二层运行时硬约束设置全局和单Agent的轮次上限、Token上限、工具调用上限、时间上限、费用上限。任意一项越界强制终止。同时叠加基于状态指纹的软停止检测——如果连续几轮没有新增证据、重复调用同一工具、或者在相同Agent间来回打转触发熔断。第三层终止后的收尾停止不等于放弃。触发阈值后由Supervisor汇总已有结果、降级为单Agent执行或转人工。绝不能是继续烧Token硬扛。第四层上下文管理禁止完整历史层层传递。任务完成后压缩成结构化摘要Sub-agent按需读取。用Checkpoint持久化状态避免重复劳动。最后补一句个人判断多Agent架构自带高Token成本基线Anthropic的数据显示是单Agent的15倍。它更适合能拆成独立并行线索的任务如研究、信息收集不适合强依赖、需要共享同一份上下文的任务如编码。后一种场景单Agent配合工具调用往往更省钱也更可靠。结语那道面试题的本质是在区分两种工程师一种把AI当成人来沟通一种把AI当成组件来编排。前者写Prompt后者建状态机。前者相信请尽量简短有用后者知道没有红绿灯的路口迟早会出事。多Agent系统的无限循环不是模型的道德问题是架构的数学问题。只要你在设计时保证了状态空间有界、转移路径有限、资源消耗有顶循环就不会发生——不是因为Agent变乖了而是因为系统根本不允许它循环。Prompt是劝架构是锁。面试要的是会造锁的人。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
延伸阅读

更多相关文章

2026/10/12 2:29:31

向量库是RAG的伪命题,知识图谱是答案,本体论是灵魂

在最初做RAG系统的时候有个几乎绑定的名词:向量库。所以他是什么呢? 应该说向量库是一个理论上很美好的名词,他是一类用于存储和检索向量的数据系统,这里有两点要注意: 向量(embedding)&#…

2026/10/12 2:24:31

Neuroimage: 动态功能连接方法的重测信度比较

本篇文献发表在Neuroimage杂志。所发布内容旨在与大家分享学术新知,促进交流学习版权归原作者或原出处所有,感谢各位学者的辛勤付出与研究成果。1.引言大脑的功能组织具有丰富的时空结构,可以使用功能连接指标进行探测。功能连接被定义为两个…

2026/10/12 3:39:58

基于Python+Django的多功能校园网站开发实战:从需求到部署全流程

做校园网站这一类偏业务型的 Web 项目,最怕的不是功能多,而是模块之间没有规划好,写到后面数据表乱成一团,视图里全是重复代码。最近正好完整整理了一个基于 Python Django 的多功能校园网站项目,覆盖了新闻公告、课程…

2026/10/12 3:39:58

云手机核心原理与工程实践:从系统定制到低延迟串流落地方案

做过云手机项目的人,应该都体会过那种憋着一肚子草泥马的时刻:用户对着屏幕上那台“安卓手机”戳了半天,骂你“卡得像幻灯片”,但你本地测一切正常——因为问题出在云端那台真实设备上,CPU调度、GPU渲染、视频编码、网…

2026/10/12 3:39:58

2026届安全方向毕设选题指南:图像/网络/机器学习全解析

2026届信息工程专业的同学,现在启动毕设选题一点不早。尤其在“信息系统安全”这个大方向下,每年都有大量学生拿着标题来找我聊,开口就是“我想做安全方向的”,但具体做什么、怎么做、做到什么程度能毕业,往往一问三不…

2026/10/12 3:34:58

具身智能中的协同机理研究(78):TVA-World架构多机协同抗干扰机制

前沿技术探索:TVA智能体(简称TVA) TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习(DRL)、卷积神经网络(CNN)与因式分解算法(FRA),构成了具身智…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/12 0:04:22

绝缘子缺陷检测数据集清洗与工业级训练实战指南

简介:本资源是面向电力AI研发人员、工业视觉工程师及智能巡检系统开发者的绝缘子缺陷检测专用YOLO格式数据集,解决无人机航拍场景下绝缘子破损、污闪、积雪等9类典型缺陷的精准识别与定位难题。数据集共2139张真实巡检图像(含训练/验证/测试集…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑