Skip to content

建议增强记忆系统的「总结-关联-提醒」机制,避免只记录不学习 #4652

Description

@feng183043996

问题描述

当前 QwenPaw 的记忆系统存在「只记录不提炼,踩了坑还会再踩」的问题,使记忆系统从「知识积累」退化成了「信息堆砌」。

现状分析

  1. 只记录不总结:agent 会不断往 MEMORY.md 或 memory/YYYY-MM-DD.md 追加信息,但缺乏定期的信息提炼和压缩
  2. 无状态管理:记录的问题和解决方案没有状态标记(未解决/已解决/已过时),无法区分有效经验和需要再讨论的问题
  3. 无关联索引:同类问题散落在不同日期的笔记中,没有跨时间维度的聚合能力
  4. 缺乏智能提醒:当 agent 再次遇到类似场景时,不会自动匹配历史经验

具体表现

1. 记忆膨胀无提炼

当前 MEMORY.md 内容分布:

  • 个人上下文(身份/设备/服务地址)→ 有效
  • 运维配置(定时任务/备份策略/API清单)→ 有效
  • 技术规范 + 经验教训 → 有效但未提炼
  • 旧版本 Bug 修复记录(5月18~22日)→ 冗余,未自动归档

2. 同类问题重复出现

  • 5月5日:MySQL FROM_UNIXTIME 返回字符串导致时间列不识别 → 记录了
  • 5月24日:PostgreSQL date 类型未转 timestamp 导致 No data → 再次踩坑

两次问题的根因相同(时间列格式问题),但系统没有自动关联提醒。

3. 无「已解决」生命周期

  • 记录格式类似 ### 2026-05-22:早报三大问题修复,但没有状态标记
  • 3周后,无法判断这些问题是「当前仍有效」还是「已过时」

建议方案

1. 记忆状态管理

每条经验教训支持状态标记:

### Grafana 时间列转换
- tags: [grafana, postgres, sql]
- status: fixed (2026-05-24)   # open / fixed / deprecated
- 问题: date 类型未转 timestamp 导致 No data
- 解决方案: date::timestamp 转换
- 关联: 2026-05-05 (MySQL FROM_UNIXTIME)

2. 自动知识提炼

系统提供 memory_condense 工具:

memory_condense(
    tag="grafana",
    since_days=30,
    output="核心经验.md"
)
  • 自动从每日笔记中提取关联信息
  • 生成「核心经验」章节,替代原始记录
  • 支持按标签聚合统计

3. 智能提醒 hook

当 agent 执行某操作时,系统自动匹配历史经验并提示:

# 示例:当 agents 创建 Grafana 看板时
if memory.match_by_tags("grafana", ["time_column", "date_conversion"]):
    warn("⚠️ 您曾在 2026-05-05 和 2026-05-24 因时间列问题踩坑")

4. 定期压缩机制

  • 每周/每月自动运行 memory_condense
  • 将 30 天前的原始记录压缩为「历史参考」
  • 保留核心经验,删除冗余细节

预期效果

能力 当前 改进后
同类问题发现 靠用户指出 系统自动提醒
记忆信息密度 膨胀到 700+ 行 稳定在 300-400 行
经验关联 手工查找 标签自动关联
信息时效性 无法判断 状态标记清晰

当前 workaround

  • 手动搜索 memory_search 来进行经验查找
  • 依赖用户在会话中指出来复用旧经验
  • agent 在 AGENTS.md 中增加自觉检查提醒,但非系统强制

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    • Status
      Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions