Skip to content

feat(memory): 实现用户显式管理的长期记忆 V1 - #20

Merged
Flandern1211 merged 1 commit into
developfrom
feature/long-term-memory
Aug 3, 2026
Merged

feat(memory): 实现用户显式管理的长期记忆 V1#20
Flandern1211 merged 1 commit into
developfrom
feature/long-term-memory

Conversation

@Flandern1211

Copy link
Copy Markdown
Collaborator

概述

实现长期记忆 V1:用户可在设置页显式维护跨会话的输出偏好,并在 Chat 和 Generation 中只读注入。

主要变更

  • 新增 internal/memory 模块

    • MySQL 持久化 user_memories
    • 固定六类输出偏好校验、空白归一化与长度限制
    • 原子 upsert、幂等真实删除、用户删除级联
    • 统一、安全的偏好 Prompt 渲染
  • 新增认证保护的用户记忆 API

    • GET /api/v1/user/memories
    • PUT /api/v1/user/memories/:type
    • DELETE /api/v1/user/memories/:type
  • 设置页新增“长期记忆”面板

    • 支持查看、保存、覆盖和清除六类偏好
    • 不加载 Provider,不依赖 LLM 配置
  • Chat 与 Generation 集成

    • 通过统一 memory.Reader 加载快照
    • 读取失败时跳过偏好注入,主流程继续执行
    • 保持现有会话摘要、Redis 生成记忆和 RAG 行为不变
  • 新增模块、API、Chat 与 Generation 测试覆盖

非目标

  • 不自动从聊天或生成结果写入记忆
  • 不使用 Redis、向量检索、Embedding、Milvus 或后台任务
  • 不改变 Generation Redis 短期记忆的键、TTL 和读写语义

验证

已通过:

go test ./internal/memory ./internal/api/v1/memory ./internal/agent/chat ./internal/service ./internal/service/generation
-count=1

说明:全量前端 lint 存在项目既有错误;新增长期记忆前端文件的 lint 与生产构建已通过。

新增基于 MySQL 的用户输出偏好模块,支持类型校验、空白归一化、原子覆盖保存、幂等真实删除及安全提示词渲染。

提供受认证保护的长期记忆 CRUD 接口,并在应用启动时迁移 user_memories 表及其用户级联外键。

设置页新增长期记忆面板,支持六类偏好的查看、保存和清除,且不依赖 Provider 或 LLM 配置。

Chat 与 Generation 通过统一 Reader 只读加载偏好;读取失败时跳过个性化上下文并保持原流程可用。

补充 memory、HTTP API、Chat 和 Generation 的单元与集成测试。
@Flandern1211
Flandern1211 merged commit d661c46 into develop Aug 3, 2026
3 checks passed
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