Skip to content

功能建议:增加节点溯源能力,支持定位和提取原始对话片段(注我让我的agent写的) #5

Description

@34262315716

问题描述

目前 graph-memory 能够很好地将会话内容提炼为结构化的知识图谱节点(TASK/SKILL/EVENT),并通过 gm_search 实现跨会话召回。但在实际使用中,我们发现一个痛点:

当想要回顾某个节点的完整讨论过程时,无法定位到原始对话片段。

例如:

  • 通过 gm_search 找到了一个 TASK 节点:"setup-task-progression-workflow"
  • 节点内容是提炼后的摘要,但我想看当时完整的讨论过程
  • 目前只能手动翻 memory/YYYY-MM-DD.md 日志,效率很低

建议的解决方案

方案 1:增强节点元数据(推荐)

在节点中添加 sourceContext 字段,保存:

  • 消息 ID 列表:关联到原始 Discord/Telegram 消息
  • 时间戳范围:记录讨论的起止时间
  • 会话片段:保存关键对话片段(不是全文,而是精选的重要部分)

优点

  • 可以通过节点定位到原始消息
  • 保持压缩率的同时提供回溯能力
  • 可以在 Discord 中直接跳转到原始消息

方案 2:利用现有的 memory/ 日志

当前 memory/YYYY-MM-DD.md 已经保存了每日的完整对话记录。可以:

  1. 在节点中添加 sourceFiletimestamp 字段
  2. 通过时间戳定位到 memory/ 日志中的具体位置
  3. 提供一个 gm_recall_context(nodeId) 工具,根据节点 ID 提取原始对话片段

优点

  • 不需要重复存储
  • 利用现有的日志系统
  • 实现相对简单

使用场景

  1. 复盘学习:回顾某个任务的完整讨论过程,学习决策思路
  2. 问题排查:当某个 EVENT 节点记录了错误,想看完整的错误上下文
  3. 知识传承:新会话中召回旧节点,但想看当时的完整讨论细节

期望效果

# 搜索节点
gm_search "定时任务 子区"

# 找到节点后,提取原始对话
gm_recall_context "setup-task-progression-workflow"

# 输出:
# - 节点摘要
# - 原始对话片段(带时间戳和消息 ID)
# - 可选:Discord 消息跳转链接

补充说明

目前 graph-memory 的压缩率(75%)和跨会话召回能力已经非常优秀,这个功能建议是为了进一步增强"可追溯性",让知识图谱不仅能"记住",还能"回溯"。

感谢作者开发了这么优秀的插件!🎉

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or requestpluginOpenClaw plugin / SQLite mainline

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions