Agent 休眠
让 DevAgent 暂停空闲的后台 agent 终端,并在你重新打开该 worktree 时自动恢复它们。
当你同时打开数十个 worktree 时,空闲的 agent 会不断累积 —— 每一个都是一个占用内存、持有模型会话的活动 PTY。Agent 休眠让 DevAgent 在这些终端已完成且长时间无人触碰后悄悄地停止它们,然后在你下次打开该 worktree 时恢复同一个会话。
实验性功能
Agent 休眠默认关闭。在我们持续调优其安全模型期间,可在 设置 → 实验 → Agent hibernation 下将其开启。
哪些内容会被休眠
只有当以下条件全部成立时,DevAgent 才会休眠一个 agent 终端:
- 该 agent 处于**已完成(done)**状态 —— 它已结束上一轮对话,且没有在等待输入。
- 该终端不在活动 worktree 中,也不在任何当前正渲染前台终端的 worktree 中。
- 自 agent 完成以来,它未收到过任何按键输入。
- 该 agent 属于具有可恢复会话的 agent:Claude、Codex、Gemini、Antigravity、OpenCode、Pi、MiMo Code、Droid、Grok、Devin 或 OMP。
- 它至少已空闲达到所配置的空闲时长(默认 30 分钟)。
- 当前没有 mobile 会话正在驱动该终端。
- 没有任何编排(orchestration) Dispatch 仍处于未确定状态(
pending、dispatched或未知)。只有在运行时确认为completed、failed或circuit_broken之后,才再次允许休眠。 - 窗格 上不再有活动的子 agent / 队友名单(当子项仍处于挂接状态时,仅凭 provider 报告 "done" 是不够的)。
任何一项检查未通过的终端都会保持运行。如果一个 worktree 有多个 agent 窗格,它们会作为一个整体单元一起休眠,这样就不会出现一个 worktree 部分暂停的情况。
你也可以从侧边栏手动让 worktree 休眠(当存在嵌套子项时还包括 Sleep with Descendants(连同后代一起休眠))。参见 Worktrees。手动休眠会保留**已完成(finished)和已中断(interrupted)**的可恢复会话,以便重新打开 worktree 时仍能用相同的 resume 标志重新启动 —— 它不会仅仅因为 窗格 不再"活动"就抹掉这些会话记录。
调节空闲时长
在 Agent hibernation 开关下,Hibernate after(多久后休眠) 用于设置一个已完成的后台 agent 需要空闲多少分钟,DevAgent 才会将其暂停。
- 默认:30 分钟。
- 范围:1 分钟 到 24 小时。
- 计时从 agent 最后一次
done更新开始;任何按键、新的输出,或返回该 agent 的终端 标签页 都会重置计时。
较长的时长以更少的暂停换取内存节省;较短的时长会更积极地暂停,但代价是下次切回时需要恢复。
查找处于休眠的 worktree
侧边栏的筛选菜单控制是否显示休眠中的 worktree。如果你经常隐藏它们,可以在 设置 → 快捷键 下为 Toggle Sleeping Workspaces(切换休眠工作区显示) 分配快捷键,无需打开筛选菜单即可显示或隐藏它们。
恢复
当你打开一个休眠的 worktree 时,DevAgent 会用它在 Agent 会话历史中所用的相同 resume 标志重新启动 agent CLI —— 例如 claude --resume <id>、codex resume <id> 等 —— 从而让对话、工作目录以及 provider 会话从上次中断处继续。无需点击任何东西;恢复会作为将终端带回前台过程的一部分自动发生。
恢复还会复用 DevAgent 首次打开该 agent 时捕获的启动命令、参数以及私有环境变量。
如果 agent CLI 因任何原因无法恢复该会话(会话记录已被删除、provider 轮换了会话 ID),终端会打开到一个全新的提示符,而先前的会话记录仍会保留在该 agent 的会话历史中。
限制
只有上面列出的可恢复 agent 才会休眠。Cursor CLI、Hermes、Copilot、Trae 以及其他不可恢复的终端会保持运行。
后续步骤
- Agent 会话历史 —— 手动恢复任何过往会话,包括 DevAgent 未曾休眠的那些。
- 热切换 Codex 账号 —— 无需重启会话即可切换活动的 Codex 登录,可与休眠功能协同工作。