MemoryRouter — 内存路由器
v1.0.0针对 OpenClaw 代理的智能内存路由。自动分级 MEMORY.md,生成每个会话的智能清单,只加载必要的内容。实现 70-85% 的上下文减少,且无外部依赖。
运行时依赖
安装命令
点击复制技能文档
内存路由器技能 为 OpenClaw 代理提供智能内存路由。 通过实体感知的清单生成、令牌预算和 WAL 基础的会话连续性解决内存膨胀问题。
它的作用 自动分层 —— 当 MEMORY.md 超过阈值时,将旧条目归档到带日期的文件中 智能压缩 —— 每次会话之前预过滤要注入的内存文件,而不是转储所有内容 事实整合 —— 扫描内存文件中的重复/冲突项,并标记为待审查 实体索引 —— 为实体提供轻量级的名称到文件映射,实现即时解析 WAL 协议 —— SESSION-STATE.md 写入前响应模式,实现会话连续性 自动清单生成 —— 查询感知的清单生成 令牌预算模式 —— 加载文件以保持在可配置的令牌预算范围内 隐私保护 —— 所有内容都在本地运行,没有云依赖
安装 将此目录放在 ~/.openclaw/workspace/skills/memory-router/ 将其添加到心跳任务中(见下面的 HEARTBEAT.md 集成) 可选地在 config.json 中配置阈值
使用 心跳集成 将以下内容添加到心跳任务中:
MemoryRouter - 运行 skills/memory-router/memory-router.js --tier 以自动分层 MEMORY.md
- 运行
skills/memory-router/memory-router.js --compact以生成每次会话的内存清单 - 运行
skills/memory-router/memory-router.js --audit以扫描重复/冲突项
每次会话内存清单 在加载内存文件之前,运行 --compact 以生成相关文件的清单。 代理应该只加载清单中的文件,而不是所有内存文件。
审计模式 运行 --audit 以查找重复和冲突。 输出是一个报告文件,位于 memory/memory-audit-report.md。
代理内存加载协议 当代理唤醒时,而不是加载所有内存文件: 读取 memory/memory-manifest.json 加载所有 required: true 文件 对于 required: false 文件,使用 memory_search corpus=memory 检查与用户可能需求的相关性 仅加载最相关的 3-5 个可选文件
这是关键优化:加载重要内容,跳过其余内容。
内存搜索集成 清单处理要加载的文件。 memory_search 处理要查找的事实。 将它们一起使用: 语料选择 默认为 corpus=memory —— 只搜索 MEMORY.md + memory/*.md(无会话转录噪音) 仅在查询模糊且需要跨层时才使用 corpus=all 使用 corpus=wiki —— 通过编译的 wiki 层进行可持续的实体查找(人员、项目、系统)
搜索策略 对于最近/上下文查询 → memory_search corpus=memory 对于可持续的实体查找 → wiki_search + wiki_get 保持 maxResults 在 4-6 之间(质量优于数量) 默认的混合权重(0.7 向量 / 0.3 文本)效果良好; 增加 textWeight 以进行精确匹配 混合搜索调优 { memorySearch: { query: { hybrid: { vectorWeight: 0.7, textWeight: 0.3, mmr: { enabled: true, lambda: 0.7 }, temporalDecay: { enabled: true, halfLifeDays: 30 } } } } }
本地嵌入(推荐) { memorySearch: { provider: "local", local: { modelPath: "/path/to/embeddinggemma-300m.gguf", contextSize: 4096 } } }
嵌入缓存 { memorySearch: { cache: { enabled: true, maxEntries: 50000 } } }
额外索引路径 { memorySearch: { extraPaths: ["~/projects", "~/team-docs"] } }
关键洞察 清单 + memory_search 组合提供了与向量 DB 方法(ChromaDB、mem0)相同的 70-85% 上下文减少 —— 但无需任何外部基础设施。 清单减少要加载的文件,memory_search 减少要显示的事实。 它们共同解决了内存问题,而无需添加依赖项。
架构 memory-router/ ├── SKILL.md ← 本文件 ├── memory-router.js ← 核心引擎(分层、压缩、审计) ├── config.json ← 阈值和选项 ├── README.md ← 扩展文档 └── test-memory-router.sh ← 性能测试工具
设计原则 零用户摩擦 —— 所有内容都在心跳期间自动运行 无外部依赖 —— 仅使用 Node.js 内置组件 可配置 —— 阈值、关键字、保留策略 透明 —— 生成报告以便用户查看更改内容 可逆 —— 存档使用带日期的文件名,永远不会在未记录的情况下删除内容 隐私优先 —— 所有内容都在本地运行,无云 API