関連: Hermes-Agent

Hermes Agent は、同じ profile で複数セッションを同時に動かすこと自体は想定内。 ただし、同じ profile は config / memory / skills / sessions / cron / gateway state / state.db を共有する。 「同じ人格・同じ記憶で並行する」ための単位であって、完全な隔離単位ではない。

判断

同じ profile + 別セッションなら、ふだん使いでは問題にしなくてよい。 Gateway を動かしながら CLI で話す、別々の調査セッションを開く、cron が走っている横で作業する、くらいは許容範囲。

避けたいのは、同じ session ID を複数プロセスから resume すること。 DBとして壊れにくくても、会話の意味論が壊れる。 片方が見ていない assistant response や tool result が同じ transcript に混ざる可能性がある。

運用ルール

  • 普段は同一 profile + 別 session でよい
  • トピックが変わるなら /new/clear で切る
  • 同じ session を複数端末で --resume / --continue しない
  • コード編集を並列化するなら hermes -w で worktree mode を使う
  • 人格・権限・memory・gateway を分けたいなら profile を分ける
  • 同じ profile の gateway を複数起動しない
  • config / tools / skills / memory の変更は、複数セッションから同時にやらない

profileを分ける判断

profile は「並行セッションのため」より、「状態を分けるため」に使う。 以下のどれかを分けたいなら profile を切る。

  • SOUL / persona
  • memory / user profile
  • toolsetや安全制約
  • gateway bot token
  • cron jobs
  • authやprovider設定

Discord safe profile のような権限分離は profile 分離が正しい。 一方で、同じイリスとして複数の話題を処理するだけなら、同じ profile の別 session で足りる。

注意

~/.hermes をNFS/SMB/FUSE上に置くと、SQLite WALとの相性で並行性が落ちる。 Hermes側はWAL失敗時にfallbackするが、ローカルディスク前提のほうが安全。

根拠

  • Hermesのprofileは、独立したHermes home directoryとして定義される
  • session履歴はprofile内の state.db に保存される
  • 実装上、state.db はWAL modeとwrite retryで、gateway + CLI + worktree agents の共有を想定している