内蔵メモリ
Memoh に標準搭載されているデフォルトのメモリバックエンドで、Memoh の抽出/検索フローに接続します。次をサポートします。
- 会話からのメモリ抽出
- チャット時のセマンティック検索
- 手動での作成・編集
- メモリ圧縮とストア全体の再構築
動作のしくみ
内蔵プロバイダーは graph モードで動作します。メモリのノードとエッジは唯一の正となるデータとして PostgreSQL に保存され、そこから Markdown ビュー(Bot ワークスペース内の memory/ bundle と MEMORY.md)が派生して、Agent が読み書きできます。
セマンティック検索は、その上に重ねる任意のレイヤーです。
| レイヤー | ストレージ | 必要なもの | 提供されるもの |
|---|---|---|---|
| Graph(常時有効) | PostgreSQL のメモリノード/エッジ | メインデータベースのみ | 構造化されたリコール、メモリ間の関係、圧縮、再構築 |
| セマンティックインデックス(任意) | pgvector データベース | Compose スタックの [pgvector] データベースに加えて、プロバイダーで embedding モデルを選択していること | メモリノードに対するベクトル類似度検索 |
embedding モデルを選んでいない場合や pgvector を設定していない場合でも、プロバイダーは graph のみのモードでそのまま動作し、セマンティック検索だけがスキップされます。
作成する
- Memory Providers を開きます。
- Add Memory Provider をクリックします。
- Name を入力し、Provider Type で
builtinを選びます。 - Create をクリックします。
設定
| フィールド | 説明 |
|---|---|
| Embedding Model | 任意。いずれかのモデルプロバイダーの embedding モデルです。選択すると(かつ pgvector が利用可能なら)メモリノードがベクトル化され、セマンティック検索が有効になります。空のままにすると graph のみのモードです。 |
Edit と Delete は通常どおり使えます。
依存関係
graph のみ
メインの PostgreSQL 以外に追加の依存はありません。
セマンティックインデックス
デフォルトの Docker Compose スタックには pgvector サービスが含まれており、config.toml にも対応するセクションがあります。
toml
[pgvector]
enabled = true
host = "pgvector"
port = 5432
user = "memoh"
password = "memoh123"
database = "memoh_vector"
sslmode = "disable"その上で、プロバイダーで Embedding Model を 1 つ選びます。ベクトルは選択したモデルプロバイダー(OpenAI、Gemini、Ollama など)で生成されるため、そのプロバイダーで embedding モデルが利用できる必要があります。
Bot に割り当てる
- Bots → Bot
- 一般 → Memory Provider
- 保存
選択していない場合、実行時にこのプロバイダーは使われません。
設定後
個々のメモリは、Bot の メモリ タブで管理します。
- 手動で新規作成
- 会話から抽出
- 検索・編集・削除
- メモリストアの圧縮・再構築
日常の操作は 長期メモリ を参照してください。