在SSH和tmux之间恢复Hermes | AI生成和翻译

Home 2026.06

问题:假设我们在服务器的SSH会话中运行Hermes Agent,然后取消它并退出。我们能在一个tmux会话中恢复它吗,或者反过来?

答案:

核心概念

是的,完全可以。你可以毫无障碍地在原始SSH会话和tmux会话之间切换你的Hermes Agent工作区。然而,理解这种切换在框架架构中的确切工作方式非常重要,因为根据你是想恢复进程还是恢复状态,有两种完全不同的实现方法。


方法一:通过Hermes原生会话管理恢复(推荐)

Hermes Agent原生将会话管理抽象为一个持久化的SQLite状态数据库(state.db)。每一个对话、记忆上下文和工具状态都由唯一的会话ID或可读的标题自动追踪。

如果你在Agent运行时突然终止或断开SSH终端:

  1. 操作系统可能通过挂断信号(SIGHUP)终止物理OS进程。
  2. Agent的进度和对话上下文安全地存储在数据库中。

要在tmux会话(或反过来)中恢复工作:

hermes --continue
# 或者使用简写标志:
hermes -c

注意: --continue-c标志会自动将你重新附加到最近的会话。如果你想要一个特定的过去会话,可以使用hermes sessions list列出它们,并通过hermes --resume <会话ID或标题>恢复。 你也可以在TUI中选择自动恢复行为,方法是在shell配置中设置环境变量export HERMES_TUI_RESUME=1


方法二:通过Linux进程持久化(tmux)恢复

如果你真正的目标是在SSH断开时不让Agent的运行终端进程被中断,你应该从一开始就在tmux内部启动Hermes。


Back Donate