AI 诊断与 Autopilot

找出智能体卡住的原因,让席位故障转移到备用智能体,并让 Autopilot 在智能体崩溃或连接中断时自动恢复任务。

智能体可能以两种方式停止工作:一种是进程还在,却卡住了——屏幕上出现额度上限、登录提示或升级弹窗,你的消息始终无法送达;另一种是直接挂掉——连接中断,或 CLI 在任务进行到一半时退出。AI Diagnosis 负责处理第一种情况,Autopilot 负责处理第二种,两者位于同一处。

从顶部栏打开 Orchestration Dashboard,或在 Command Palette 中运行 Open Orchestration Dashboard,然后选择 Advanced → AI Diagnosis。Tutorials → How-to → Autopilot 可直接跳转到这里。

AI Diagnosis 设置:Diagnose & restore stuck agents 已开启,选择 With AI,并列出按顺序排列的检查器智能体——使用 claude-opus-5 的 Claude 和使用 gpt-5.6-sol 的 Codex,每个都有各自的模型选择器

诊断并恢复卡住的智能体

当向某个智能体终端的消息投递持续失败约两分钟时,已安装的 AI CLI 会读取该终端的屏幕文本,并说明出了什么问题。投递每 15 秒重试一次,第八次失败即触发诊断。如果该终端位于配置了备用智能体的图表席位中,席位会自动切换;其他终端则会以通知的形式收到诊断结果,方便你自行处理。状态正常的终端不会被检查。

Diagnose & restore stuck agents 默认开启,并在整个应用范围内生效,覆盖每个团队、图表和已关联的终端。在 How to restore 下可选择:

  • With AI(推荐):检查器 AI 先读取卡住终端的屏幕,只有确认是额度或登录限制时才会触发恢复。它不会打扰只是在忙碌的智能体。
  • Manual timer — no AI:仅凭超时即触发恢复。速度更快且完全本地运行,但无法区分卡死的智能体与正忙于长任务的智能体。

检查器智能体及其顺序

检查器按顺序逐个尝试。如果某个检查器未安装、触及自身限额或超时,则由下一个接手。卡住终端自身所用的提供方始终会被跳过,因此智能体不会给自己打分。Claude、Codex、Gemini、OpenCode、Qwen、Kimi、Grok 和 Hermes 均可作为检查器,最多同时四个。使用 + Add checker、方向箭头调整顺序、Remove 删除,即可编排列表。如果一个都不选,则按该顺序使用第一个已安装的 CLI。

每个检查器都有自己的模型(自 v1.75.0 起)。打开智能体旁边的下拉菜单即可选择模型,或保持 Default model 以使用该 CLI 的默认模型。

检查器以无界面方式运行,权限受限,并在一个中立目录中工作。它们只对屏幕内容进行分类,并以一行 JSON 作答,绝不会触碰你的项目。只有在你一次性授予屏幕读取同意之后,屏幕文本才会发送给检查器。

Autopilot(失败任务)

Autopilot 会重启在任务中途挂掉或连接中断的智能体。它会恢复该智能体的会话,或将任务切换到该席位的备用智能体。它从不回答问题,也从不在选择器中输入内容。默认关闭。 将 Autopilot (failed tasks) 卡片切换为 On 即可。开启它的同时也会授予 AI Diagnosis 所使用的屏幕读取同意。

Agent Orchestration → AI Diagnosis 中的 Autopilot (failed tasks) 卡片,已开启并处于 Watching 状态,上方是 Resume the session、Switch to backup 和 Wait for you 三个图块,下方是已恢复智能体的 Recent decisions 列表

开启后,卡片会显示 Watching. Acts only when a running task goes quiet, its process exits, or a message to it stalls. Idle tabs are never checked. 点击 How it works 可查看动画演示。

何时介入

Autopilot 只关注正在处理你所发提示的终端。以下三种情况会触发它:

触发条件判定标准
进程退出提示尚未完成时,CLI 因错误退出。通过 /exit 或 Ctrl-D 主动退出属于正常退出,不会被处理。
任务停止输出运行中的任务不再产生输出,并且检查器读取屏幕后确认其确实卡住。
消息停滞消息投递持续失败,且 AI Diagnosis 报告连接已中断。

它做什么

  • 原地继续。 自 v1.76.1 起,当 Devin 智能体连接中断但进程仍在运行,且它自己的错误信息要求发送一条消息才能继续时,Autopilot 的第一步就是就地发送该消息——不停止任何进程,也不重新启动。重启这类进程只会停掉一个仍在工作的 CLI,并与其会话锁产生竞争;实际使用中,四天内 Devin 被重启了 40 次,而 Claude 只有 6 次。如果任务在原地继续之后再次停滞,则按常规方式重启。
  • 恢复会话。 Autopilot 使用该 CLI 自带的恢复命令,在同一终端中重启智能体,使同一会话和对话记录得以恢复。适用于 Claude Code、Codex、Gemini、Cursor、OpenCode、Grok、Kimi、Qwen、Amp、Cline、Hermes、Antigravity 和 Qoder。随后 Autopilot 会确认替换进程确实已在运行,再继续下一步——旧进程迟到的退出通知不会再悄悄移除新进程,导致智能体运行却没有任何输出。
  • 要求继续。 开启 After a resume, ask the agent to continue(默认开启)后,恢复的智能体会收到一条指令:从中断处继续,不要重做已完成的步骤,并在重复被中断的步骤之前先检查其结果。
  • 切换到备用。 如果该标签页无法恢复(出现致命错误,或没有可恢复的会话),带有备用智能体的图表席位会连同任务简报一起把任务移交出去。旧标签页保持打开。
  • 等待你处理。 如果屏幕上出现问题、选择器、未输入完的草稿或登录限制,或者情况不明,则不会输入任何内容。问题、选择器和草稿会被直接忽略;登录限制和无法判断的屏幕则会向你发送通知。

重试限制

Autopilot 在第一次重启前等待 5 秒。如果同一提示再次失败,第二次重启前等待 20 秒,第三次重启前等待 60 秒。此后它会停止,并通过一张 Activity 卡片提醒你,内容为 Stopped retrying "…" after 3 resumes; waiting on you.

次数按事件统计——按失败的任务计,而不是按投递计。 Autopilot 自己发出的"从中断处继续"后续消息会带着原有的尝试次数延续同一事件,因此卡住的任务不会再因为 Autopilot 反复重置自己的计时而被一次次停止和恢复(在 v1.76.1 之前,一个标签页曾在七分钟内经历四个循环)。原地继续同样算作同一事件的一次尝试。只有你发出的新提示才会开启新的事件并重置计数。

此外,同一终端每小时最多被继续或恢复 6 次。超过后,Autopilot 会等待并告知你:"Agent name" has been continued or resumed 6 times this hour; Autopilot is waiting on you.

最近决策

Recent decisions 列出本机上最近的 5 次操作。每一行显示时间、提示、项目和原因,并带有徽章:Resumed、Switched to backup、Couldn't resume、Continued、Stopped retrying 或 Waiting on you。Activity 卡片带有 Autopilot 标记。完整的记录是仅追加的,写入 ~/.1devtool/orchestration/autopilot-ledger.jsonl。

暂停或关闭

  • Pause 会让 Autopilot 在你取消暂停之前不再恢复或切换任何内容。来自 Diagnose & restore stuck agents 的备用切换仍会运行。
  • Off 会停止 Autopilot 并清除任何暂停状态。

若要在不更改设置的情况下仅对单次启动关闭 Autopilot,请使用 ONEDEVTOOL_AUTOPILOT=off 启动 1DevTool。此时卡片会显示 Off for this launch.