Skip to content

feat(memory): complete Dreaming consolidation flow - #3509

Draft
JasonW404 wants to merge 12 commits into
developfrom
dev/feature/memory_dreaming
Draft

feat(memory): complete Dreaming consolidation flow#3509
JasonW404 wants to merge 12 commits into
developfrom
dev/feature/memory_dreaming

Conversation

@JasonW404

@JasonW404 JasonW404 commented Jul 27, 2026

Copy link
Copy Markdown
Member

新增功能

  • 新增 Dreaming 长期记忆整合流程,支持手动触发、后台调度、运行状态查询、版本查看与版本切换。
  • 新增 Dreaming 版本、运行审计、激活审计及租约相关数据结构和数据库迁移。
  • 新增 Memory 页面 Dreaming 面板及中英文界面文案。
  • 新增长上下文记忆压缩与 Dreaming 版本构建能力。

修改功能与范围

  • 扩展 Memory API、服务层、数据库访问层及调度器,加入租户、用户和 Agent 维度的 Dreaming 管理。
  • 调整 Agent 上下文管理与记忆写入逻辑,使长期记忆可消费已激活的 Dreaming 版本。
  • 更新部署 SQL、Kubernetes 配置、前端 API 服务及模型配置常量。
  • 增加后端、SDK、数据库和 Playwright 测试。

Dreaming 算法概述

  • 按来源记忆单元构建可追踪 RAW 内容,并预先绑定 evidence ID。
  • Stage 1 将 memory unit 以 JSON 分批送入模型,提取基于权威 unit 文本的原子事实跨度;后端严格校验 unit ID 和字符偏移,并兼容可证明的 JSON 前缀偏移。
  • 后端确定性补齐 URL、邮箱、UUID、数值及 named-number 等关键 literal,避免依赖模型召回。
  • Stage 2 对完全相同的事实做确定性去重并合并来源归属;超过字符上限时执行 lossless formatting,并校验 fact ID、来源覆盖、关键 literal、证据完整性和长度。
  • 语义压缩不满足验收条件时进入可审计的机械回退,避免发布不完整版本。

测试结论

  • Dreaming 后端与 SDK 回归:68 passed。
  • 真实 PostgreSQL 集成:2 passed。
  • memory_dreaming_compressor.py 覆盖率 95%,version_builder.py 覆盖率 93%。
  • 前端 TypeScript 检查、Dreaming 相关 Prettier 检查及生产构建通过。
  • Playwright 验证 Dreaming 页面、版本切换、触发接口及状态展示通过。
  • AC-048/049 真实模型验收通过:14,163 字符 RAW 以 semantic 状态压缩至 10,000 字符上限内,35 个 pattern、全部 evidence 与关键 literal 均保留,最终 audit accepted;耗时 625.78 秒。

@JasonW404

Copy link
Copy Markdown
Member Author

自动 Dreaming 定时能力已补齐(commit cb71431):\n\n- Dreaming 页新增自动开关,支持每日、每周、固定小时周期和浏览器 IANA 时区;默认关闭。\n- 新增按 tenant/user/agent scope 持久化的 schedule API 与数据库迁移,保存后返回下一次执行时间。\n- 复用现有 ScheduleSpec/LeaseScheduler;到期计划原子生成 trigger_source=schedule 的 queued audit,多实例通过 FOR UPDATE SKIP LOCKED 避免重复,同 scope 有活动任务时跳过本周期并推进。\n- 权限沿用 DREAMING VIEW_TENANT / EDIT_TENANT。\n\n验证:Dreaming 回归 138 passed;Ruff/ESLint/Next build PASS;真实 PostgreSQL 到期计划已自动生成并完成 run_id=13;Playwright 验证开启→2h→保存→刷新持久化→关闭,截图 /tmp/ac036-dreaming-schedule.png。AC-033~AC-036 PASS。

@JasonW404

Copy link
Copy Markdown
Member Author

UI 可发现性补充修复(e387ba2e8):此前自动 Dreaming 卡片受 agentId/schedule 条件控制,本地账号没有 Agent 时整卡隐藏。现已改为始终展示配置卡;无 Agent 时显示“请先创建或选择一个智能体”并禁用控件/保存。真实空 Agent 浏览器验证:提示可见=true、保存禁用=true,截图 /tmp/ac036-no-agent-visible.png。

@JasonW404

Copy link
Copy Markdown
Member Author

用户级 Dreaming 重构已完成(adca373f7):不再依赖用户创建/选择 Agent;跨当前用户所有 Agent 来源聚合。基础设置新增 Dreaming 总开关,关闭时可保留或删除历史;自动开关只管理当前用户唯一 schedule。规则/next-fire 复用 agent_automation ScheduleTrigger 与 schedule_engine,执行复用 SDK LeaseScheduler。验证:138 tests、Ruff、ESLint、Next build 均 PASS;真实 API 总开关 N→Y PASS;Playwright 确认 Agent selector=0。

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