外观
持久会话与 Agent 管理
SSH 断开不应终止训练或 Agent。tmux 管理通用终端会话;Herdr 在此基础问题上进一步面向 Coding Agent 提供状态和工作区视图。
tmux
bash
tmux new -s experiment
tmux ls
tmux attach -t experiment
tmux kill-session -t experiment默认前缀是 Ctrl-b:
| 操作 | 快捷键 |
|---|---|
| 分离会话 | Ctrl-b d |
| 新建窗口 | Ctrl-b c |
| 下/上一个窗口 | Ctrl-b n / Ctrl-b p |
| 垂直/水平分屏 | Ctrl-b % / Ctrl-b " |
| 在 pane 间移动 | Ctrl-b 后按方向键 |
| 进入复制模式 | Ctrl-b [ |
推荐每个研究项目或实验批次一个命名会话。tmux 能保持进程,却不能替代日志、Checkpoint 和作业调度:服务器重启或进程崩溃时,会话本身无法恢复训练状态。
一个清晰布局可以是:训练进程、实时日志、GPU 监控各占一个 pane。不要在多个 pane 中同时编辑同一文件,也不要把 pane 中的临时输出当作唯一实验记录。
Herdr
Herdr 的官方定位是 “to coding agents what tmux is to terminals”。它在 Agent 所在机器上运行,每个 Agent 使用真实终端,并在一个界面中显示 working、blocked、done 等状态;服务保持会话,使你关闭电脑后仍能通过 SSH 重新连接。
官方提供脚本、Homebrew 和 Nix 安装方式。安装命令具有供应链风险,执行管道脚本前应先查看内容;具体命令以 安装文档 为准。
Herdr 适合:
- 同时推进多个仓库或 worktree。
- 快速发现哪个 Agent 正在等待输入。
- 从另一台电脑或手机重新接入。
- 让 Claude Code、Codex、OpenCode 等共享一致的会话入口。
使用时仍要把边界写在仓库指令中,并让每个 Agent 负责独立目录或 worktree。会话复用器解决“进程在哪里”,不解决代码冲突、权限过宽和错误任务拆分。
如何选择
| 需要 | 选择 |
|---|---|
| 运行训练、服务和普通 Shell | tmux |
| 管理多个 Coding Agent 并观察状态 | Herdr |
| 已有成熟 tmux 配置,只偶尔使用 Agent | 继续使用 tmux |
| Agent 与普通任务混合 | 两者可以并存,但避免重复嵌套过深 |
无论选择哪个工具,长期任务都应输出日志、定期保存状态,并能从一条明确命令恢复。