Technical reference

メモリ設定リファレンス

このページでは、OpenClaw のメモリ検索に関するすべての設定項目を一覧にしています。概念的な概要については、以下を参照してください。

特に記載がない限り、メモリ検索のすべての設定は openclaw.json(またはエージェントごとの agents.list[].memorySearch オーバーライド)内の agents.defaults.memorySearch にあります。


プロバイダーの選択

キー 型 デフォルト 説明
enabled boolean true メモリ検索を有効または無効にする
provider string "openai" bedrock、deepinfra、gemini、github-copilot、local、mistral、ollama、openai、openai-compatible、voyage などの埋め込みアダプター ID。api がメモリ埋め込みアダプターまたは OpenAI 互換モデル API を指す、設定済みの models.providers.<id> を指定することもできます
model string プロバイダーのデフォルト 埋め込みモデル名
fallback string "none" プライマリが失敗した場合のフォールバックアダプター ID

provider が設定されていない場合、OpenClaw は OpenAI の埋め込みを使用します。Bedrock、DeepInfra、Gemini、GitHub Copilot、Mistral、Ollama、Voyage、ローカル GGUF モデル、または OpenAI 互換の /v1/embeddings エンドポイントを使用するには、provider を明示的に設定してください。provider: "auto" が残っているレガシー設定は、openai として解決されます。

provider が未設定の場合、レガシーの provider: "auto" が存在する場合、または provider: "none" で意図的に FTS 専用モードを選択している場合、埋め込みが利用できなくても、メモリの想起では語彙ベースの FTS ランキングを引き続き使用できます。

明示的に指定された非ローカルプロバイダーはフェイルクローズします。memorySearch.provider に Bedrock、DeepInfra、Gemini、GitHub Copilot、LM Studio、Mistral、Ollama、OpenAI、Voyage、または OpenAI 互換のカスタムプロバイダーなど、リモートバックエンドを使用する具体的なプロバイダーを設定し、そのプロバイダーが実行時に利用できない場合、memory_search は暗黙的に FTS 専用の想起を使用せず、利用不可の結果を返します。プロバイダーまたは認証の設定を修正するか、到達可能なプロバイダーに切り替えるか、意図的に FTS 専用の想起を使用する場合は provider: "none" を設定してください。

カスタムプロバイダー ID

memorySearch.provider は、ollama などのメモリ固有プロバイダーアダプター、または openai-responses / openai-completions などの OpenAI 互換モデル API 用のカスタム models.providers.<id> エントリを指すことができます。OpenClaw は、エンドポイント、認証、モデルプレフィックスの処理用にカスタムプロバイダー ID を維持しながら、埋め込みアダプターについてそのプロバイダーの api 所有者を解決します。これにより、複数 GPU または複数ホストの構成で、メモリ埋め込み専用の特定のローカルエンドポイントを使用できます。

json5
{  models: {    providers: {      "ollama-5080": {        api: "ollama",        baseUrl: "http://gpu-box.local:11435",        apiKey: "ollama-local",        models: [{ id: "qwen3-embedding:0.6b", name: "Qwen3 Embedding 0.6B" }],      },    },  },  agents: {    defaults: {      memorySearch: {        provider: "ollama-5080",        model: "qwen3-embedding:0.6b",      },    },  },}

API キーの解決

リモート埋め込みには API キーが必要です。ただし、Bedrock は代わりに AWS SDK のデフォルト認証情報チェーン(インスタンスロール、SSO、アクセスキー、または Bedrock API キー)を使用します。

プロバイダー 環境変数 設定キー
Bedrock AWS 認証情報チェーン、または AWS_BEARER_TOKEN_BEDROCK API キーは不要
DeepInfra DEEPINFRA_API_KEY models.providers.deepinfra.apiKey
Gemini GEMINI_API_KEY models.providers.google.apiKey
GitHub Copilot COPILOT_GITHUB_TOKEN、GH_TOKEN、GITHUB_TOKEN デバイスログインによる認証プロファイル
Mistral MISTRAL_API_KEY models.providers.mistral.apiKey
Ollama OLLAMA_API_KEY(プレースホルダー) --
OpenAI OPENAI_API_KEY models.providers.openai.apiKey
Voyage VOYAGE_API_KEY models.providers.voyage.apiKey

リモートエンドポイント設定

グローバルな OpenAI チャット認証情報を継承しない、汎用の OpenAI 互換 /v1/embeddings サーバーには provider: "openai-compatible" を使用します。

remote.baseUrlstring

カスタム API ベース URL。

remote.apiKeystring

API キーをオーバーライドします。

remote.headersobject

追加の HTTP ヘッダー(プロバイダーのデフォルトとマージされます)。

json5
{  agents: {    defaults: {      memorySearch: {        provider: "openai-compatible",        model: "text-embedding-3-small",        remote: {          baseUrl: "https://api.example.com/v1/",          apiKey: "YOUR_KEY",        },      },    },  },}

プロバイダー固有の設定

Gemini
キー 型 デフォルト 説明
model string gemini-embedding-001 gemini-embedding-2-preview もサポートします
outputDimensionality number 3072 Embedding 2 の場合:768、1536、または 3072
OpenAI 互換の入力タイプ

OpenAI 互換の埋め込みエンドポイントでは、プロバイダー固有の input_type リクエストフィールドを任意で使用できます。これは、クエリ埋め込みと文書埋め込みに異なるラベルを必要とする非対称埋め込みモデルに便利です。

キー 型 デフォルト 説明
inputType string 未設定 クエリ埋め込みと文書埋め込みで共有する input_type
queryInputType string 未設定 クエリ時の input_type。inputType をオーバーライドします
documentInputType string 未設定 インデックス/文書用の input_type。inputType をオーバーライドします
json5
{  agents: {    defaults: {      memorySearch: {        provider: "openai-compatible",        remote: {          baseUrl: "https://embeddings.example/v1",          apiKey: "${EMBEDDINGS_API_KEY}",        },        model: "asymmetric-embedder",        queryInputType: "query",        documentInputType: "passage",      },    },  },}

これらの値を変更すると、プロバイダーのバッチインデックス作成における埋め込みキャッシュ ID に影響します。上流モデルがラベルを異なるものとして扱う場合は、その後にメモリの再インデックスを実行してください。

Bedrock

Bedrock の埋め込み設定

Bedrock は AWS SDK のデフォルト認証情報チェーンに加えて OpenClaw が検証するベアラートークンを使用するため、API キーは設定に保存されません。OpenClaw が Bedrock 対応のインスタンスロールを持つ EC2 上で実行されている場合は、プロバイダーとモデルのみを設定します。

json5
{  agents: {    defaults: {      memorySearch: {        provider: "bedrock",        model: "amazon.titan-embed-text-v2:0",      },    },  },}
キー 型 デフォルト 説明
model string amazon.titan-embed-text-v2:0 任意の Bedrock 埋め込みモデル ID
outputDimensionality number モデルのデフォルト Titan V2 の場合:256、512、または 1024

サポート対象モデル(ファミリー検出および次元のデフォルトを含む):

モデル ID プロバイダー デフォルト次元数 設定可能な次元数
amazon.titan-embed-text-v2:0 Amazon 1024 256, 512, 1024
amazon.titan-embed-text-v1 Amazon 1536 --
amazon.titan-embed-g1-text-02 Amazon 1536 --
amazon.titan-embed-image-v1 Amazon 1024 --
amazon.nova-2-multimodal-embeddings-v1:0 Amazon 1024 256, 384, 1024, 3072
cohere.embed-english-v3 Cohere 1024 --
cohere.embed-multilingual-v3 Cohere 1024 --
cohere.embed-v4:0 Cohere 1536 256, 384, 512, 768, 1024, 1536
twelvelabs.marengo-embed-3-0-v1:0 TwelveLabs 512 --
twelvelabs.marengo-embed-2-7-v1:0 TwelveLabs 1024 --

スループット接尾辞付きのバリアント(例: amazon.titan-embed-text-v1:2:8k)と、リージョン接頭辞付きの推論プロファイル ID(例: us.amazon.titan-embed-text-v2:0)は、ベースモデルの設定を継承します。

リージョン: 次の順序で解決されます: memorySearch.remote.baseUrl のオーバーライド、models.providers.amazon-bedrock.baseUrl の設定、AWS_REGION、AWS_DEFAULT_REGION、最後にデフォルトの us-east-1。

認証: OpenClaw は最初に AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY または AWS_BEARER_TOKEN_BEDROCK を確認し、その後、標準の AWS SDK デフォルト認証情報プロバイダーチェーンへフォールスルーします。

  1. 環境変数(AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY)。ただし、AWS_PROFILE も設定されている場合を除く
  2. SSO(SSO フィールドが設定されている場合のみ)
  3. 共有認証情報および設定ファイル(fromIni、AWS_PROFILE を含む)
  4. 認証情報プロセス(AWS 設定ファイル内の credential_process)
  5. ウェブアイデンティティトークン認証情報
  6. ECS または EC2 インスタンスメタデータ認証情報

IAM 権限: IAM ロールまたはユーザーには次の権限が必要です。

json
{  "Effect": "Allow",  "Action": "bedrock:InvokeModel",  "Resource": "*"}

最小権限にするには、InvokeModel のスコープを特定のモデルに限定します。

text
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
ローカル(GGUF + llama.cpp)
キー 型 デフォルト 説明
local.modelPath string 自動ダウンロード GGUF モデルファイルへのパス
local.modelCacheDir string node-llama-cpp のデフォルト ダウンロードしたモデルのキャッシュディレクトリ
local.contextSize number | "auto" 4096 埋め込みコンテキストのコンテキストウィンドウサイズ。4096 は一般的なチャンク(128-512 トークン)を収容しつつ、重み以外の VRAM 使用量を制限します。リソースに制約のあるホストでは 1024-2048 に下げてください。"auto" はモデルの学習時の最大値を使用します。8B 以上のモデルでは推奨されません(Qwen3-Embedding-8B: 最大 40 960 トークンでは VRAM が約 32 GB に達する場合があります)。

まず公式の llama.cpp プロバイダーをインストールします: openclaw plugins install @openclaw/llama-cpp-provider。 デフォルトモデル: embeddinggemma-300m-qat-Q8_0.gguf(約 0.6 GB、自動ダウンロード)。ソースチェックアウトでは、引き続きネイティブビルドの承認が必要です: pnpm approve-builds、続いて pnpm rebuild node-llama-cpp。

スタンドアロン CLI を使用して、Gateway が使用するものと同じプロバイダーパスを検証します。

bash
openclaw memory status --deep --agent mainopenclaw memory index --force --agent main

数値の local.contextSize 値は、モデルの重みと要求された埋め込みコンテキストを一緒に収められるように、node-llama-cpp の GPU レイヤー自動配置にも使用されます。openclaw memory status --deep は、ランタイムが読み込まれた後に、最後に確認された llama.cpp のバックエンド、デバイス、オフロード、要求されたコンテキスト、タイムスタンプ付きメモリ情報を報告します。受動的なステータス確認ではモデルを読み込みません。

ローカル GGUF 埋め込みには、provider: "local" を明示的に設定します。hf: および HTTP(S) モデル参照は、明示的なローカル設定でサポートされています(node-llama-cpp のモデル解決を使用)が、デフォルトプロバイダーは変更されません。

インライン埋め込みのタイムアウト

sync.embeddingBatchTimeoutSecondsnumber

メモリのインデックス作成中に実行されるインライン埋め込みバッチのタイムアウトを上書きします。

未設定の場合はプロバイダーのデフォルトを使用します。local、ollama、lmstudio などのローカルまたはセルフホスト型プロバイダーでは 600 秒、ホスト型プロバイダーでは 120 秒です。ローカルの CPU 負荷型埋め込みバッチが正常ではあるものの遅い場合は、この値を増やしてください。


インデックス作成の動作

特記がない限り、すべて memorySearch.sync 配下です。

キー 型 デフォルト 説明
onSessionStart boolean true セッション開始時にメモリインデックスを同期する
onSearch boolean true コンテンツの変更を検出した後、検索時に遅延同期する
watch boolean true メモリファイルを監視し(chokidar)、変更時に再インデックス作成を予約する
watchDebounceMs number 1500 短時間に発生するファイル監視イベントをまとめるためのデバウンス期間
intervalMinutes number 0 分単位の定期的な再インデックス作成間隔(0 で無効化)
sessions.postCompactionForce boolean true Compaction によってトリガーされたトランスクリプト更新後に、セッションの再インデックス作成を強制する
chunking.tokensnumber

埋め込み前にメモリソースを分割する際に使用する、トークン単位のチャンクサイズ(デフォルト: 400)。

chunking.overlapnumber

分割境界付近のコンテキストを維持するための、隣接チャンク間のトークン重複数(デフォルト: 80)。


ハイブリッド検索の設定

すべて memorySearch.query 配下です。

キー 型 デフォルト 説明
maxResults number 6 注入前に返すメモリヒットの最大数
minScore number 0.35 ヒットを含めるための最小関連度スコア

また、memorySearch.query.hybrid 配下には次の設定があります。

キー 型 デフォルト 説明
enabled boolean true BM25 + ベクトルのハイブリッド検索を有効にする
vectorWeight number 0.7 ベクトルスコアの重み(0-1)
textWeight number 0.3 BM25 スコアの重み(0-1)
candidateMultiplier number 4 候補プールサイズの乗数

MMR(多様性)

キー 型 デフォルト 説明
mmr.enabled boolean false MMR 再ランキングを有効にする
mmr.lambda number 0.7 0 = 最大の多様性、1 = 最大の関連性

時間減衰(新しさ)

キー 型 デフォルト 説明
temporalDecay.enabled boolean false 新しさによるブーストを有効にする
temporalDecay.halfLifeDays number 30 N 日ごとにスコアが半減する

エバーグリーンファイル(MEMORY.md、memory/ 内の日付なしファイル)は減衰しません。

完全な例

json5
{  agents: {    defaults: {      memorySearch: {        query: {          maxResults: 6,          minScore: 0.35,          hybrid: {            vectorWeight: 0.7,            textWeight: 0.3,            mmr: { enabled: true, lambda: 0.7 },            temporalDecay: { enabled: true, halfLifeDays: 30 },          },        },      },    },  },}

追加のメモリパス

キー 型 説明
extraPaths string[] インデックスを作成する追加のディレクトリまたはファイル
json5
{  agents: {    defaults: {      memorySearch: {        extraPaths: ["../team-docs", "/srv/shared-notes"],      },    },  },}

パスは絶対パスまたはワークスペース相対パスにできます。ディレクトリは .md ファイルを対象に再帰的にスキャンされます。シンボリックリンクの処理はアクティブなバックエンドによって異なります。組み込みエンジンはシンボリックリンクをスキップしますが、QMD は基盤となる QMD スキャナーの動作に従います。

エージェント単位のエージェント横断トランスクリプト検索には、memory.qmd.paths ではなく agents.list[].memorySearch.qmd.extraCollections を使用します。これらの追加コレクションは同じ { path, name, pattern? } 形式に従いますが、エージェントごとにマージされ、パスが現在のワークスペース外を指す場合は明示的な共有名を保持できます。同じ解決済みパスが memory.qmd.paths と memorySearch.qmd.extraCollections の両方に存在する場合、QMD は最初のエントリを保持し、重複をスキップします。


マルチモーダルメモリ(Gemini)

Gemini Embedding 2 を使用して、Markdown とともに画像と音声をインデックス化します。

キー 型 デフォルト 説明
multimodal.enabled boolean false マルチモーダルインデックスを有効化
multimodal.modalities string[] -- ["image"]、["audio"]、または ["all"]
multimodal.maxFileBytes number 10485760 インデックス対象の最大ファイルサイズ(10 MiB)

対応形式:.jpg、.jpeg、.png、.webp、.gif、.heic、.heif(画像)、.mp3、.wav、.ogg、.opus、.m4a、.aac、.flac(音声)。


埋め込みキャッシュ

キー 型 デフォルト 説明
cache.enabled boolean true チャンクの埋め込みを SQLite にキャッシュ
cache.maxEntries number 未設定 キャッシュ済み埋め込み数のおおよその上限

再インデックスやトランスクリプト更新時に、変更されていないテキストが再度埋め込み処理されるのを防ぎます。キャッシュを無制限にする場合は maxEntries を未設定のままにし、再インデックスの最高速度よりディスク使用量の増加が重要な場合は設定します。設定すると、キャッシュが上限を超えた時点で、最終更新日時が古いエントリから順に削除されます。


バッチインデックス

キー 型 デフォルト 説明
remote.nonBatchConcurrency number 4 並列インライン埋め込み
remote.batch.enabled boolean false バッチ埋め込み API を有効化
remote.batch.concurrency number 2 並列バッチジョブ
remote.batch.wait boolean true バッチ完了を待機
remote.batch.pollIntervalMs number 2000 ポーリング間隔
remote.batch.timeoutMinutes number 60 バッチタイムアウト

gemini、openai、voyage で利用できます。大量のバックフィルでは、通常 OpenAI のバッチが最も高速かつ低コストです。

remote.nonBatchConcurrency は、ローカル/セルフホスト型プロバイダー、およびプロバイダーのバッチ API が有効でない場合のホスト型プロバイダーで使用されるインライン埋め込み呼び出しを制御します。小規模なローカルホストへの過負荷を避けるため、Ollama の非バッチインデックスではデフォルト値が 1 です。より大規模なマシンでは、より大きい値を設定してください。

これは、インライン埋め込み呼び出しのタイムアウトを制御する sync.embeddingBatchTimeoutSeconds とは別の設定です。


セッションメモリ検索(実験的)

セッションのトランスクリプトをインデックス化し、memory_search を通じて提示します。

キー 型 デフォルト 説明
experimental.sessionMemory boolean false セッションインデックスを有効化
sources string[] ["memory"] トランスクリプトを含めるために "sessions" を追加
sync.sessions.deltaBytes number 100000 再インデックスを行うバイト数のしきい値
sync.sessions.deltaMessages number 50 再インデックスを行うメッセージ数のしきい値

セッショントランスクリプトのヒットにも tools.sessions.visibility が適用されます。デフォルトの tree 可視性では、現在のセッションと、そのセッションから生成されたセッションのみが公開されます。DM など、別のセッションから、同じエージェントに Gateway 経由でディスパッチされた無関係なセッションを 呼び出すには、可視性を意図的に agent まで拡大してください(エージェント間の呼び出しも必要で、エージェント間ポリシーで許可されている場合のみ all)。

以下の例では、これらの設定を agents.defaults の下に配置しています。セッショントランスクリプトのインデックス化と検索を 1 つの エージェントだけに行わせる場合は、エージェント単位のオーバーライドに同等の memorySearch 設定を 適用することもできます。

同一エージェントで Gateway から DM を呼び出す場合:

組み込みバックエンド

json5
{  agents: {    defaults: {      memorySearch: {        experimental: { sessionMemory: true },        sources: ["memory", "sessions"],      },    },  },  tools: {    sessions: { visibility: "agent" },  },}

QMD バックエンド

json5
{  agents: {    defaults: {      memorySearch: {        experimental: { sessionMemory: true },        sources: ["memory", "sessions"],      },    },  },  memory: {    backend: "qmd",    qmd: {      sessions: { enabled: true },    },  },  tools: {    sessions: { visibility: "agent" },  },}

QMD を使用する場合、agents.defaults.memorySearch.experimental.sessionMemory と sources: ["sessions"] だけでは、トランスクリプトは QMD にエクスポートされません。 memory.qmd.sessions.enabled: true も設定してください。


SQLite ベクトル高速化(sqlite-vec)

キー 型 デフォルト 説明
store.vector.enabled boolean true ベクトルクエリに sqlite-vec を使用
store.vector.extensionPath string 同梱 sqlite-vec のパスを上書き

sqlite-vec が利用できない場合、OpenClaw は自動的にプロセス内のコサイン類似度へフォールバックします。


インデックスストレージ

組み込みのメモリインデックスは、各エージェントの OpenClaw SQLite データベース内の agents/<agentId>/agent/openclaw-agent.sqlite に保存されます。

キー 型 デフォルト 説明
store.fts.tokenizer string unicode61 FTS5 トークナイザー(unicode61 または trigram)

QMD バックエンド設定

有効にするには memory.backend = "qmd" を設定します。すべての QMD 設定は memory.qmd の下に配置されます。

キー 型 デフォルト 説明
command string qmd QMD 実行ファイルのパス。サービスの PATH がシェルと異なる場合は絶対パスを設定
searchMode string search 検索コマンド:search、vsearch、query
rerank boolean -- QMD の再ランキングをスキップするには、searchMode: "query" および QMD 2.1+ とともに false に設定
includeDefaultMemory boolean true MEMORY.md と memory/**/*.md を自動インデックス化
paths[] array -- 追加パス:{ name, path, pattern? }
sessions.enabled boolean false セッショントランスクリプトを QMD にエクスポート
sessions.retentionDays number -- トランスクリプトの保持期間
sessions.exportDir string -- エクスポート先ディレクトリ

searchMode: "search" は字句/BM25 のみです。OpenClaw はこのモードに対して、memory status --deep の実行中も含め、セマンティックベクトルの準備状況プローブや QMD 埋め込みの保守を実行しません。vsearch と query では、引き続き QMD ベクトルの準備完了と埋め込みが必要です。

rerank: false は QMD の query モードのみを変更し、QMD 2.1 以降が必要です。直接 CLI モードでは OpenClaw は --no-rerank を渡し、mcporter 経由の MCP モードでは QMD の統合クエリツールに rerank: false を渡します。QMD のデフォルトのクエリ再ランキング動作を使用する場合は、未設定のままにしてください。

OpenClaw は現在の QMD コレクションと MCP クエリ形式を優先しますが、必要に応じて互換性のあるコレクションパターンフラグや旧 MCP ツール名を試すことで、古い QMD リリースも引き続き動作させます。QMD が複数のコレクションフィルターへの対応を通知する場合、同一ソースのコレクションは 1 つの QMD プロセスで検索されます。古い QMD ビルドでは、コレクションごとの互換性パスが維持されます。同一ソースとは、永続メモリコレクション(デフォルトのメモリファイルとカスタムパス)がまとめてグループ化されることを意味します。一方、セッショントランスクリプトのコレクションは別のグループとして維持されるため、ソースの多様化では引き続き両方の入力が使用されます。

mcporter 連携

すべて memory.qmd.mcporter の下に配置されます。クエリごとに qmd を起動する代わりに、長時間稼働する mcporter MCP デーモンを介して QMD 検索をルーティングし、大規模モデルのコールドスタートのオーバーヘッドを削減します。

キー 型 デフォルト 説明
enabled boolean false リクエストごとに qmd を起動する代わりに、mcporter 経由で QMD 呼び出しをルーティング
serverName string qmd lifecycle: keep-alive を指定して qmd mcp を実行する mcporter サーバー名
startDaemon boolean true enabled が true の場合に mcporter デーモンを自動起動

mcporter がインストールされ PATH 上にあり、かつ qmd mcp を実行する mcporter サーバーが設定されている必要があります。クエリごとのプロセス起動コストを許容できる、より単純なローカル構成では無効のままにしてください。

更新スケジュール
キー 型 デフォルト 説明
update.interval string 5m 更新間隔
update.debounceMs number 15000 ファイル変更をデバウンス
update.onBoot boolean true 長期間稼働する QMD マネージャーを開く際に更新する。起動直後の更新をスキップするには false に設定
update.startup string off Gateway 起動時の任意の QMD 初期化:off、idle、または immediate
update.startupDelayMs number 120000 startup: "idle" 更新が実行されるまでの遅延
update.waitForBootSync boolean false 初回更新が完了するまでマネージャーを開く処理をブロック
update.embedInterval string 60m 埋め込み処理に別の実行間隔を設定
update.commandTimeoutMs number 30000 QMD メンテナンスコマンド(コレクションの一覧表示/追加)のタイムアウト
update.updateTimeoutMs number 120000 各 qmd update サイクルのタイムアウト
update.embedTimeoutMs number 120000 各 qmd embed サイクルのタイムアウト
制限
キー 型 デフォルト 説明
limits.maxResults number 4 検索結果の最大数
limits.maxSnippetChars number 450 スニペットの長さを制限
limits.maxInjectedChars number 2200 注入される合計文字数を制限
limits.timeoutMs number 4000 memory_search を含む、QMD を使用した検索中の QMD コマンドのタイムアウト。セットアップ、同期、組み込みフォールバック、および補助処理ではデフォルトのツール期限を維持
スコープ

QMD の検索結果を受け取れるセッションを制御します。session.sendPolicy と同じスキーマです。

json5
{  memory: {    qmd: {      scope: {        default: "deny",        rules: [{ action: "allow", match: { chatType: "direct" } }],      },    },  },}

提供時のデフォルトでは DM/ダイレクトのみが許可され、グループおよびその他のチャンネル種別は拒否されます。match.keyPrefix は正規化されたセッションキーに一致し、match.rawKeyPrefix は agent:<id>: を含む未加工のキーに一致します。

引用

memory.citations はすべてのバックエンドに適用されます。

値 動作
auto(デフォルト) スニペットに Source: <path#line> フッターを含める
on 常にフッターを含める
off フッターを省略(パスは引き続き内部でエージェントに渡される)

Gateway 起動時の QMD 初期化が有効な場合、OpenClaw は対象となるエージェントに対してのみ QMD を起動します。update.onBoot が true で、更新間隔または埋め込みメンテナンスが設定されていない場合、起動時にはブート更新用の単発マネージャーを使用し、完了後に閉じます。更新間隔または埋め込み間隔が設定されている場合、起動時に長期間稼働する QMD マネージャーを開き、ウォッチャーと間隔タイマーを管理できるようにします。update.onBoot: false がスキップするのは、起動直後の更新のみです。

QMD の完全な例

json5
{  memory: {    backend: "qmd",    citations: "auto",    qmd: {      includeDefaultMemory: true,      update: { interval: "5m", debounceMs: 15000 },      limits: { maxResults: 4, timeoutMs: 4000 },      scope: {        default: "deny",        rules: [{ action: "allow", match: { chatType: "direct" } }],      },      paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }],    },  },}

Dreaming

Dreaming は agents.defaults.memorySearch ではなく、plugins.entries.memory-core.config.dreaming で設定します。

Dreaming は単一のスケジュールされたスイープとして実行され、内部の light/deep/REM フェーズは実装の詳細として使用されます。

概念的な動作とスラッシュコマンドについては、Dreamingを参照してください。

ユーザー設定

キー 型 デフォルト 説明
enabled boolean false Dreaming 全体を有効または無効にする
frequency string 0 3 * * * Dreaming の完全なスイープを実行する任意の Cron 間隔
model string デフォルトモデル 任意の Dream Diary サブエージェントモデルの上書き
phases.deep.maxPromotedSnippetTokens number 160 MEMORY.md に昇格される各短期想起スニペットから保持する推定トークンの最大数。来歴メタデータは引き続き表示される

例

json5
{  plugins: {    entries: {      "memory-core": {        subagent: {          allowModelOverride: true,          allowedModels: ["anthropic/claude-sonnet-4-6"],        },        config: {          dreaming: {            enabled: true,            frequency: "0 3 * * *",            model: "anthropic/claude-sonnet-4-6",          },        },      },    },  },}

関連項目

Was this useful?
On this page

On this page