Skip to content
FunCoding

Search

Search docs, Skills and MCP

外部 Mem0 记忆服务

连接内置适配器,选择协议与 scope,并明确写入审批和未知结果。

This page has not been translated into English yet. The original Chinese version is shown below.

Mem0 连接外部记忆服务,已包含在主 CLI 包中,不需要另装 @qwen-code/external-context-mem0 或手工注册 MCP。

配置连接

在用户设置中加入,再在可信项目重启:

{
  "memory": {
    "mem0": {
      "baseUrl": "https://memory.example.com",
      "protocol": "mem0-v2",
      "envKey": "MEM0_API_KEY"
    }
  }
}

地址是占位示例。Key 可从非空进程环境、用户 .env 或 settings.env 提供,优先级依次降低;envKey 是变量名,默认 MEM0_API_KEY。credentialEnv 是旧别名,同时出现必须名称相同,否则报错。

baseUrl 为服务 origin,可带反向代理前缀,不加具体 /v2/memories/search 操作路径。timeoutMs 默认 5000,合法范围 1–30000。

协议

名称契约
mem0-v2(默认)PolarDB 风格 Token 认证,V2 search 用 limit,V1 write
mem0-v3Mem0 Platform V3,Token 认证,V3 search/add
mem0-oss-2026-08固定 OSS REST,X-API-Key,/search 和 /memories

这些是完整请求响应契约,不是任意服务版本的兼容别名。历史 aliyun-polardb-mysql-2026-08 保留 top_k 和原始搜索内容,不应只改 URL 就推断兼容。

可信 HTTP 私网端点还需 allowInsecureHttp:true,凭据会明文传输;这不解决路由或来源 IP 白名单。

注册冲突与查询

内置路径自动注册 external-context 并发现 context_search;按用户任务搜索,不在每轮自动召回或发送内容。

operator/session/--mcp-config 中同名 server 会冲突,应移除旧手工配置。工作区和项目 .mcp.json 同名项被覆盖,同名扩展也被现有 MCP 优先级遮蔽;使用内置路径时应禁用旧 advanced extension,并移除旧手工写确认 Hook,避免重复提示。

scope 与工作区

默认用户/仓库 scope 跨重启、从 Git 子目录启动保持一致;移动仓库或另一个 checkout 会改变,包括临时 worktree。要共享已知 scope,V2/OSS 设置 scope.userId,V3 设置 scope.appId;scope.agentId 只适用于 V2/OSS。

这些标识是查询范围,不是服务商访问控制。工作区设置不能配置此 binding;bare/safe、未信任或 provisional、SSH 工作区不启用它。

写入必须显式开启

enableWrites:true 后重启交互 CLI,才能请求保存。内置 Hook 展示并询问准确内容,YOLO 也要确认;拒绝不发写请求。非交互/ACP 或禁用 Hooks 的会话仍只搜索。

写入使用 infer:false。mem0-v2 对标记 infer:false 的 PolarDB 单用户消息 JSON 数组恢复原文本;历史 preset、普通文本和其他协议不做同样转换。

状态下一步
stored返回有效同步 ID,表示已存储
accepted异步接收,不代表持久化完成
failed明确拒绝,先修原因再重试
unknown可能已写入,不自动重试以免重复

401/403 查 Key 和协议,超时查路由、白名单与服务可用性。源码运行需构建出 dist/mem0/main.js 与 write-confirmation.js;主发布包已包含它们。