関連: 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 の共有を想定している