ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

长时AI Agent挂了怎么办:AutoResearch Supervisor容错重启设计拆解

长时AI Agent挂了怎么办:AutoResearch Supervisor容错重启设计拆解 长时AI Agent挂了怎么办AutoResearch Supervisor容错重启设计拆解【免费下载链接】AutoResearchAI/ML research agents from idea to paper-ready evidence. An EvoMap open-source project.项目地址: https://gitcode.com/gh_mirrors/autore/AutoResearchAutoResearch 是一个从研究想法一路跑到「论文级证据」的 AI/ML 研究 Agent 系统而它的 Supervisorar-supervisor.sh专门解决长时运行 Agent 最大的痛点会话挂了、API 报错、SSH 断线之后如何自动续跑而不是从零重来。本文拆解它的 5 个核心容错设计帮你理解「让 AI Agent 跑一晚上不翻车」背后的工程细节 ️为什么长时 AI Agent 一定会挂跑一次完整研究流程队列要经过规划、编码、审查、预实验、主实验、独立评审等 12 个单元见 ar-coordinator-startup-flow.md动辄数小时甚至超过一天。期间随时可能遇到终态 API 错误如第三方模型对 tool-use 消息配对返回 400会话直接死亡超时僵死进程还在但已经不再推进任何工作环境中断SSH 断开、CI 取消、人工 CtrlC。传统做法是祈祷它别挂。AutoResearch 的做法是把「挂掉」当作常态用三层机制兜底状态可恢复 重启有预算 收尾必完成。容错设计拆解Supervisor 的 5 个关键机制1️⃣ 状态文件即存档点挂了也能精确续跑整个工作流不依赖内存里的任何状态权威进度全部落在磁盘state.md当前状态快照workflow_queue.json待执行单元队列decisions.log只追加的决策时间线。每次重启时coordinator 被唤醒后只做一件事读状态、找到第一个未完成单元、只推进这一个单元、写回状态即 Ralph Loop 续跑机制。这意味着 Agent 死在哪一步重启后就从哪一步继续已经跑完的实验不会重跑。2️⃣ 重启预算制MAX_RESTARTS 单轮超时Supervisor 启动时持有两个预算参数MAX_RESTARTS默认 8 次整次运行的重启上限耗尽后打印 needs human 并以退出码 2 交还人工ATTEMPT_TIMEOUT默认 6h单次 attempt 的硬超时超时即杀掉整组进程。这个预算由 Supervisor 统一持有并传给工作流引擎AR_MAX_CYCLES环境变量默认 3 轮coordinator 自己无法静默放大运行范围——预算权在监督者手里不在执行者手里。3️⃣ 权威完成判定用引擎复核不轻信状态文件这是设计上最容易被忽略的一课。队列文件workflow_queue.json是 coordinator 自己写的——手改一个status: done就能骗过直接解析。所以 Supervisor 判断「是否真的跑完」时调用的是工作流引擎的只读复核命令python3 ar-workflow-engine.py verify-close --project-root 项目目录见 ar-workflow-engine.py。只有引擎独立校验通过队列全完成 主实验分析完成或明确记录跳过原因Supervisor 才承认完成并退出 0。写状态的人不能当裁判复核必须由独立只读组件完成——这条原则对任何多 Agent 系统都值得抄。4️⃣ 进程组级清理从 SIGTERM 到 SIGKILL 的完整生命周期Agent 会话往往拉起一整套子进程MCP server、后台异步 Agent 等。只杀主进程会留下孤儿进程继续写状态文件污染下一次 attempt。Supervisor 的run_with_timeout控制器把每次 attempt 放进独立进程组own session并公布 PGID清理时按「SIGTERM → 宽限等待默认 10s→ SIGKILL → 复核进程组是否真的消失」逐级升级进程组存活还会标记 manifest 不可封存。监控进程ar-gemini-monitor同样用精确的 argv 真实路径匹配来定位和收割避免误杀别的项目的监控。5️⃣ 任何退出路径都有收尾signal trap 运行清单脚本里注册了HUP / INT / TERM → EXIT的 trap 链SSH 断开、CI 取消、人工中断最终都汇入同一条on_exit收尾路径——先停 attempt 进程组、再停监控、最后用 ar_run_manifest.py 的finish命令封存本次 attempt 的运行清单runner、想法文件、退出码等。每次调用还对应一份独立的run_manifest.attempt-N.json每一次重启尝试都留有可审计的现场记录事后排查「第几次 attempt 死于什么错误」有据可查。挂了之后你只需要看这块看板监控进程ar-gemini-monitor.pyar-runtime/scripts/ar-gemini-monitor.py由 Supervisor 拉起并持有 PID持续 watchresults/run.log周期性汇总到summary.md和通知日志。项目整体进度则可以在项目监控看板上直接看到当前 stage、各单元完成状态、评审阻塞项、执行循环日志上手指南一条命令启动带容错的运行想体验 Supervisor 的容错重启先把仓库 clone 下来clone 地址https://gitcode.com/gh_mirrors/autore/AutoResearch然后按 ar-runtime/README.md 完成前置配置非交互运行只需要一条命令cd ar-runtime scripts/ar-supervisor.sh ../data/ideas/my_experiment.txt ../data/projects/my_experiment可选参数按需追加[max_restarts] [attempt_timeout]以及环境变量AR_MAX_CYCLES控制主工作流的循环上限。总结长时 Agent 容错的三个可迁移原则原则AutoResearch 的实现可迁移到你的 Agent 系统吗状态外置、断点续跑state.md workflow_queue.json每轮只推进一个单元✅ 任何长流程都适用重启有预算、完成有权威判定MAX_RESTARTS 预算 verify-close 独立复核✅ 防止无限重试和假完成所有退出路径必收尾signal trap → 统一 EXIT 路径 进程组清理 运行清单✅ 孤儿进程与审计的基础长时 AI Agent 的可靠性不来自「让它不挂」而来自「挂了之后能确定性地把现场接回来」。这正是 AutoResearch Supervisor 这套容错重启设计最核心的启示 【免费下载链接】AutoResearchAI/ML research agents from idea to paper-ready evidence. An EvoMap open-source project.项目地址: https://gitcode.com/gh_mirrors/autore/AutoResearch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表