長期メモリ
Memoh の構造化された長期メモリにより、Bot は複数のセッションをまたいで、以前に残した事実を活用できます。メモリ タブを使う前に、まず Bot に Memory Provider を設定してください。
前提条件
- メモリプロバイダー で 1 つ作成します(内蔵、Mem0、OpenViking など)。
- Bot の 一般 タブを開きます。
- Memory Provider で選択します。
- 保存します。
プロバイダーを選択していなければ、使用中のメモリバックエンドはありません。
何をするものか
メモリエントリの保存・取得・検索は、現在のプロバイダーが実装します。プロバイダーのタイプによって、内蔵のメモリグラフ、pgvector のベクトル、外部 API のいずれかになります。ユーザーがメッセージを送ると、Memoh は関連するメモリを取り出して、そのときのコンテキストに含めようとします。
このページで扱うのは長期メモリです。セッションが長くなりすぎたときに短くするのは別の話で、コンテキスト圧縮 を参照してください。
画面での操作
メモリの作成
- New Memory:手入力で 1 件作成します。
- From Conversation:既存の会話からメモリとして抽出します。
検索と管理
- Search:id またはテキストで絞り込みます。
- Edit:内容を編集します。
- Delete:不要になったら削除します。
メモリ圧縮(注意:セッション圧縮ではありません)
メモリが溜まってきたら、メモリ タブでストレージ側に Compact を実行できます。重複の統合、古いエントリの除去、ノイズの圧縮を行います。
パラメーター:
- Ratio:圧縮率。
0.8、0.5、0.3など。値が低いほど積極的に圧縮します。 - Decay Days:任意。この日数より古いメモリだけを圧縮対象にし、新しいメモリには触れません。
これは コンテキスト圧縮 とは別物です。後者は単一のセッション内で prompt を短くするもので、ストアにある長期メモリエントリの保存のされ方や統合結果は変更しません。
Rebuild
Rebuild は現在の設定でストア全体を再インデックスします。embedding モデルを変更したとき、インデックスが不整合になったとき、新しい設定で全件を処理し直したいときに便利です。進捗は画面で確認できます。
ステータス
メモリ タブには、その Bot のメモリバックエンドの Connected / Error が表示されます。トラブルシューティングの際は、まずここを確認してください。
使用状況
合計件数やインデックスが追いついているかなどを確認できます。状況を把握してから方針を調整しましょう。
「セッション内の会話」との比較
| 概念 | 対象範囲 | 操作場所 | 変更内容 |
|---|---|---|---|
| メモリ圧縮 | 長期メモリプロバイダー | メモリ タブ | ストア内のエントリの統合・整理のされ方を変える |
| コンテキスト圧縮 | 現在のセッション | ステータス表示または /compact | 要約によってこのセッションの履歴を短くし、以降のターンで使う |
「セッションをまたぐノイズ」を減らしてメモリストアを整理したい → メモリ圧縮 を使います。
「このセッションが長くなりすぎた」を解消したい → コンテキスト圧縮 を使います。
Bot との関係
- チャット中は、設定に従ってメモリを検索します。
- どのバックエンドや embedding を使うかはプロバイダー側で設定します。メモリプロバイダー を参照してください。
- 長期メモリは、Bot の「個性と事実」を支える大きな情報源です。