SuperAPI AI 工具集

memory-management

智能体与模型

查看项目

更新于 10-16 16:26

技能介绍

用途

记忆管理技能解决的是 AI 智能体在会话结束后遗忘全部上下文的根本问题。它通过 openclaw-mem CLI 将记忆分层结构化,使智能体在多次会话之间保持连续性:会话结束后仍能记住正在做的事、已做的决策以及需要交接的任务。

环境设置

export OPENCLAW_MEM_ROOT=$WORKSPACE/.openclaw/workspace
MEM=$WORKSPACE/.openclaw/workspace/openclaw-mem/.venv/bin/openclaw-mem

文中所有命令中的 $MEM 均指向上方路径。

主要能力

1. 5 层记忆结构

层 文件/系统 特性 大小限制
L0 memory/core.md 热点缓存,始终加载 严格 <2KB
L1 memory/working-memory.md 当前工作焦点,易失 自由
L2 memory/decisions.md Master 决策日志,只追加 无限制(定期归档)
L3 memory/YYYY-MM-DD.md + memory/handoffs/ 情景记忆 保留最近 7 天
L4 LanceDB (rag/lancedb/) 语义检索,覆盖整个工作区 自动管理

读取顺序:L0 → L1 → L2(近期)→ 按需检索 L3/L4。

2. 会话生命周期

会话开始(必须)

# 1. 读取上一会话交接
$MEM handoff read

# 2. 查看工作记忆
$MEM working-memory show

# 3. 查看最近决策
$MEM decision list --last 5

通过这三条命令的输出把握“当前正在做什么”,然后开始工作。

会话进行中

产生重要决策时立即记录:

# Master 决定的事项
$MEM decision log "Rust+Godot 专用,禁用 JS/TS" --tag master

# 智能体学习/洞察
$MEM observe "LanceDB 索引 --changed 比 --all 快 10x" --tag learning

# 记录错误
$MEM observe "Godot 导出时必须加 --headless" --tag error

工作记忆变化时:

$MEM working-memory set "当前焦点:NAS 迁移 Phase 2"
$MEM working-memory update "补充:DNS 传播等待中"

会话结束(必须)

# 1. 写交接笔记(给下一个会话的自己)
$MEM handoff write "博客部署完成。剩余任务:游戏页面截图 4 张"

# 2. 更新工作记忆
$MEM working-memory set "下一步:拍摄游戏截图 → 完成博客游戏文章"

# 3. 索引变更文件
$MEM index --changed

3. Brain 管理

Brain = memory/projects/{name}.md —— 按项目划分的持久上下文。

创建:

cat > memory/projects/eastsea-blog.md << 'EOF'
# eastsea-blog Brain
## Stack: Hugo + GitHub Pages
## Repo: eastsea-blog/
## Deploy: git push → GitHub Actions → pages
## 注意: baseURL 为 https://eastsea.xyz
EOF

更新原则:

  • 事实变化时立即修改 Brain(过期信息有害)。
  • 保持 < 1KB —— 因为会整体注入到子智能体的上下文中。
  • 决策记录在 L2(decisions.md),不写入 Brain。

向子智能体注入 Brain:

  • 生成子智能体时读取 Brain 文件内容并写入提示词。
  • 采用直接注入内容的方式,而非让子智能体“先读 Brain 再开始”。
  • 禁止注入整个 AGENTS.md —— 只注入 Brain 加任务专属规则。

4. 记忆卫生

L0 热点缓存管理(core.md < 2KB):

wc -c memory/core.md  # 超过 2048 时需要清理

超限时:将陈旧或次要条目移至 L2 或 L4。

归档:

# 预演(查看哪些将被归档)
$MEM archive --days 30

# 执行
$MEM archive --days 30 --execute

# 归档后重新索引
$MEM archive --reindex

RAG 重新索引时机:

事件 命令
每天 01:00 KST(cron) $MEM index --changed
批量文件变更后 $MEM index --all
归档执行后 $MEM archive --reindex
手动添加特定文件 $MEM index path/to/file.md

情景整理:

memory/YYYY-MM-DD.md 在 7 天后成为归档对象。memory/handoffs/ 同理。

5. openclaw-mem CLI 参考

search —— 语义检索(渐进式披露):

$MEM search "部署流程" --top-k 5     # 基本检索
$MEM search "部署" --index            # 步骤 1:仅摘要
$MEM search --detail "chunk:0:abc123" # 步骤 2:完整内容
$MEM search "错误" --tag error        # 标签过滤
$MEM search "Godot" --source memory --raw  # 来源过滤 + 人类可读

index —— 向量库索引:

$MEM index --changed          # 仅变更文件(日常用)
$MEM index --all              # 全量重新索引
$MEM index path/to/file.md   # 单个文件

observe —— 结构化观察记录:

$MEM observe "文本" --tag learning   # learning|decision|error|insight

working-memory —— 易失性工作缓冲:

$MEM working-memory show               # 当前状态
$MEM working-memory set "新焦点"        # 整体替换
$MEM working-memory update "补充内容"   # 追加
$MEM working-memory clear              # 清空

decision —— 决策日志(只追加):

$MEM decision log "决策内容" --tag master  # 记录
$MEM decision list --last 10               # 最近 10 条
$MEM decision search "Rust"                # 关键词检索

handoff —— 会话交接:

$MEM handoff write "交接内容"   # 写入
$MEM handoff read               # 读取最新
$MEM handoff history            # 历史

archive —— 冷存储:

$MEM archive                        # 预演
$MEM archive --execute              # 执行
$MEM archive --reindex              # 归档索引
$MEM archive --days 14 --execute    # 以 14 天为基准

auto-capture —— 从会话转录中自动提取:

$MEM auto-capture --since 6h        # 最近 6 小时
$MEM auto-capture --file session.md # 特定文件
$MEM auto-capture --dry-run         # 预览

适用场景

适用于需要跨会话保持连续性的智能体工作流,尤其是多会话推进的项目(如分阶段部署、长期内容创作、多步骤工程任务),以及需要向子智能体精确注入上下文、避免全量记忆转储的场景。

限制与禁忌

  • 禁止在 core.md 中写入超过 2KB 的内容。
  • 禁止修改/删除 decisions.md 中的条目(只追加)。
  • 禁止在没有交接的情况下结束会话。
  • 禁止向子智能体转储整个 memory/ 目录。
  • 禁止滥用 --all 索引(无变更时不必全量索引)。

关于收费、价格、平台支持范围等信息,资料暂未提供。