Skip to content

Feature Request: 借鉴 mem9 设计思路,增强记忆生命周期管理 #299

@xybstone

Description

@xybstone

Feature Request: 借鉴 mem9 设计思路,增强记忆生命周期管理

背景

我们深度使用了 memory-lancedb-pro 作为 OpenClaw 的长期记忆系统,效果很好。最近研究了另一个云端记忆项目 mem9.ai,发现有几个设计思路非常有价值,希望能整合到 memory-lancedb-pro 中。

建议的优化方向

1. 自动注入钩子(高优先级)

现状:当前需要手动调用 memory_recall 才能获取相关记忆。

建议:添加 OpenClaw 插件钩子,在每次 LLM 调用前自动注入相关记忆。

// 伪代码示例
export const hooks = {
  before_prompt_build: async (ctx) => {
    const query = ctx.last_user_message;
    const memories = await memory_search(query, { limit: 5 });
    ctx.system_context.push("\n📚 相关记忆:\n" + memories.map(m => m.text).join("\n"));
  }
};

价值

  • 无需手动 recall,记忆自动出现在上下文中
  • 用户体验更流畅,真正"无感"记忆

2. 会话归档钩子(高优先级)

现状/reset 后会话历史丢失,需要手动保存摘要。

建议:添加 before_reset 钩子,自动保存会话摘要到记忆。

before_reset: async (ctx) => {
  const summary = await generate_session_summary(ctx.history);
  await memory_store(summary, { tags: ["session-summary"] });
}

价值

  • 重启后不丢失重要上下文
  • 自动沉淀会话知识

3. 智能检索优化(中优先级)

现状:检索主要依赖向量相似度。

建议:引入多因子加权排序:

score = 0.6 * vector_similarity + 0.3 * time_decay + 0.1 * importance

# 时间衰减:越近的记忆权重越高
time_decay = exp(-days_since_created / 30)

# 重要性加权
importance_weight = {
    "decision": 1.0,
    "preference": 0.9,
    "fact": 0.7,
    "other": 0.5
}

价值

  • 更智能的排序,优先展示重要、近期的记忆
  • 减少无关记忆干扰

4. 记忆生命周期管理(中优先级)

现状:记忆永久存储,没有自动归档/清理机制。

建议

  • 30 天前的 other 类记忆 → 自动移到 archive 集合
  • 90 天前的所有记忆 → 压缩存储
  • 存储前检查相似度 >0.95 → 更新而非创建(去重)

价值

  • 控制数据库大小
  • 减少重复记忆

5. 多 Agent 共享支持(低优先级)

现状:记忆绑定单个 agent。

建议:添加 agent_idshared 字段:

{
  "text": "用户喜欢直接、不啰嗦的沟通风格",
  "category": "preference",
  "importance": 0.9,
  "agent_id": "main",
  "shared": true
}

价值

  • 多个 agent 共享同一份用户画像
  • 支持团队协作场景

实施建议

Phase 1(最有价值)

  1. 添加 before_prompt_build 钩子(自动注入)
  2. 添加 before_reset 钩子(会话归档)

Phase 2
3. 智能检索优化(时间衰减 + 重要性加权)
4. 记忆去重逻辑

Phase 3
5. 多 Agent 共享支持
6. 导入导出工具(备份/恢复)

风险与缓解

风险 缓解措施
自动注入太多记忆 → 上下文溢出 限制最多 5 条,总字符数 <2000
钩子执行慢 → 影响响应速度 异步执行,超时 500ms 跳过
去重误判 → 丢失信息 相似度阈值 0.95(保守)
多 Agent 隐私泄露 默认 shared=false,显式标记

参考项目

  • mem9.ai - 云端记忆项目,有详细的钩子设计文档

期待社区讨论! 如果方向认可,我们可以进一步细化技术方案。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions