快速结论:这是 LobeChat 设置页中“启用记忆功能”开关被 Tooltip 组件包裹,导致表单无法将切换事件传递给 Switch 组件,因此没有触发后端持久化 API。优先检查该开关的代码结构,移除外层 Tooltip 让 Switch 成为表单项的直接子组件。
适用环境:LobeChat Cloud(官方云端部署)、Web 桌面浏览器(Chrome)、Ubuntu 系统。
最快修复方案:暂无官方发布的一键修复补丁。需修改源码 src/features/Settings/memory/features/Memory.tsx,移除 Switch 外层的 Tooltip 包裹,让 Switch 成为表单项的直接子组件。
注意事项:上述修复来自 GitHub Issue 的分析结论,属于代码层面的修复建议,尚未在正式版本中验证。如不需要 Tooltip,可直接删除;如需保留提示文案,建议将 Tooltip 移到标签或描述区域,而非包裹受控的 Switch 组件。
问题场景
在 LobeChat 的 Settings > Memory 页面中,点击切换“启用记忆功能”开关为开启状态后,刷新页面(F5),开关会自动恢复为“关闭”状态。使用 Chrome 开发者工具 Network 面板抓包,发现切换开关时仅触发了 PostHog 埋点请求(e/?...),完全没有发出任何保存设置的后端 API 请求(如 /api/user/settings)。而 get-session 鉴权请求正常返回 200 OK,说明网络与登录状态正常。
报错原文
[Bug] Memory settings toggle ("启用记忆功能") does not persist on page refresh (missing API persistence call)
No settings persistence API call (e.g., /api/user/settings) is initiated.
The toggle silently reverts to OFF.
原因分析
根据 Issue 中的网络抓包和代码分析,可能原因如下:
根因:在 Memory.tsx 中,“启用记忆功能”的 Switch 组件被 Tooltip 组件包裹。LobeChat 设置表单中的具名表单项(Form Item)会把 value(checked)和 onChange 注入到直接子组件。由于 Tooltip 是直接子组件,而 Switch 被包裹在内部,导致表单属性被传给 Tooltip(Tooltip 会忽略这些属性),Switch 收不到表单的 onChange 回调。
连锁反应是:
- 用户切换开关时,仅更新内存中的 UI 显示状态;
- 表单的
onValuesChange回调未被触发; setSettings()未被调用,userService.updateUserSettings()未执行;- 后端没有任何持久化请求发出;
- 刷新页面后,前端重新从后端拉取数据,开关回到未修改的默认值。
对比其他工作正常的设置开关(如 isDevMode、enableProxy、telemetry 等),它们的 Switch 都是表单项的直接子组件,没有 Tooltip 包裹。
环境排查
- LobeChat 版本:最新 Cloud 版(Issue 报告时)
- 部署方式:官方云端(app.lobehub.com)
- 操作系统:Ubuntu
- 浏览器:Chrome(需使用开发者工具 Network 面板抓包验证)
- 相关源码文件:
src/features/Settings/memory/features/Memory.tsx
解决步骤
- 验证问题:打开
app.lobehub.com/settings/memory,打开开发者工具 Network 面板(F12),点击“启用记忆功能”开关,确认 Network 面板中只有 PostHog 埋点请求,没有/api/user/settings请求。 - 定位源码:检查
src/features/Settings/memory/features/Memory.tsx文件中表单项的结构,重点查看第 34-45 行附近“启用记忆功能”的配置。 - 修改代码:将表单项的 children 改为直接使用
<Switch />组件,移除 Tooltip 包裹:
{
children: <Switch disabled={!canManageMemory} />,
name: 'enabled',
valuePropName: 'checked',
}
- 保留 Tooltip 提示(可选):如果仍需提示文案,将 Tooltip 移动到标签(label)或描述(description)区域,不要包裹受控的 Switch。
- 本地或部署构建:完成代码修改后,需重新编译构建并部署才能生效。
验证方法
修改并部署后,重新打开 app.lobehub.com/settings/memory,点击“启用记忆功能”开关为开启状态,观察 Network 面板出现 /api/user/settings 请求并发成功;按 F5 刷新页面,开关应保持“开启”状态不变。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug] Settings back navigation returns Home instead of the previous page](https://www.chat-gpts.plus/wp-content/uploads/2026/08/18312-523c601e-768x403.jpg)

