mcpField
M
memory-graph-builder

memory-graph-builder

github.com/archieindianAgent 工作流7346 次安装26 周前更新
代码仓库

关于 memory-graph-builder

该技能将 OpenClaw 的 MEMORY.md 转为结构化图谱,供审查和汇总 Agent 记忆。它可识别重复、矛盾和过时条目,并生成可替代原文件的限令牌摘要。

主要功能

  1. 01从 MEMORY.md 构建图谱
  2. 02检测重复与矛盾
  3. 03标记过时记忆
  4. 04生成限令牌摘要
  5. 05清理重复和过时条目

适用场景

  1. 01审查不断增长的 Agent 记忆文件
  2. 02查找冲突或重复事实
  3. 03减少提示词中的记忆上下文
  4. 04移除过时记忆条目

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/archieindian/openclaw-superpowers --skill memory-graph-builder

安装后在 Claude Code 中输入/memory-graph-builder确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

example-state.yaml
graph.py
STATE_SCHEMA.yaml

详细介绍

记忆图谱构建器

功能介绍

OpenClaw 将 Agent 记忆存储在扁平的 MEMORY.md 文件中——每行一条事实,没有结构,也没有关联。直到 Agent 有了 200 多条记忆,其中一半重复,三条互相矛盾,而且整个文件每次会话都要消耗 4,000 个 token,这种方式才会显出问题。

记忆图谱构建器将 MEMORY.md 视为原始数据源,并在其上构建结构化知识图谱。每条记忆都会成为一个节点,并与其他节点建立带类型的关联。图谱支持:

  • 重复检测——“用户偏好深色模式”和“用户喜欢深色主题”是同一条事实
  • 矛盾检测——“用户使用 Python 3.8”和“用户使用 Python 3.12”
  • 过时检测——超过可配置时限且未被引用的事实
  • 记忆摘要——压缩后的摘要,能感知关联,可替代系统提示词中的原始 MEMORY.md,节省 30-60% 的 token

本工具受 OpenLobster 的 Neo4j 后端图谱记忆系统启发,并进行了改造,可基于 OpenClaw 现有的 MEMORY.md 工作,无需数据库。

何时调用

  • 每晚 10 点自动运行(cron)
  • 批量添加记忆后(例如,运行 project-onboarding 后)
  • Agent 的上下文初始化变慢时(记忆膨胀)
  • 手动审计记忆质量时

图谱结构

每行记忆都会成为一个节点:

nodes:
  - id: "mem_001"
    text: "User prefers Python for backend work"
    category: preference    # preference | fact | project | person | tool | config
    entities: ["user", "python", "backend"]
    added_at: "2026-03-01"
    last_referenced: "2026-03-15"
    confidence: 0.9
edges:
  - from: "mem_001"
    to: "mem_014"
    relation: related_to    # related_to | contradicts | supersedes | depends_on

使用方法

python3 graph.py --build                    # Parse MEMORY.md, build graph
python3 graph.py --duplicates               # Show duplicate clusters
python3 graph.py --contradictions           # Show contradicting pairs
python3 graph.py --stale --days 30          # Show memories not referenced in 30 days
python3 graph.py --digest                   # Generate compressed memory digest
python3 graph.py --digest --max-tokens 1500 # Digest with token budget
python3 graph.py --prune --dry-run          # Show what would be removed
python3 graph.py --prune                    # Remove duplicates + stale entries
python3 graph.py --stats                    # Graph statistics
python3 graph.py --status                   # Last build summary
python3 graph.py --format json

Cron 唤醒行为

每晚 10 点:

  1. 读取 MEMORY.md
  2. 重建图谱(增量处理——仅重新处理新增或更改的行)
  3. 检测重复项和矛盾
  4. 标记过时条目(默认超过 30 天未被引用)
  5. 生成新的记忆摘要
  6. 将摘要写入 ~/.openclaw/workspace/memory-digest.md
  7. 将摘要日志写入状态

记忆摘要

摘要是知识图谱的压缩表示,针对大模型使用进行了优化。它不会倾倒每一行原始内容,而是:

  • 按类别对相关记忆分组
  • 将重复事实合并为单条记录
  • 使用 [CONFLICT] 标记矛盾,以便 Agent 解决
  • 省略低于置信度阈值的过时条目
  • 遵守可配置的最大 token 预算

摘要输出示例:

## Preferences
- Prefers Python for backend, TypeScript for frontend
- Dark mode everywhere; compact UI layouts
- Commit messages: imperative mood, max 72 chars

## Active Projects
- openclaw-superpowers: skill library, 40 skills, MIT license
- personal-site: Next.js 14, deployed on Vercel

## People
- Alice (teammate): works on auth, prefers Go

## Conflicts (needs resolution)
- [CONFLICT] Python version: "3.8" vs "3.12" — ask user to clarify

操作步骤

步骤 1 — 构建图谱

python3 graph.py --build

步骤 2 — 检查重复项和矛盾

python3 graph.py --duplicates
python3 graph.py --contradictions

直接编辑 MEMORY.md 或让 Agent 澄清,以解决矛盾。

步骤 3 — 清理过时条目

python3 graph.py --prune --dry-run
python3 graph.py --prune

步骤 4 — 生成并使用摘要

python3 graph.py --digest --max-tokens 1500

将 OpenClaw 的记忆注入目标指向 ~/.openclaw/workspace/memory-digest.md,而不是原始 MEMORY.md。

状态

图谱结构、摘要缓存和审计历史存储在 ~/.openclaw/skill-state/memory-graph-builder/state.yaml 中。

字段:last_build_at、node_count、edge_count、duplicate_count、contradiction_count、stale_count、digest_tokens、build_history。

评论

支持 Markdown