Memory Analysis function disregards the Base_URL and API_KEY of the Provider already configured in “.env”

这个报错发生在 LobeChat 自托管 Docker 环境中,当 Memory Analysis(记忆分析)等记忆类功能的前端模型配置为空时,后端不会像日常对话一样回退读取 .env 中的通用 Provider 密钥,而是遍历用户 vault 后打印大量 "skipping provider" 日

快速结论:这个报错发生在 LobeChat 自托管 Docker 环境中,当 Memory Analysis(记忆分析)等记忆类功能的前端模型配置为空时,后端不会像日常对话一样回退读取 .env 中的通用 Provider 密钥,而是遍历用户 vault 后打印大量 “skipping provider” 日志。优先排查是否为记忆模块单独配置专用环境变量(MEMORY_USER_MEMORY_*_API_KEY 等)。

适用环境:LobeChat 2.2.14,Web(桌面浏览器),Windows 客户端,Edge 浏览器,Docker 自托管部署。

最快修复方案:为记忆分析、记忆人格写入、记忆嵌入分别添加专用环境变量(如 MEMORY_USER_MEMORY_GATEKEEPER_PROVIDERMEMORY_USER_MEMORY_LAYER_EXTRACTOR_PROVIDERMEMORY_USER_MEMORY_EMBEDDING_PROVIDER 及其对应的 MODELAPI_KEYBASE_URL),社区用户已验证此方法有效。

注意事项:该方案目前为社区确认的可用方案,但仍属于设计上的“缺口”——记忆管线不会像日常对话那样继承通用 Provider 的 .env 配置;后续版本是否修复此行为尚不确定。另外,使用第三方网关时,PROVIDER 值通常仍需设为 openai

问题场景

用户在 LobeChat 自托管 Docker 环境中使用“Memory Analysis”“Memory Persona Writer”“Memory Embedding”等记忆分析功能。在设置 UI 中定义了模型,但未在记忆模块中单独填写 Base_URLAPI_KEY,同时已在 .env 中配置了 OpenRouter、OpenAI、智谱、通义千问等 Provider 的 URL 和 Key。触发记忆分析功能后,后端持续输出大量报错日志。

报错原文

[memory-extraction] skipping provider openrouter due to missing API key in user vault
[memory-extraction] skipping provider opencodecodingplan due to missing API key in user vault
[memory-extraction] skipping provider straico due to missing API key in user vault
[memory-extraction] skipping provider xiaomimimo due to missing API key in user vault
[memory-extraction] skipping provider longcat due to missing API key in user vault
[memory-extraction] skipping provider antgroup due to missing API key in user vault
[memory-extraction] skipping provider chatgpt due to missing API key in user vault
[memory-extraction] skipping provider ollama due to missing API key in user vault
...
[memory-extraction] skipping provider nvidia due to missing API key in user vault
[memory-extraction] skipping provider fireworksai due to missing API key in user vault
[memory-extraction] skipping provider zenmux due to missing API key in user vault
[memory-extraction] skipping provider internlm due to missing API key in user vault

原因分析

根据 Issue 中的代码分析(resolveRuntimeAgentConfig 函数),记忆提取服务的凭证解析逻辑与日常聊天不同:

  • 它首先构建 Provider 顺序(首选 Provider → Agent 配置的 Provider → 用户 vault 中所有 Provider),然后仅从用户 vault 中查找 API Key。
  • 如果 vault 中未找到,就打印 “skipping provider” 警告并跳过。
  • 只有在所有 Provider 都遍历完后,才会回退到系统配置凭证——但仅限专门的记忆 Agent 环境变量(如 MEMORY_USER_MEMORY_*_API_KEY)。

可能原因:记忆管线的 `.env` 回退机制只认专门的记忆 Agent 环境变量,不认通用的 Provider 环境变量(如 OPENROUTER_API_KEYOPENAI_API_KEY)。因此即使这些 Key 在普通聊天中可用,记忆提取流程也读不到。“skipping provider” 日志只是遍历用户(空的)vault 时产生的噪音。

环境排查

  • 确认 LobeChat 版本为 2.2.14(自托管 Docker)。
  • 确认当前部署平台为 Docker,客户端为 Windows + Edge。
  • 检查 .env 中是否存在专门的记忆 Agent 环境变量(如 MEMORY_USER_MEMORY_GATEKEEPER_PROVIDER 等),而不是仅仅依赖通用的 Provider 变量。
  • 确认在使用第三方网关时,PROVIDER 值是否设置为 openai(OpenAI 兼容 API)。

解决步骤

  1. 打开 .env 文件,为记忆分析、记忆人格写入、记忆嵌入分别添加专用环境变量。例如:
MEMORY_USER_MEMORY_GATEKEEPER_PROVIDER=openai
MEMORY_USER_MEMORY_GATEKEEPER_MODEL=<your-model>
MEMORY_USER_MEMORY_GATEKEEPER_API_KEY=<your-api-key>
MEMORY_USER_MEMORY_GATEKEEPER_BASE_URL=<your-base-url>

MEMORY_USER_MEMORY_LAYER_EXTRACTOR_PROVIDER=openai
MEMORY_USER_MEMORY_LAYER_EXTRACTOR_MODEL=<your-model>
MEMORY_USER_MEMORY_LAYER_EXTRACTOR_API_KEY=<your-api-key>
MEMORY_USER_MEMORY_LAYER_EXTRACTOR_BASE_URL=<your-base-url>

MEMORY_USER_MEMORY_EMBEDDING_PROVIDER=openai
MEMORY_USER_MEMORY_EMBEDDING_MODEL=<embedding-model>
MEMORY_USER_MEMORY_EMBEDDING_API_KEY=<your-api-key>
MEMORY_USER_MEMORY_EMBEDDING_BASE_URL=<your-base-url>
  1. 如果使用第三方网关(OpenAI 兼容 API),将 PROVIDER 保持为 openai,通过 BASE_URL 指向网关地址。
  2. 重启 LobeChat 容器使环境变量生效。
  3. 再次调用“Memory Analysis”功能,观察后端日志是否不再出现大量 “skipping provider” 报错。

验证方法

重新触发记忆分析功能,检查后端日志中是否仍有 [memory-extraction] skipping provider ... 的批量输出;同时确认记忆分析结果能够正常生成或返回。若日志消失且功能正常,则说明修复成功。也可在 LobeChat 界面中验证记忆分析结果是否已按预期写入。

参考来源

lobehub/lobe-chat #18718

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 20457

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注