快速修复
# 一键:把 BASE_URL / AUTH_TOKEN 写进 worker 配置并重启
echo "BASE_URL=$ANTHROPIC_BASE_URL" > ~/.claude-mem/.env && echo "AUTH_TOKEN=$ANTHROPIC_AUTH_TOKEN" >> ~/.claude-mem/.env && claude-mem restart
你会遇到什么
用 DeepSeek 等第三方模型,从 OAuth 切到 API Key 之后,/mem-search 报 No previous sessions found——明明之前有记忆。
你以为是记忆丢了,其实是鉴权信息不一致:worker 不读取 ANTHROPIC_BASE_URL / AUTH_TOKEN 环境变量,需要手动同步到 ~/.claude-mem/.env(上游 Issue #2666)。
本文路径:快速修复(30 秒一段命令)→ 一步步排查(可跳读)→ 原理与变体(症状/原因/证据)。赶时间直接跳到「快速修复」。
为什么会这样
claude-mem 的 worker 自己维护一份环境配置(~/.claude-mem/.env),不跟随你 shell 里的环境变量。切换鉴权方式后,shell 里已经是新配置,但 worker 还拿着旧的——于是会话捕获失败,搜索自然没有结果。同步 .env + 重启 worker + 重新触发一次会话即可。
来源:CSDN zxqsoftware/161293220(2026-05)+ 上游 Issue #2666。
关键认知是:记忆捕获是旁路,不是主进程的一部分。claude-mem 的 worker 是独立进程,它订阅会话事件、自己维护一份鉴权配置(~/.claude-mem/.env)——你 shell 里的 ANTHROPIC_* 环境变量只影响 Claude Code 主进程,worker 一概不读。
切鉴权方式后,主进程换上新 key 正常聊天,worker 却还在用旧配置,于是"捕获链"是断的:会话根本没被记下来,搜索当然"没有以前的会话"。
记忆没有丢,是链路没通。所以修复必须三步齐做:同步 .env → 重启 worker(重新加载配置)→ 重触发一次会话(让新配置真正跑一遍捕获)。
一步步来
1. 同步鉴权到 worker 配置 — 必做
编辑 ~/.claude-mem/.env,把当前的 BASE_URL / AUTH_TOKEN(或 ANTHROPIC_* 对应值)写进去,与 shell 环境保持一致。
2. 重启 worker — 必做
claude-mem restart
3. 重新触发一次会话 — 必做
开一个新会话让它捕获,再 /mem-search 验证。
怎么确认修好了
claude-mem status && claude-mem search "上次的话题"
worker 就绪、搜索能返回结果即成功(切换鉴权后同步 .env + 重启是核心)。
其它环境的表现
| 环境 | 说明 |
|---|---|
| OAuth → API Key | 必须同步 ~/.claude-mem/.env 后重启 |
| DeepSeek 等第三方 | 以实际 BASE_URL/AUTH_TOKEN 为准 |
| 切换后无记忆 | 记忆没丢,捕获链没通,重触发会话 |
症状
DeepSeek 等第三方模型从 OAuth 切到 API Key 后,/mem-search 报 No previous sessions found。
原因
鉴权信息不一致;worker 不读取 ANTHROPIC_BASE_URL/AUTH_TOKEN 环境变量,需要手动同步到 ~/.claude-mem/.env(上游 Issue #2666)。
解法
- 手动同步
~/.claude-mem/.env的 BASE_URL / AUTH_TOKEN。 - 重启 worker(
claude-mem restart)。 - 重新触发一次会话捕获后再搜索。
验证证据
- CSDN zxqsoftware/161293220(2026-05)。
- 上游 Issue #2666。
适用工具 (1)
本问题方案已挂到下列工具的方案页——从工具页也能回到这里,双向可达。
claude-mem成套方案 (组合包)
这个问题包含在下列成套安装方案中。
来源与证据
← 会话与记忆 问题域 | 问题货架 | 遇到其它问题?去 问题空间 提交求助卡