记忆系统,上下文处理+mem0

This commit is contained in:
2026-04-13 23:37:30 +08:00
parent f6a43302d2
commit d3d41b20d7
13 changed files with 262 additions and 56 deletions

View File

@@ -4,6 +4,33 @@
## 记录
### [CL-20260413-2320] 2026-04-13 23:20 — 集成 Mem0 记忆系统:滑动窗口 + 跨会话长期记忆
- **tags**: Mem0, 记忆系统, 上下文管理, 长期记忆, Ollama, embedding, 滑动窗口
- **affected_files**:
- art-agent/backend/app/memory.py新建
- art-agent/backend/app/agent/loop.py
- art-agent/backend/app/config.py
- art-agent/backend/app/api/chat.py
- art-agent/backend/requirements.txt
- art-agent/backend/.env
- art-agent/frontend/src/lib/api.ts
- art-agent/frontend/src/app/page.tsx
- .gitignore
- **what**: 集成 Mem0 开源版作为统一记忆方案,一次性解决两个延期方案:上下文管理(滑动窗口截断)和跨会话长期记忆(事实提取+语义检索)
- **why**: 当前对话全量透传无截断,长对话会超 token 上限且费用线性增长;且每次会话从零开始无法记住用户偏好
- **decisions**:
- 选择 Mem0 OSS 自部署(非平台托管),完全本地化,数据在 ./data/qdrant
- DeepSeek 作为事实提取 LLM复用现有 key成本极低
- Ollama nomic-embed-text 作为本地 embedding免费768维性能足够
- 不做静默降级Ollama 不可用 → 阻止启动search 失败 → SSE error 中断对话add 失败 → SSE warning 告知用户
- 用 asyncio.run_in_executor 异步执行 memory.add(),不阻塞用户体验
- **notes**:
- 测试时创建了 data/qdrant 目录(含测试记忆数据),已加入 .gitignore
- Ollama 需要作为后台服务保持运行
- 首次 Mem0 初始化约需 5-8 秒(创建 Qdrant collection
- 解决了延期方案 [context-window-management] 和 [mem0-long-term-memory]
- **source_chat**: [Mem0 记忆系统集成](mem0-memory-integration)
### [CL-20260413-1130] 2026-04-13 11:30 — 修复 SDXL 模型 404 错误:补全 Replicate 版本 hash
- **tags**: bug修复, Replicate, SDXL, 模型配置, 404
- **affected_files**: