Skip to content

feat: 记忆层重构 — 跨 session 搜索 + mem0/ReMe 适配器 + 权限模型#17

Merged
robscc merged 2 commits intomainfrom
feat/memory-layer-refactoring
Mar 18, 2026
Merged

feat: 记忆层重构 — 跨 session 搜索 + mem0/ReMe 适配器 + 权限模型#17
robscc merged 2 commits intomainfrom
feat/memory-layer-refactoring

Conversation

@robscc
Copy link
Owner

@robscc robscc commented Mar 17, 2026

Summary

  • 新增 MemoryScope 权限模型:支持 SESSION / USER / CHANNEL / GLOBAL 四级记忆查询权限,控制跨 session 搜索的访问边界
  • BaseMemory 扩展:新增 cross_session_search() 接口,所有后端(Buffer / SQLite / Hybrid)均已实现
  • MemoryMessage 增强:新增 user_id / channel / memory_type 字段,支持记忆归属和分类
  • MemoryRecord 模型升级:新增持久化列 + 复合索引(ix_memory_user_time / ix_memory_channel_time
  • 数据库迁移run_migrations() 自动补充新列;migrate_memory.py 脚本从 session_id 格式推导 channel,从 sessions 表回填 user_id
  • mem0 适配器 (Mem0Memory):映射 BaseMemory 接口到 mem0 AsyncMemory API,支持语义检索 + 跨 session 搜索(pip install mem0ai
  • ReMe 适配器 (ReMeMemory):支持 Server 模式(HTTP API)和本地 buffer 模式,适配 ReMe 的个人记忆系统
  • MemoryFactory 扩展:新增 "mem0" / "reme" 后端选项,通过配置切换
  • Memory Search APIPOST /api/v1/memory/search(跨 session 搜索)+ GET /api/v1/memory/sessions/{id}/search(单 session 搜索)
  • config.py 新增配置项memory_mem0_config / memory_mem0_infer / memory_reme_server_url / memory_reme_agent_name

架构设计

┌─────────────────────────────────────────────────────────┐
│                    BaseMemory (ABC)                      │
│  add() / get_recent() / clear() / search()              │
│  cross_session_search(scope: MemoryScope)  ← 新增       │
├─────────┬──────────┬──────────┬──────────┬──────────────┤
│ Buffer  │ SQLite   │ Hybrid   │ Mem0     │ ReMe         │
│ Memory  │ Memory   │ Memory   │ Memory   │ Memory       │
│ (内存)  │ (持久化) │ (组合)   │ (语义)   │ (个人记忆)   │
└─────────┴──────────┴──────────┴──────────┴──────────────┘

MemoryScope 权限模型:
  SESSION  → 单 session 查询(默认,兼容旧行为)
  USER     → 同一用户的所有 session
  CHANNEL  → 同一渠道的所有 session
  GLOBAL   → 全局查询(管理员)

Test plan

  • 所有原有测试通过(470 tests passed)
  • 跨 session 搜索测试(SQLite / Buffer / Hybrid 三个后端)
  • MemoryScope 权限模型测试
  • mem0 适配器测试(Mock)
  • ReMe 适配器测试(Mock + 本地 buffer)
  • MemoryFactory 新后端测试
  • 迁移脚本测试(空库 / channel 推导 / user_id 回填 / 幂等性)
  • Memory Search API 集成测试(按 user / channel / global / session 搜索)

🤖 Generated with Claude Code

robscc and others added 2 commits March 18, 2026 07:58
重构 Agent 记忆层架构,新增跨 session 查询能力,支持可插拔的记忆后端。

核心变更:
- 新增 MemoryScope / MemoryAccessLevel 权限模型,支持 session/user/channel/global 四级权限
- BaseMemory 新增 cross_session_search() 接口,所有后端(Buffer/SQLite/Hybrid)均已实现
- MemoryMessage 新增 user_id / channel / memory_type 字段
- MemoryRecord 模型新增对应持久化列 + 索引
- 数据库迁移:run_migrations() 自动补充新列,migrate_memory.py 回填历史数据
- 新增 mem0 适配器(Mem0Memory):支持语义检索、跨 session 搜索
- 新增 ReMe 适配器(ReMeMemory):支持 Server 模式和本地 buffer 模式
- MemoryFactory 扩展支持 "mem0" / "reme" 后端
- 新增 /api/v1/memory/search API(POST 跨 session + GET 单 session)
- config.py 新增 mem0/reme 配置项

测试:470 tests passed(含 88 memory + 10 API 集成 + 5 迁移测试)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Keep both memory endpoints and notifications endpoints from both branches.
Keep both memory_records and sub_agent_tasks migration columns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@robscc robscc merged commit b61c2ed into main Mar 18, 2026
@robscc robscc deleted the feat/memory-layer-refactoring branch March 18, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant