コンテンツにスキップ

セッション・メモリ・コンテキスト

「セッション」「メモリ」「コンテキスト」は、どれも会話にまつわる言葉なので混ざりやすい三つです。設定画面のメモリとコンテキストを開くと、永続メモリ・予算・圧縮・コンテキストエンジンといった項目が並び、何を調整しているのか掴みづらく感じます。

この章では、その三つを「会話の中でデータがどこに、どれだけ、いつまで残るか」という一本の流れで捉え直します。流れが見えると、圧縮や予算という設定が「節約のための面倒な制約」ではなく「有限な資源をうまく使うための仕組み」だと分かります。

セッションの中にあるコンテキストの窓と、セッションをまたいで残るメモリの関係。会話の要点がメモリへ流れ、次の会話でコンテキストへ戻る循環を示した図

三つの言葉を区別する

まず、ざっくりした定義を持ちましょう。

  • セッション: 一つの会話のまとまり。「このテーマで相談した一連のやり取り」の単位です。Hermesは過去のセッションを保存していて、後から検索して再開できます。
  • コンテキスト: モデルがいま読んでいる「作業机の上」。今回のやり取りでモデルに毎ターン渡される情報の窓で、容量に上限があります。
  • メモリ: セッションをまたいで残る長期記憶。会話が終わっても消えず、将来のセッションで参照されます。

机の比喩で続けます。コンテキストは机の上の広さで、一度に広げられる紙の量には限りがあります。セッションはその机で進めている一つの案件。メモリは、案件が終わったあとに引き出しへしまっておくメモで、次に同じ人と話すときに取り出せます。

この三つは保持される場所と寿命が違います。コンテキストは「今この会話の間だけ」、セッションは「保存され検索・再開できる」、メモリは「セッションをまたいで長く」です。

コンテキストはなぜ有限なのか

モデルには、一度に受け取れる情報量の上限があります。会話が長くなるほど、これまでのやり取りが積み重なってコンテキストを圧迫し、やがて上限に近づきます。上限を超えると、古い内容が押し出されたり、応答が不安定になったりします。

ここが多くの設定項目の出発点です。「長い会話でだんだん挙動が変わる」「最初に伝えた前提を忘れたように見える」といった現象は、たいていコンテキストが一杯に近づいたサインです。だからHermesには、机が一杯になる前に手を打つ仕組みが用意されています。それが圧縮です。

圧縮 ─ 机が一杯になる前に古い紙を要約する

メモリとコンテキスト設定の既定では、コンテキストエンジンに compressor が選ばれています。これは、古い会話を要約して空きを作る方式です。机の上が埋まってきたら、古い紙の内容を一枚のメモに要約して置き換える、というイメージです。

圧縮の挙動は、いくつかの数値で決まります。なぜその値なのかを添えて見ると、意味が通ります。

設定既定値なぜそうするか
圧縮しきい値0.5(上限の50%)早めに圧縮を始めると、上限ぎりぎりで破綻する事故を避けられる。小さいほど早く要約し、大きいほど原文を長く保つ
圧縮目標0.2(上限の20%程度に)一度の圧縮で十分な空きを作り、すぐ次の圧縮が走るのを防ぐ
保護する直近メッセージ20(直近20件)今まさに参照している最新のやり取りは要約せず原文で残し、文脈の鮮度を保つ

つまり圧縮は「上限の半分まで来たら、直近20件は手をつけず、それより古い部分を要約して全体を2割程度に絞る」という動きをします。これらは既定のまま使えるよう調整された値で、まずは触らないのが無難です。長期タスクで挙動が気になり始めたときに、しきい値を 0.50.7 の範囲で動かす程度から試します。

圧縮は便利ですが、要約である以上、細部は失われます。だから重要な決定や成果物は、コンテキストの圧縮任せにせず、プロジェクトのファイルへ書き出しておくと再現性が上がります。揮発しやすいコンテキストと、消えないファイルを使い分けるわけです。

メモリ ─ 会話が終わっても残る記憶

コンテキストが「今の会話の机」なら、メモリは「引き出しのメモ」です。永続メモリ(既定オン)は、将来のセッションで役立つ事実や作業文脈を保存し、次回以降に参照します。ユーザープロファイル(既定オン)は、あなたの好みや継続的な指示を短いプロファイルとして維持します。

ここで自然な疑問が出ます。メモリが便利なら、なぜ「予算」という上限があるのか。理由は、メモリもまた毎ターンのコンテキストを消費するからです。引き出しのメモは、使うときに机の上へ広げます。広げる量が多いほど、肝心の会話に使える机が狭くなります。だからメモリ予算 2200 文字、プロファイル予算 1375 文字といった上限が設けられています。

増やせば多くを覚えていられますが、その分だけ毎回のコンテキストを食います。まず既定値で使い、重要な事項が頻繁に欠落するときだけ段階的に増やす、という順序が推奨されます。これは「コンテキストという有限資源を、会話とメモリでどう配分するか」という配分の問題なのです。

メモリの保存先を選べる理由

メモリには保存先(プロバイダー)の選択肢があります。既定は空欄で、通常は組み込み(builtin)メモリに解決されます。これに加えて、Hindsight(Vectorizeが提供する外部メモリAPI)やHoncho(外部またはセルフホストのメモリ)を選べます。

なぜ外部プロバイダーがあるのか。組み込みメモリはこのアプリの中で完結しますが、チームで記憶を共有したい、より大規模・高度な想起を使いたい、といった場合に外部サービスへ預ける選択肢が要るからです。ただし外部プロバイダーはAPIキーなどの資格情報が必要で、データの預け先も増えます。個人利用では組み込みのままで十分なことがほとんどです。

なお、デスクトップの画面で直接選べるのは上記のHindsightとHoncho(と既定の組み込み)ですが、Hermes本体はこれ以外にもOpenViking・Mem0・Supermemoryなど複数の外部プロバイダーに対応しており、設定ファイル(~/.hermes/config.yaml)やhermes memory setupから指定できます。選んだプロバイダーの細かな設定は、デスクトップのメモリ設定に加わった全項目編集用のモーダルからまとめて調整できます。

もう一つ、複数の記憶を統合する curator.consolidate という仕組みもありますが、これは設定画面ではなくバックエンドの設定ファイルで扱う項目で、既定でオフ(opt-in)です。画面のメモリ設定とは別系統なので、設定表には現れません。

なぜ機密作業ではメモリを切るのか

メモリは「覚えていてくれる」のが価値ですが、その裏返しで「覚えてほしくないものまで覚える」リスクがあります。共同端末を使う、顧客ごとに情報を分離する必要がある、保存してはいけないデータを扱う、といった場面では、永続メモリやユーザープロファイルをオフにすることを検討します。

特に、資格情報や秘密鍵をメモリへ保存させないことは重要です。メモリは将来のセッションで自動的に参照されるため、一度覚えた秘密が意図しない場面で引き出される可能性があります。「便利さ」と「忘れてくれる安心」はトレードオフで、扱うデータの機密度に応じて選ぶものです。この判断軸は入門: 安全に使う設定の段階的セキュリティとつながります。

セッションのライフサイクル

最後に、三つを一つの流れにまとめます。

セッション開始から会話・圧縮・終了を経て、要点がメモリに残り、次のセッションで再び注入されるまでの時間的な流れを示した図

  1. セッションが始まり、メモリとユーザープロファイルから関連情報がコンテキストへ注入されます。
  2. 会話が進むと、やり取りがコンテキストに積み重なります。
  3. コンテキストがしきい値に近づくと、古い部分が圧縮(要約)されます。
  4. セッションが終わっても、役立つ事実はメモリに残ります。
  5. 次のセッションで、そのメモリが再び参照されます。

この循環が見えると、設定画面の各項目が「この流れのどこを調整しているのか」で読めます。圧縮はステップ3、予算はステップ1とメモリの広げ方、プロバイダーはメモリの保存先、という具合です。なお、保存されたセッション自体は後から検索して再開できます(過去の会話を探す session_search のようなツールが用意されています)。

設定の具体的な値や画面の操作はメモリとコンテキストを、運用のコツは入門コースを参照してください。仕組みさえ掴めれば、あとは自分の使い方に合わせて微調整するだけです。

関連

© 2026 Hermes Desktop ガイド(非公式)。引用・部分転載は、出典として本ページへのリンクを添えていただければ歓迎します。記事全文の無断複製・転載はご遠慮ください。