资讯 · 改写稿

关掉应用,Agent 还在跑:把会话搬进后台服务的做法

结论先给:让 Agent 在关掉应用后继续干活,关键不是加个开关,而是把会话与消息路由从应用进程里搬到一个常驻的守护进程里——应用从此只是它的一个客户端。

来源(V2EX,作者自述)讲的是一个叫 Runner 的项目在 0.13 版本里的改动:把核心拆成一个后台服务 runnerd,于是退出应用以后,chat 与 mission 仍能在后台继续跑,重新打开应用会连回原来的会话。作者提到项目这段时间获得了一些传播,已到 270+ stars。

为什么要搬进守护进程

在此之前,会话都跑在应用进程里:应用一退出或崩溃,所有 Agent 就被停掉,下次打开再恢复。0.13 把数据库、会话以及 crew 之间的消息路由都挪进了 runnerd,应用与 runner 命令都只是它的客户端。

搬进去之后,退出应用时可以选择「Keep them running」:chat 与 crew mission 在后台继续,crew 之间互发消息、向你提问也照常工作;重新打开应用,终端会恢复并连回原来还在跑的会话。来源还说明,不开应用也能直接用 runner 命令,需要时会自动拉起 runnerd。

崩溃与退出怎么处理

来源也坦白了一处限制:Runner 自身升级时仍会重启所有会话,然后自动恢复各自的对话。

本站计算——按「应用退出后继续跑」折算前台占用:若一个 crew mission 原本必须让应用窗口一直开着(例如 30 分钟),现在可以关掉应用让它后台跑。按每天 3 个这样的任务、每个 30 分钟计,一天约能腾出 1.5 小时的前台窗口占用;对需要同时开多个 Agent 的人来说,省下的是桌面空间和注意力,而不只是时间。

顺带接入的 CLI

来源称这一版还接入了 Antigravity CLI,目前支持的 Agent 命令行包括 Claude Code、Codex、Antigravity CLI、GitHub Copilot CLI 与 pi;模型列表从已登录的 CLI 中读取,可选用量档位,重启后能恢复对话,用量面板里也能看到相应额度。

容易踩的坑

把会话留在应用进程里:应用一崩溃,所有 Agent 一起停。

以为加了「后台运行」就万事大吉:来源说应用自身升级时仍会重启所有会话。

忽略退出快捷键的差异:macOS 上 ⌥⌘Q 会直接退出并停掉会话。

自检清单

常见问题

退出应用后 Agent 为什么还能跑?

来源把会话、数据库和 crew 之间的消息路由都挪进了后台服务 runnerd,应用与 runner 命令只是它的客户端,因此退出应用后 chat 与 mission 仍能在后台继续。

应用或服务崩溃会怎样?

来源称应用崩溃不影响会话;runnerd 自己崩溃时 Runner 会重新连上,连续崩溃会显示 Try again 与 Open log。

支持哪些 Agent 命令行?

来源称目前支持 Claude Code、Codex、Antigravity CLI、GitHub Copilot CLI 与 pi,模型列表从已登录的 CLI 中读取。

有什么已知限制?

来源坦言 Runner 自身升级时仍会重启所有会话,然后自动恢复各自的对话;此外 macOS 上 ⌥⌘Q 会直接退出并停掉会话。

来源参考

以上为外部来源;本文为 RefHub 用自己的结构重写,事实以来源页为准,价格与政策会变,请回源核对当日。

下一步:Agent 与自动化的区别,读 Agent 与自动化的区别;给长任务设花费上限,见 AI 预算熔断。