跳转到内容

用 Hermes + pi + Reasonix 搭建 7×24 多智能体开发流水线(含随时远程查看方案)

用 Hermes + pi + Reasonix 搭建 7×24 多智能体开发流水线(含随时远程查看方案)

Section titled “用 Hermes + pi + Reasonix 搭建 7×24 多智能体开发流水线(含随时远程查看方案)”

本文整理自一次实际的方案调研:让三个 AI 编码智能体在 VPS 上长期协作——Hermes 负责总体调度,pi 负责拆解任务、写提示词、监督执行效果,Reasonix 负责具体开发执行,不达标就迭代。以及一个大家都会遇到的问题:怎么随时随地像看远程桌面一样,看到这三个终端的实时界面?

一、这套思路可行吗?——可行,且工具天生匹配

Section titled “一、这套思路可行吗?——可行,且工具天生匹配”

先明确三个工具的定位(均为真实开源项目,Star 数为撰写时数据):

工具 定位 可被调度的模式
Hermes(NousResearch/hermes-agent,★23 万) 自进化 Agent:TUI + 消息网关(Telegram/Discord/Slack/WhatsApp/Signal/Email)+ 内置 cron 调度 + 子代理 + SSH/Docker 终端后端 hermes gateway 常驻进程,支持 cron 定时任务、子代理、shell 操作远端
pi(pi-coding-agent) 编码 Agent(TUI 为主),本文的“拆任务 + 监督者” pi -p "任务" 一次性打印模式、管道 stdin、--system-prompt、-c 续会话
Reasonix(esengine/DeepSeek-Reasonix,★3.5 万) DeepSeek 原生编码 Agent,前缀缓存友好 reasonix run "任务" 一次性执行、流式输出 stdout,官方定位就是“适合管道”

关键前提:pi 和 Reasonix 都支持非交互式 one-shot 模式,这是 Hermes 能调度它们的根本。落地架构如下:

Hermes(常驻网关 + cron 调度)
└─ 下发任务 → pi -p "拆解任务,写 reasonix 的 prompt + 验收标准"
└─ 执行:reasonix run "按照 prompt 开发 XX"(退出码 + stdout)
└─ 验收:pi -p "检查 git diff / 跑测试 / 看结果,判定是否达标"
├─ 达标 → 记录归档,通知你
└─ 不达标 → pi 生成整改 prompt → 再次 reasonix run(限最大迭代次数)
  1. “达标判定”必须可执行化,不能靠读文本。pi 判“不达标”时如果只是读 Reasonix 的输出文字,会陷入瞎循环。正确做法:pi 先写好验收脚本(跑测试、lint、检查 git diff、curl 验证),用 exit code 判定,把“改哪里”精确到文件/函数级别写回 prompt。
  2. 成本与上下文:每轮迭代都是重跑一个 agent,token 消耗叠加。Reasonix 本来就是 DeepSeek 原生,成本低,但仍要设最大迭代轮数(如 3 轮)+ 每轮开始前 git commit 打 checkpoint,防止改坏回不去。
  3. 并发写冲突:pi 和 Reasonix 不要同时操作同一工作目录。用 git worktree 分目录,或干脆串行。
  4. 长期跑选 VPS 而不是家里电脑:这些都是调云端 API 的客户端(无需 GPU),VPS 选 2C4G 就够。家里电脑 24h 挂机有断电、断网、睡眠、公网暴露一堆问题。VPS 上用 systemd 守护 + 自动重启,比 tmux 裸跑稳。另注意:Hermes 原生没有飞书(官方支持 Telegram/Discord/Slack/WhatsApp/Signal/Email),飞书接入走的是社区桥,升级 Hermes 可能断,要有心理准备。

二、怎么随时登录查看执行情况?

Section titled “二、怎么随时登录查看执行情况?”

核心思路一句话:飞书当“控制面 + 通知面”,别拿它当“观看面”。飞书看不到流式输出是正常的,它本来就不该干这个。要找回命令行那种直观体验,把终端搬到任何设备上即可:

  • 方案 A:tmux + SSH(体验 100% 等同 iTerm2)——VPS 上每个 agent 一个命名会话,tmux attach -t hermes 随时回到现场;手机装 Termius / Blink(iOS)/ JuiceSSH(Android)SSH 进去就是实时流式输出。配 Tailscale 组网,SSH 只监听内网,不暴露公网端口。
  • 方案 B:ttyd 浏览器即终端——ttyd -p 7681 tmux attach -t hermes,任何设备开浏览器就是真实终端,还能输入。
  • 方案 C:Agent 面板(AionUi / Paseo 等,见第四节)。
  • 方案 D:飞书只做通知 + 控制——Hermes 内置 cron 每小时/每天推送进度摘要,任务完成/失败/超限时告警;tmux pipe-pane -o 'cat >> ~/logs/reasonix.log' 落盘日志,翻历史用 tail -f 或 grep;在飞书里发短指令控制(暂停/查状态/重启)。

三、在 VPS 上部署三个 agent,用 Web 方式“像远程桌面”一样看

Section titled “三、在 VPS 上部署三个 agent,用 Web 方式“像远程桌面”一样看”

如果你在 VPS 上开了 3 个终端界面跑 Hermes / pi / Reasonix,最贴近“远程桌面看多窗口”的 Web 方案是 tmux 分屏 + ttyd——一个网页里同时看到 3 个终端的实时界面,还能输入,断网重连不影响 agent 继续跑(agent 在 tmux 里,浏览器只是“窗户”)。

方案 A:tmux 3 窗格 + ttyd(最推荐)

Section titled “方案 A:tmux 3 窗格 + ttyd(最推荐)”
Terminal window
# VPS 上安装
apt install -y tmux ttyd # 或 brew install ttyd(macOS)
# 建一个 session,铺 3 个窗格,分别跑三个 agent
tmux new -s agents -d
tmux send-keys -t agents 'hermes' Enter # 左上
tmux split-window -h # 右上
tmux send-keys -t agents 'pi' Enter
tmux split-window -v -p 50 # 右下
tmux send-keys -t agents 'reasonix' Enter
tmux select-layout tiled # 自动均分
tmux attach -t agents # 本机也随时能 attach
# 用一个端口把整个 session 暴露成网页(-W 可写、-c 加密码)
ttyd -p 7681 -W -c admin:你的密码 tmux attach -t agents

浏览器打开 http://VPS_IP:7681 → 一个页面 = 3 个 agent 实时输出,和 iTerm2 一样流式,手机浏览器也能看。进阶玩法:用 nginx 写个聚合页,把 3 个 ttyd(各 attach 一个 session)iframe 进来,就是真正的“3 窗口桌面”。

安全(必做):ttyd 暴露公网等于裸奔,两个做法二选一——

Terminal window
# ① 只走 Tailscale 私有网(推荐):装好后访问 http://<tailscale-ip>:7681
curl -fsSL https://tailscale.com/install.sh | sh && tailscale up
# ② 或至少加 basic auth(上面命令里的 -c admin:密码 已包含)

方案 B:code-server(浏览器里的 VS Code + 多个终端 tab)

Section titled “方案 B:code-server(浏览器里的 VS Code + 多个终端 tab)”

想要 IDE 式体验、多个终端标签页、还能看文件 diff:

Terminal window
curl -fsSL https://code-server.dev/install.sh | sh
code-server --bind-addr 0.0.0.0:8443 --auth password

浏览器打开就是完整 VS Code,`Ctrl+`` 开 N 个终端 tab,每个 tab 跑一个 agent。缺点是比 ttyd 重,agent 进程仍建议放 tmux 里保活。

方案 C:Apache Guacamole(真·HTML5 远程桌面门户)

Section titled “方案 C:Apache Guacamole(真·HTML5 远程桌面门户)”

要字面意义的“远程桌面门户”——一个浏览器页面里多个 SSH/RDP/VNC 连接、标签页切换、连接分组、双因素认证。docker-compose 起 guacamole + guacd + postgres,浏览器打开添加 3 个 SSH 连接(每个连接可指定启动命令如 tmux attach -t agents)。企业级方案,重但最“像远程桌面”。

方案 D:tmate(零客户端临时查看)

Section titled “方案 D:tmate(零客户端临时查看)”

装 tmate,tmate show-messages 拿到 web URL,浏览器打开即可(默认走 tmate.io 中继,可自托管)。适合临时瞄一眼或分享给别人看。

除非你需要 GUI 应用,否则没必要——桌面会话断连容易出问题,而 tmux + ttyd 方案天然“进程与观看端解耦”,更适合 7×24 跑 agent。

四、Agent 管理面板横向对比(AionUi 之外的选择)

Section titled “四、Agent 管理面板横向对比(AionUi 之外的选择)”

如果你不想自己搭终端方案,也有现成的面板产品(Star 数为撰写时数据):

产品 Star 覆盖 Hermes/pi/reasonix 形态 定位
Paseo(getpaseo/paseo) ★1.4 万 ✅ pi(一级支持)、✅ Hermes(ACP 协议 hermes acp);❌ reasonix 自托管 daemon + iOS/Android/桌面/Web/CLI 五端 多 agent 并行编排,手机随时派活/查看,语音控制
AionUi ★3.2 万 ✅ Hermes/OpenClaw/Claude Code/Codex 等 20+;❌ pi/reasonix Web 面板 24/7 cowork,多 agent 状态总览
Codex Mate ★334 ✅ pi、OpenClaw、Claude Code、Codex、Gemini CLI、OpenCode 等;❌ Hermes/reasonix 本地优先 CLI + Web UI 统一会话浏览器 + OpenAI/Claude 兼容桥
ccboard ★91 ⚠️ 以 Claude Code 为中心 Rust 单二进制 TUI + Web 深度监控:会话、成本、MCP、配置、审计

诚实提醒:Reasonix 目前没有任何面板支持——它太新、太垂直,既没有 ACP 模式也没进任何 catalog。别指望面板管它。现实架构是混合:面板管 Hermes + pi 的调度和状态,Reasonix 用 tmux + tmux pipe-pane 落日志 + 手机 SSH/ttyd 看实时输出,飞书只收通知。这比把希望全押在一个面板上稳得多。

VPS(2C4G) + systemd 守护 Hermes gateway(自动重启,7×24 不依赖任何终端会话)
+ tmux 一个 session 三个 pane 跑 pi/reasonix 监督循环
+ Tailscale 组网
+ 平时:手机 Termius 或浏览器 ttyd 随时 attach 看实时输出(你要的 iTerm2 体验)
+ 异步:Hermes cron 把日报/失败告警推飞书,飞书里发指令控制

一句话总结:把“看现场”这件事从 IM 挪到 tmux/ttyd,IM 退化为通知和控制通道;把“达标判定”从读文本变成跑脚本;把进程交给 tmux/systemd 保活。这套组合拳下来,家里、地铁上、出差中都能随时盯住你的智能体流水线。