🧪 Skills

Mi-MemoryStack

个性化记忆框架,提供用户记忆的自动存储和检索。CRITICAL:每轮对话必须执行检索和保存,不可跳过。Use when:(1) 用户对话需要历史上下文, (2) 需要记住

v1.0.1
❤️ 0
⬇️ 68
👁 1
Share

Description


name: mi-memorystack-v2 description: 个性化记忆框架,提供用户记忆的自动存储和检索。CRITICAL:每轮对话必须执行检索和保存,不可跳过。Use when:(1) 用户对话需要历史上下文, (2) 需要记住用户偏好/身份, (3) 多轮对话需要连续性。 allowed-tools: Bash(python3:*)

🧠 mi-memorystack-v2

⚠️ CRITICAL - 必须执行的流程

每轮对话必须按以下顺序执行,不可跳过任何步骤

[用户输入]
    ↓
Step 1: [MUST] 执行 memory_search.py 检索记忆
    ↓
Step 2: 生成回复(融入记忆)
    ↓
Step 3: [MUST] 执行 memory_daemon.py queue 保存记忆(后台)
    ↓
Step 4: 显示回复给用户

自检清单(每轮对话后确认):

  • 是否执行了 memory_search.py
  • 是否执行了 memory_daemon.py queue
  • 是否看到 "已加入保存队列"?

🚀 快速使用

1. 确保守护进程已启动

# 检查状态
python3 scripts/memory_daemon.py status

# 如未启动,执行
python3 scripts/memory_daemon.py start

2. 检索记忆(同步,必须等待)

python3 scripts/memory_search.py --user-id "<USER_ID>" --query "<用户输入>"

示例:

python3 scripts/memory_search.py \
  --user-id "ou_c4f3245c6fca9" \
  --query "我想喝奶茶"

输出:

{
  "success": true,
  "memories": {
    "l0": "用户喜欢少糖奶茶",
    "l1": "用户是比亚迪车主"
  }
}

3. 保存记忆(后台异步,立即返回)

python3 scripts/memory_daemon.py queue \
  --user-id "<USER_ID>" \
  --query "<用户输入>" \
  --response "<AI回复>"

示例:

python3 scripts/memory_daemon.py queue \
  --user-id "ou_c4f3245c6fca9" \
  --query "我想喝少糖奶茶" \
  --response "好的主人,记得要少糖哦~"

输出:

[OK] 已加入保存队列

👤 用户ID获取

inbound_meta 中提取:

user_id = inbound_meta.get("sender_id") or inbound_meta.get("user_id")

各平台字段:

平台 字段 示例
Feishu sender_id ou_c4f3245c6fca9
Discord sender_id 123456789012345678
Telegram sender_id 123456789

🔄 完整对话示例

场景:用户点奶茶

用户输入: "我刚点了杯奶茶"

AI 内部执行:

# Step 1: 检索记忆
USER_ID="ou_c4f3245c6fca9"
QUERY="我刚点了杯奶茶"

MEMORIES=$(python3 scripts/memory_search.py \
  --user-id "$USER_ID" \
  --query "$QUERY")
# 返回: {"memories": {"l0": "用户喜欢少糖"}}

# Step 2: 生成回复(融入记忆)
RESPONSE="哈哈,主人你这奶茶频率可以啊!记得要少糖哦~"

# Step 3: 后台保存(立即返回)
python3 scripts/memory_daemon.py queue \
  --user-id "$USER_ID" \
  --query "$QUERY" \
  --response "$RESPONSE"
# 输出: [OK] 已加入保存队列

# Step 4: 显示回复给用户
echo "$RESPONSE"

用户看到: "哈哈,主人你这奶茶频率可以啊!记得要少糖哦~" ✅

后台处理: 守护进程自动将记忆写入文件


📊 性能对比

步骤 方式 耗时 是否阻塞
检索 memory_search.py 0.1-0.3s ✅ 必须等待
保存 memory_add.py (同步) 0.5-2s ❌ 不推荐
保存 memory_add_async.py 0.08s ✅ 推荐
保存 memory_daemon.py queue 0.05s 最推荐

📋 列出已有记忆(memory_list)

用于查看用户所有的对话记忆,支持按层级统计和限制返回数量。

基本用法

python3 scripts/memory_list.py --user-id "<USER_ID>"

示例:

# 列出所有记忆
python3 scripts/memory_list.py \
  --user-id "ou_c4f3245c6fca9"

# 只列出 L2 长期偏好
python3 scripts/memory_list.py \
  --user-id "<USER_ID>" \
  --level l2

# 只列出最近的 5 条 L1 记忆
python3 scripts/memory_list.py \
  --user-id "<USER_ID>" \
  --level l1 \
  --limit 5

输出格式(JSON)

{
  "success": true,
  "user_id": "ou_c4f3245c6fca9",
  "memories": [
    {
      "line_num": 1,
      "level": "l2",
      "query": "我喜欢喝拿铁",
      "response": "记住了,你喜欢拿铁咖啡~",
      "timestamp": "2026-03-09T10:30:00"
    }
  ],
  "count": 15,
  "by_level": {
    "l0": 5,
    "l1": 3,
    "l2": 7
  },
  "filtered_by_level": "l2",
  "returned": 10
}

参数说明

参数 说明 默认值
--user-id 用户唯一标识(必需) -
--level 记忆层级过滤:l0/l1/l2 全部
--limit 限制返回的记录数 全部
--format 输出格式:jsontext json
--data-path 记忆数据目录 ~/.openclaw/workspace/skills/mi-memorystack-v2/data

层级说明

层级 含义 示例
l0 短期事实 具体事件、问答记录
l1 用户画像 身份、职业、个人信息
l2 长期偏好 喜欢/讨厌/习惯/偏好

文本格式输出

python3 scripts/memory_list.py --user-id "<USER_ID>" --format text

输出示例:

============================================================
用户记忆列表 - ou_c4f3245c6fca9
============================================================
总记录数: 15
  - L0 (短期事实): 5 条
  - L1 (用户画像): 3 条
  - L2 (长期偏好): 7 条

[1] [L2] #1
    Q: 我喜欢喝拿铁
    A: 记住了,你喜欢拿铁咖啡~

🔧 故障排查

1. 检查守护进程状态

python3 scripts/memory_daemon.py status

2. 重启守护进程

python3 scripts/memory_daemon.py stop
python3 scripts/memory_daemon.py start

3. 查看日志

cat ~/.openclaw/memory_daemon.log

4. 验证保存结果

cat data/<user_id>.jsonl

⚠️ 重要提醒

  1. 守护进程必须先启动,否则 queue 命令会失败
  2. 每轮对话必须执行保存,不可遗漏
  3. 用户ID必须正确,确保多用户隔离
  4. 保存后立即返回,不等待后台完成

📖 更多信息

  • 守护进程: scripts/memory_daemon.py
  • 搜索记忆: scripts/memory_search.py
  • 列出记忆: scripts/memory_list.py

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs