Memory Auto Index

v1.0.0

自动为 MEMORY.md 和 memory/ 目录下的记忆文件添加索引条目,支持标签分类和关键决策追踪

0· 81· 1 versions· 0 current· 0 all-time· Updated 1w ago· MIT-0

Memory Auto-Index Skill

自动为记忆系统添加索引条目,实现 MEMORY.md 索引与 memory/ 目录内容的同步。


核心功能

功能描述
自动标签提取从记忆内容中识别主题标签
索引条目生成在 MEMORY.md 索引区添加引用
关键决策追踪重大决策同步到决策表
去重检测避免重复索引条目

使用方式

方式一:脚本调用

./scripts/auto-index-memory.sh <文件路径> <主题> <标签列表>

示例:

./scripts/auto-index-memory.sh memory/2026-04-12.md '天气预报格式优化' '天气,定时任务,偏好'

方式二:自动触发(推荐)

在写入记忆文件后自动调用:

// 伪代码示例
async function writeMemory(entry: MemoryEntry) {
  // 1. 写入记忆文件
  await writeFile(`memory/${entry.date}.md`, entry.content);
  
  // 2. 自动添加索引
  const tags = extractTags(entry.content);
  const subject = extractSubject(entry.content);
  await exec(`./scripts/auto-index-memory.sh memory/${entry.date}.md '${subject}' '${tags}'`);
}

标签体系

预定义标签

标签用途示例
#天气天气相关配置/偏好预报格式、推送时间
#定时任务cron/定时任务配置天气预报、提醒
#指令响应用户指令处理流程响应话术、执行流程
#上下文管理上下文压缩/清理压缩阈值、清理策略
#网关运维OpenClaw 网关相关重启、状态检查
#子代理子代理/会话管理创建、清理、委派
#偏好用户偏好设置输出格式、语言
#决策重要决策记录架构选择、流程变更
#故障故障处理/修复错误日志、解决方案
#学习经验总结最佳实践、教训

标签提取规则

从记忆内容中自动识别:

  1. 标题关键词 → 映射到预定义标签
  2. 用户明确标注 → 使用 ## 标签:天气,定时任务 格式
  3. 文件名2026-04-12-weather.md#天气

索引格式

MEMORY.md 索引区结构

## 📑 索引

### 按主题
- **#天气** 预报格式标准化 → `memory/2026-04-06.md#L15`
- **#定时任务** 每日天气预报配置 → `memory/2026-04-06.md#L28`

### 按项目
- **OpenClaw 配置** → `memory/2026-04-03.md`, `memory/2026-04-06.md`
- **天气预报服务** → `memory/preferences.md`, `memory/2026-04-06.md`

### 关键决策
| 日期 | 决策 | 位置 |
|------|------|------|
| 2026-04-06 | 天气预报格式标准化 | `memory/2026-04-06.md#L15` |

条目格式

- **#主标签** 主题描述 → `文件路径#L 行号`

自动化流程

记忆写入流程

用户指令/事件
    ↓
写入 memory/YYYY-MM-DD.md
    ↓
提取标签和主题
    ↓
调用 auto-index-memory.sh
    ↓
更新 MEMORY.md 索引
    ↓
(可选)更新分类文件

触发条件

事件是否索引说明
用户偏好变更添加到 #偏好 索引
重要决策添加到决策表 + 相关标签
故障修复添加到 #故障 索引
日常日志⚠️仅当包含关键信息时
问候/闲聊不索引

脚本说明

auto-index-memory.sh

位置: scripts/auto-index-memory.sh

功能:

  1. 解析参数(文件路径、主题、标签)
  2. 计算行号
  3. 检查重复
  4. 插入索引条目
  5. (可选)更新决策表

输出:

✅ 索引已更新
   主题:天气预报格式优化
   标签:#天气
   位置:memory/2026-04-06.md#L15

维护指南

定期清理

每周检查一次索引:

# 检查无效引用(文件不存在)
grep -oP '`memory/[^`]+`' MEMORY.md | while read ref; do
  file=$(echo $ref | tr -d '`' | cut -d'#' -f1)
  [ ! -f "$file" ] && echo "❌ 无效引用:$ref"
done

行号更新

文件内容变更后,行号可能失效。建议:

  1. 使用 章节标题 代替行号:memory/2026-04-06.md#定时任务配置
  2. 或定期运行脚本重新计算行号

扩展建议

1. 语义搜索增强

# 添加全文索引
./scripts/build-memory-index.sh
# 生成 memory-index.json 供语义搜索使用

2. 标签云可视化

# 统计标签频率
grep -oP '#\w+' MEMORY.md | sort | uniq -c | sort -rn

3. 自动分类文件同步

当索引条目达到一定数量时,自动创建/更新分类文件:

memory/
├── topics/
│   ├── weather.md      # 所有#天气相关
│   ├── tasks.md        # 所有#定时任务相关
│   └── preferences.md  # 所有#偏好相关

故障排除

问题原因解决方案
索引重复主题识别不准确手动指定唯一主题名
行号错误文件内容变更使用章节标题引用
标签混乱缺少标签规范使用预定义标签体系
脚本失败权限问题chmod +x scripts/auto-index-memory.sh

相关文件

  • MEMORY.md - 主索引文件
  • memory/ - 每日记忆目录
  • scripts/auto-index-memory.sh - 自动索引脚本
  • AGENTS.md - 记忆写入流程说明

版本历史

版本日期变更
1.02026-04-12初始版本,基础索引功能

Version tags

latestvk974jayz8kpqbeqjtc7q4k78f184yb66