ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

多智能体系统如何防止死循环失控?Orkas四重运行守卫与loop_detection完整实现剖析

多智能体系统如何防止死循环失控?Orkas四重运行守卫与loop_detection完整实现剖析 多智能体系统如何防止死循环失控Orkas四重运行守卫与loop_detection完整实现剖析【免费下载链接】OrkasOrkas is an open-source, local-first AI desktop app: a commander LLM directs specialist sub-agents, and runs your installed coding CLIs — Claude Code, Codex, OpenCode, OpenClaw, Hermes — as local sessions. Agents self-evolve via reflection and skill crystallization. BYO keys. macOS / Windows / Linux.项目地址: https://gitcode.com/gh_mirrors/or/OrkasOrkas 是一个开源、本地优先的多智能体 AI 桌面应用由指挥官Commander模型统一调度专家子智能体还能把 Claude Code、Codex 等编码 CLI 当作本地会话来驱动。多智能体系统的头号隐患是死循环失控——模型可能反复发起同一个工具调用、或看似在忙却毫无进展白白烧掉 Token。本文将完整剖析 Orkas 内核中loop_detection的四重运行守卫机制看看它是如何做到先劝返、再止损的 ️。一、为什么多智能体系统必须防止死循环 ️单轮对话出不了大事但 Agent 的思考→调用工具→再思考循环一旦转起来就可能陷入两类失控原地打转模型连续发起完全相同的工具调用同样的文件、同样的参数结果毫无变化却反复执行假装有进展模型不断变换文件名、游标或搜索词看起来每步都不同实际上没有产出任何新信息。前一种好识别后一种才是真正难防的——它绕开了朴素的重复检测。Orkas 的核心 Agent 循环core-agent为此设计了一套分级、分权的守卫体系有的守卫只提醒有的才能叫停而且叫停必须有可证明的证据绝不误杀正常的长任务。二、四重运行守卫总览从提醒到强制终止整个守卫体系由 LoopGuards 类 统一承载计数与判定逻辑而循环本身负责消息投递与最终结果的生成。四重守卫层层递进守卫触发条件权限① 精确重复检测完全相同的调用连续 3 轮无变化反馈后再 2 轮✅可终止② 近似重复检测loop_detection仅易变字段id/时间戳不同的调用连续 6 次⚠️ 只警告③ 进度监察员连续 2 轮无新产出 / 连续 8 轮只读不写⚠️ 只警告④ 全局工具循环预算超过maxToolLoops轮次上限✅强制终止这种提醒与终止分离的设计是本文最值得关注的思路判定越模糊权限越低。下面逐层拆解。三、第一重精确重复检测——必须有无进展证据才能终止 最直觉的一招给每次工具调用算一个签名toolCallSignature 工具名 规范化参数只有完全相同的调用才会撞上同一签名因此参数有差异的正常操作永远不会误判。但重复本身不等于失控——分页读取、轮询任务状态都是合法的重复。所以 Orkas 的终止判定建立在完成证据之上见 repeat-evidence.ts 的completedRepeatKey只有当一轮执行可证明没有产生任何新效果、没有读到任何新信息文件哈希未变、无状态变更、无错误、无持久化输出时这一轮才计入无变化轮次。阈值非常克制loop-guards.ts连续3 轮LOOP_WARN完成证据均无变化 → 向模型注入一条反馈同样的操作已经连续 N 轮没有产生新效果请换一个方向反馈后再有 2 轮无变化将终止本次运行反馈送达后再连续2 轮LOOP_HARD - LOOP_WARN无变化 → 运行被终止repetitive_tool_calls并生成一份状态摘要交给用户而不是静默失败。四、第二重近似重复检测——改了 request_id 的重复也逃不掉但只警告还有一种更狡猾的打转调用看起来每次都不一样其实只有request_id、nonce、timestamp这类天然易变的追踪字段在变。loop_detection为此引入了归一化签名normalizedToolCallSignature按键名剔除易变字段request_id、trace_id、created_at等见 VOLATILE_ARG_KEY_RE但刻意保留page、offset、id这类结构性参数——因为分页和不同目标绝不能被视为重复。关键的设计决策在 observeProposedCalls连续6 次NEAR_DUP_LOOP_WARN近似重复时只触发一条一次性警告你已经连续 N 次以几乎相同的参数调用该工具建议更换目标或汇报已有进展绝不终止运行。源码注释里写得很直白归一化匹配天生比精确匹配模糊误报必须是无害的一次性提醒永远不能成为停止理由——这个历史教训甚至被 回归测试 固化了下来防止有人好心把硬停止偷偷加回来。五、第三重进度监察员——抓变换花样的空转对付假装有进展的是进度监察员progress governor。它不看调用长得像不像而是对每一轮工具执行按观察到的实际结果分类五档productive / discovery / none / unknown / neutralProgressEvidence 依据已提交的效果判定文件变更前后哈希是否变化、读取区间是否与之前完全重叠、流式读取的版本号是否前进——成功返回本身不算进展必须有可观测的新产出或新信息连续2 轮被证明无新产出RUN_NO_PROGRESS_NUDGE_ROUNDS→ 发送一次无进展建议连续8 轮只有查找/搜索/读取类操作RUN_DISCOVERY_NUDGE_ROUNDS工具白名单见 DISCOVERY_ONLY_TOOLS→ 发送一次探索过久提醒。注意两个宽松细节unknown无法判定的结果不计入停滞计数——宁可漏报不可误报用户中途改了指令时会重置停滞窗口因为进展的定义刚刚变了。observeRoundOutcome 的返回结构里stop字段被硬编码为null建议类守卫从架构上就不具备终止权。六、第四重全局工具循环预算 三条收敛信号前三重管行为第四重管总量每个运行都有maxToolLoops硬上限runner.ts达到上限后不再执行任何工具调用改为生成一份已完成 / 阻塞点 / 下一步的状态摘要交付用户。在撞线之前还有三条渐进式收敛信号全部通过一次性的请求级控制通道注入convergenceSignals接近上限提醒用到 80% 轮次预算时提醒模型停止探索先交付最小可用成果耗时收敛运行超过约 8 分钟且轮次 ≥ 8且近期无新信息 → 提醒模型检查已有结果再动手压缩打转信号上下文压缩 ≥ 2 次且轮次预算已用 75%典型的上下文被摘要 → 忘记做过什么 → 重做指纹→ 提醒模型回到磁盘上的持久化状态重新锚定。所有触发信号都会记录在运行结果的convergenceSignals元数据里方便事后审计这次运行到底经历了哪些干预。七、设计哲学为什么劝返比掐掉更重要 把四重守卫放在一起看能提炼出三条对任何多智能体系统都适用的原则权限与判定精度成反比——精确证据才有终止权模糊信号只能提醒警告必须是一次性的——同一条提醒对同一事件只发一次normWarnedForStreak、noProgressEpisodeNudged等标志位避免守卫本身变成新的噪音循环干预不能污染对话历史——所有守卫消息都走请求级控制通道withRequestScopedControls绝不写入持久化会话防止内部提醒被模型误当成用户的新指令。八、关键源码文件导航 文件职责loop-guards.ts四重守卫的阈值、签名算法与LoopGuards判定逻辑repeat-evidence.ts无变化轮次的完成证据生成progress-evidence.ts按实际执行效果分类每轮进度runner.tsAgent 主循环守卫接入、提醒投递与终止处理agent-runner.test.tsloop_detection 的回归测试含近似重复不得硬停的锁定用例README.mdOrkas 项目总览与多智能体架构介绍结语多智能体系统不怕慢怕的是看似在忙、实则空转。Orkas 给出的答案不是更激进地掐断循环而是一套证据分级、权限分离的守卫体系精确证据才配得上终止权模糊信号只配发一次提醒总量预算兜住最后的底线。理解这套loop_detection的四重守卫对任何正在构建自主 Agent 的开发者都是一份实用的防失控清单 ✅。【免费下载链接】OrkasOrkas is an open-source, local-first AI desktop app: a commander LLM directs specialist sub-agents, and runs your installed coding CLIs — Claude Code, Codex, OpenCode, OpenClaw, Hermes — as local sessions. Agents self-evolve via reflection and skill crystallization. BYO keys. macOS / Windows / Linux.项目地址: https://gitcode.com/gh_mirrors/or/Orkas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进