24/7

在自己的服务器上 24/7 运行编程智能体

一个全天候工作的编程智能体需要三样东西:一台不休眠的机器、一个比你的连接活得更久的进程,以及一种在它需要你时能及时察觉的方式。下面介绍实现每一项的方法,从 tmux、systemd 到会话守护进程,以及你的订阅带来的限制。

在自己的服务器上 24/7 运行编程智能体

简要回答

把智能体放在一台永不休眠的机器上(VPS 或家里常开的机器)。用能比 SSH 会话活得更久的东西来运行它:交互使用时用 tmux,用 systemd 用户服务(开启 lingering)在开机时拉起 tmux,或者用一个持有会话的守护进程。给每个并行会话分配独立的 git worktree。通常让 24/7 智能体停下来的不是硬件,而是套餐的用量限制:Claude 套餐每五小时重置一次,另外还有每周限额。

笔记本上的编程智能体,盖子一合就停了。把它搬到一台常开的机器上是容易的部分。人们常常跳过的是:进程守护(什么让进程保持存活,重启后又由什么把它拉起来)、并行会话之间的隔离,以及用量限制——它会远早于硬件让智能体停下来。本指南针对 Claude Code、Codex 和其他终端智能体,逐一讲解这些问题。

云端还是自有服务器

先决定你是否真的需要一台机器。各家厂商现在都能替你运行智能体:

厂商云端(如 Claude Code 云端会话、Codex 云端任务)你自己的服务器或家用机器
部署连接 GitHub(Claude 也可以上传本地代码仓库包)一台 VPS 或常开的机器,加上安装和认证
环境每个会话一台隔离的虚拟机,由脚本配置;闲置后回收你的工具链、你的数据库、你的机密信息,持久保存
网络与私有服务默认受限(域名白名单);访问不到你的私有网络这台机器能访问的一切:VPN、tailnet、预发布数据库
智能体仅限一家厂商任何 CLI:Claude Code、Codex、OpenCode、Grok Build、agy
费用消耗套餐用量(Anthropic:不单独收取计算费用)消耗套餐用量,外加每月几欧元的服务器费用

如果你的项目托管在 GitHub 上、能用一个配置脚本完成构建,厂商云端是最省事的。可以从 Anthropic 的云端会话文档开始;claude --cloud "…" 能直接在终端里启动一个。当智能体需要只有你的机器才有的东西,或者你想让多家厂商的智能体并排工作时,就选自己的服务器。VPS 选购指南介绍了配置选择和当前价格。家里的 Mac mini 也行,只要关掉休眠。

进程守护

交互式智能体是终端程序。除非有别的东西托住终端,否则它们会随终端一起结束。从最简单到最稳健,你有四种选择。

1. tmux

tmux new -A -s main
cd ~/src/api && claude        # detach: Ctrl-b d · re-attach: tmux attach -t main

tmux 能扛住断线,但扛不住重启。它是交互式工作的合适工具,也是 Anthropic 文档推荐的、在远程机器上让 Remote Control 会话保持存活的方式。我们的 tmux、mosh 与 Tailscale 指南里有智能体所需的配置。

2. systemd + tmux,重启后自动恢复

交互式 TUI 需要终端,所以不能直接作为服务运行。但你可以让 systemd 在开机时启动一个分离状态的 tmux 会话。以普通用户身份创建 ~/.config/systemd/user/agents.service:

[Unit]
Description=tmux session for coding agents

[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -d -s main
ExecStop=/usr/bin/tmux kill-session -t main

[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now agents.service
sudo loginctl enable-linger "$USER"     # start user services at boot, without a login

这样恢复的是一个空会话,而不是你的对话。恢复对话是另一步(见下文重启时会发生什么)。

3. 定时运行的无头任务

对于周期性任务,比如每晚升级依赖、分拣新 issue 或重新生成文档,就不用 TUI 了。在 cron 或 systemd timer 中运行 claude -p "…" 或 codex exec "…"。没有人在场批准任何操作,所以要有意识地设置权限模式和允许列表。具体做法见安全地以完整权限运行智能体。

4. 会话守护进程

最稳健的选择是一个持有智能体会话的进程:由它启动会话、保存对话记录,并让你从任何地方接入。Claude Code 的 Remote Control 服务器模式(claude remote-control)就是一种。它默认最多支持 32 个并发会话,可通过 --capacity 调整,但你仍需在 tmux 或服务中运行它。agy remote-control start 会把 Antigravity 的守护进程注册为系统服务。第三方工具(Maude 也是其中之一)会部署自己的守护进程,同时管理多个智能体。

并行会话与 worktree

两个智能体编辑同一份检出,会互相覆盖对方的改动。给每个会话分配独立的 git worktree——一个共享仓库历史、但拥有独立工作目录和分支的副本:

git worktree add ../api-auth -b feature/auth
git worktree add ../api-billing -b fix/billing
# one tmux window per worktree, one agent per window

Claude Code 可以替你完成这一步:claude --worktree feature-auth(或 -w)会在 .claude/worktrees/ 下基于新分支创建一个 worktree,并在其中启动会话。详见 worktree 文档。

一台服务器能承载多少会话,取决于它们运行的东西,而不是智能体本身。一个实用的经验法则是:第一个会话 4 GB,之后每个需要构建或测试的会话再加 1–2 GB;如果每个 worktree 都跑自己的开发服务器或数据库,还要更多。添加新会话前,先在繁忙时段观察一下 free -h。磁盘占用也会累积,因为每个 worktree 都有自己的 node_modules。

额度与速率限制

只有套餐允许智能体持续工作,24/7 的服务器才有意义,所以在做计划之前先看清限制:

  • Claude(Pro、Max)。根据 Anthropic 的用量限制说明,用量限制每五小时重置一次,另外还有每周限额。多个并行会话共用同一份额度。你可以在“设置 → 用量”中查看当前用量。
  • Codex(ChatGPT 套餐)。Plus 及同类套餐使用滚动的五小时窗口,还可能有每周限额。本地 CLI 和云端任务共用一份额度。你的套餐详情请看 OpenAI 的 Codex 价格页面。
  • API 密钥。没有套餐窗口,但按 token 付费,所以一个失控的循环不会停下,而是一直花钱。请在服务商控制台中设置消费上限。

实际上,“24/7”指的是只要有活可干、额度也够,智能体随时都能工作,而不是一整天满负荷运转。把耗时长的任务排到你不在的时候,并做好它在下次重置前停下来的准备。

重启时会发生什么

内核更新、服务商维护和内存不足被杀进程,都会让东西重启。智能体的对话保存在磁盘上,所以什么都不会丢,但也没有什么会自己重新启动:

  • Claude Code:claude --continue 会恢复当前目录下最近的一次对话,claude --resume 则让你挑选一个。
  • Codex:codex resume --last,或用 codex resume 打开选择列表。
  • tmux:tmux 服务端没了,你的窗口布局也随之消失。上面的 systemd 单元会重新创建会话。tmux-resurrect 之类的插件也能恢复布局。

服务器宕机时正在进行的事情,比如改到一半的文件或正在跑的测试,都需要手动检查。这也是让智能体经常提交的又一个理由。

用手机盯着

全天候运行的智能体会在一些意想不到的时刻需要你:一个权限请求、一个问题、一个待审阅的已完成任务。你可以选择:接入 tmux 的 SSH 应用,免费但没有通知;厂商的 Remote Control 应用,每个智能体各用各的;用 ntfy 钩子实现推送,详见在手机上批准权限请求;或者一个全都能做的应用。

Maude 正是为这种场景打造的。它通过 SSH 部署一个守护进程,在服务器上 24/7 运行你的会话,关闭应用后会话照常继续,并且在你添加的任意数量服务器上支持 Claude Code、Codex、OpenCode、Grok Build 和 Antigravity。你会得到带“允许 / 拒绝”的推送通知、一个列出待处理事项的收件箱,以及每个会话独立的 git worktree、diff 审阅和终端。当一个智能体的额度用完时,你可以把会话连同一份工作进展简报交给另一个智能体。每个智能体仍需各自的套餐或 API 密钥。应用在免费试用 3 天后为每周 $2.99,或在免费试用 7 天后为每年 $59.99。

常见问题

我的订阅允许 24/7 使用吗?
硬件可以全天运行,能完成多少工作取决于套餐的限制。Claude 套餐每五小时重置一次,另外还有每周限额;ChatGPT 套餐为 Codex 提供滚动的五小时窗口,也可能有每周限额。API 密钥没有窗口限制,但按 token 计费。
一台 VPS 能承载多少个智能体会话?
取决于会话运行的内容。一个粗略的起点是:第一个会话 4 GB,之后每个需要构建或运行测试的会话再加 1–2 GB。给每个会话分配独立的 git worktree,添加更多会话前先用 free -h 观察内存。
服务器重启时,我的智能体会怎样?
进程和所有 tmux 会话都会消失,但对话保存在磁盘上。用 claude --continue 或 claude --resume,以及 codex resume --last 恢复它们。开启 lingering 的 systemd 用户服务可以在开机时把 tmux 会话拉起来。
能在家里的 Mac mini 上 24/7 运行 Claude Code 吗?
能。关闭系统睡眠(例如 sudo pmset -a sleep 0),使用有线网络,并通过 Tailscale 或一个主动向外连接的应用访问它。Remote Control 和 tmux 在上面都能用;Mac 一旦休眠,一切都会暂停。
能在同一台服务器上同时运行 Claude Code 和 Codex 吗?
能。它们是相互独立的 CLI,登录和配置目录(~/.claude 和 ~/.codex)都是分开的。把它们放在不同的 tmux 窗口或 worktree 中运行,避免编辑同一批文件。

你的智能体,全天候在线

会话在你的服务器上昼夜运行;需要你的时候,手机会告诉你。支持 iOS 和 Android。

Download Maude on the App Store Get Maude on Google Play