Mem0
Mem0 は Qwen Code を外部メモリーサービスに接続します。メイン CLI パッケージに含まれているため、@qwen-code/external-context-mem0 をインストールしたり、このパス用に別の MCP サーバーを登録したりしないでください。
Connect
これをユーザー設定 (~/.qwen/settings.json) にマージしてから、信頼されたプロジェクトで Qwen Code を再起動します。modelProviders と同様に、envKey は資格情報変数を指し、トップレベルの env フィールドがその値を供給できます。
{
"env": {
"MEM0_API_KEY": "<your-provider-key>"
},
"memory": {
"mem0": {
"baseUrl": "https://your-mem0-endpoint.example",
"protocol": "mem0-v2",
"envKey": "MEM0_API_KEY"
}
}
}この単一ファイル設定ではシェルのエクスポートは不要です。JSON 内の資格情報はプレーンテキストです。ユーザー設定に保持し、リポジトリにコミットせず、レポートでファイルを共有しないでください。あるいは、トップレベルの env エントリを省略し、起動シェルまたは ~/.qwen/.env でキーを設定します。空でないプロセス環境値は .env の値より優先され、.env の値は settings.env より優先されます。
エンドポイントのオリジンを使用し、必要に応じてリバースプロキシのプレフィックスを付けますが、/v2/memories/search や他のオペレーションパスを追加しないでください。サービスが実際に実装している契約を選択してください。
mem0-v2(デフォルト): PolarDB 形式のAuthorization: Token、limitを使用した V2 検索、V1 書き込み。mem0-v3: Mem0 Platform V3、Authorization: Token、V3 検索・追加。mem0-oss-2026-08: ピン留めされた OSS REST 契約、X-API-Key、/searchと/memories。
これらは完全な契約であり、汎用のバージョン互換性ではありません。未知のバージョンや異なるリクエスト・レスポンス形状には、URL をリネームするのではなく検証済みのアダプターが必要です。過去のプリセット ID も引き続き受け付けられ、aliyun-polardb-mysql-2026-08 は過去の top_k 検索フィールドと生の検索内容を保持します。
http://your-endpoint:8080 のような信頼された PolarDB アドレスには、追加で "allowInsecureHttp": true が必要です。プレーン HTTP は資格情報を暗号化せずに送信します。この設定はプライベートエンドポイントを到達可能にしたり、IP ホワイトリストをバイパスしたりするものではありません。
Qwen は external-context を自動で登録し、context_search を検出します。Qwen に外部メモリーの検索を指示します。各ターンで自動的に呼び出されたり送信されたりすることはありません。オペレーター設定、セッション設定、または --mcp-config 内の同名サーバーは競合するため、組み込みパスに切り替える際は手動設定を削除してください。その名前のワークスペース設定およびプロジェクトの .mcp.json エントリはオーバーライドされます。既存の MCP 優先順位により同名の拡張サーバーもシャドーイングされるため、バンドルパスを使用する際は高度な external-context 拡張を無効にしてください。重複確認を避けるため、古い手動書き込み確認フックも削除します。同じマッチャーを持つユーザーフックはバンドルの確認を置き換えません。
Scope and writes
デフォルトのユーザー/リポジトリスコープは再起動後も持続し、Git サブディレクトリからも開始できます。リポジトリを移動したり別のチェックアウトを使用したりするとスコープは変化し、一時的な --worktree やエージェント分離ワークツリーも含まれます。ワークツリー間で既知のスコープを再利用するには、V2/OSS は scope.userId を、V3 は scope.appId を設定します。オプションの scope.agentId は V2/OSS のみに適用されます。スコープ識別子はプロバイダー側のアクセス制御ではありません。
検索はデフォルトで読み取り専用です。保存を有効にするには、memory.mem0 内に "enableWrites": true を追加し、対話型 CLI を再起動して、Qwen に特定のコンテンツの保存を指示します。自動インストールされるフックは、YOLO モードを含め、正確なコンテンツの承認を求めます。拒否した場合、書き込みリクエストは送信されません。書き込みには infer: false が使用されます。
PolarDB は、これらの直接インポート用に JSON エンコードされた単一ユーザーのメッセージ配列を返すことがあります。mem0-v2 は結果が infer: false でマークされている場合、そのメッセージの正確なテキストを復元します。過去の aliyun-polardb-mysql-2026-08 プリセット、通常のテキスト、および他のプロトコルは変更されません。
ノンインタラクティブ/ACP セッションおよびフックが無効化されたセッションは検索のみを保持します。ベア/セーフモード、信頼されていない/仮フォルダー、SSH ワークスペースではこのローカルバインディングは有効化されません。ワークスペース設定でバインディングを設定することはできません。
stored は有効な同期 ID が返されたことを意味します。accepted は非同期リクエストが受け入れられたことを意味し、永続化が完了したわけではありません。failed は明確な拒否を意味します。再試行前に報告された原因を修正してください。unknown は書き込みが発生した可能性があることを意味します。自動で再試行しないでください。
Options and troubleshooting
envKey のデフォルトは MEM0_API_KEY です。別の資格情報変数を参照し、上記のいずれかのソースでその値を定義するために使用します。過去の credentialEnv フィールドは互換エイリアスとして残っています。両方のフィールドが設定されている場合、名前は一致する必要があります。競合する名前は資格情報をサイレントに選択するのではなくエラーを生成します。timeoutMs のデフォルトは 5000 で、1 から 30000 の間です。
資格情報の欠落やプロバイダーエラーについては MCP 接続ステータスを確認してください。タイムアウトにはエンドポイントのルーティング、送信元 IP ホワイトリスト、サービスの可用性を確認する必要があります。401/403 は資格情報と選択されたプロトコルの確認が必要です。資格情報をログや問題レポートに貼り付けないでください。
ソースチェックアウトの場合、dist/mem0/main.js と dist/mem0/write-confirmation.js が存在するように一度ビルドしてバンドルします。インストールされたメインパッケージには両方が同梱されています。この機能には変更を含むメイン CLI リリースが必要です。スタンドアロンの Mem0 パッケージを公開する必要はありません。