Agent Progressive Memory

群聊渐进式记忆披露协议。当 Agent 需要在群聊/团队/项目协作场景中访问历史记忆时启用。避免 Agent 一次性加载所有记忆或跳过索引直接读子目录。不适用:单次无群聊场景的标准问答。

Audits

Pass

Install

openclaw skills install agent-progressive-memory

Progressive Memory — 渐进式披露协议

Agent 在群聊中访问记忆时必须遵守的分层披露协议:先读索引,再按需逐层加载。

核心规则

1. 入口管制

  • 群聊记忆的唯一入口是 memory/groups/{group_id}.md(索引文件)
  • 禁止直接读取 memory/groups/{group_id}/ 下的任何子文件
  • 禁止绕过索引直接 memory_search 子目录

2. 五步加载流程

步骤动作产出
1. 路由定位memory_get("memory/groups/{group_id}.md")Hard Rules + 路由索引表
2. 意图匹配匹配当前消息到索引表中一个触发场景确定要加载的文件
3. 显式加载memory_get("memory/groups/{group_id}/{文件}.md")实际记忆内容
4. 子层控制仅当 Step 3 文件引用了 conventions/ 时才加载1 个子文件
5. 预算熔断累计超过 memory_budget 时停止,提示用户预算保护

每次只匹配一个最匹配的文件(优先级最高)。

3. 加载纪律

  • 单会话最多 2 个 P0-P2 文件 + 1 个 P3 文件
  • conventions/ 一次只加载 1 个
  • attention.md 标记「已归档」时,只加载 project.md
  • 切换群聊时先清理旧上下文,再重新走 Step 1

4. 更新回写

  • 新决策 → 追加 experience.md
  • 任务状态变化 → 更新 attention.md
  • 索引文件只增不删(删除时标记 [DEPRECATED]

文件结构

memory/groups/
├── {group_id}.md          # L0: 入口+阀门(必读)
└── {group_id}/            # 群聊私有记忆(禁止直接访问)
    ├── attention.md       # P0: 当前聚焦
    ├── project.md         # P1: 项目静态信息
    ├── experience.md      # P2: 经验/决策日志
    ├── people.md         # P3: 人员画像
    └── conventions/       # L3: 细分规范
        ├── api.md
        ├── db.md
        └── ...

优先级定义

优先级文件内容加载时机
P0attention.md活跃任务、阻断项、环境快照任何与当前工作相关的对话
P1project.md技术栈、架构约束、规范索引技术选型、架构讨论、新人 onboarding
P2experience.md历史决策、踩坑记录、复盘memory_search 命中后追加加载
P3people.md人员角色、审批流程、联系方式需要找人的时候

反模式速查

❌ 一次加载索引所有引用文件     → ✅ 每次只加载一个
❌ 跳过索引直接读子文件         → ✅ 先加载索引
❌ 同时加载两个群聊            → ✅ 切换时清理再重载
❌ 全文加载 experience.md      → ✅ 搜索命中后片段加载

索引文件模板

---
group_id: your-group
last_updated: YYYY-MM-DD
status: active
memory_budget: 6000
---

# {Group Name} — 渐进式披露索引

> ⚠️ 本文件是访问此群聊记忆的**唯一合法入口**。

## Hard Rules

- 规则1
- 规则2

## 路由索引

| 触发场景 | 加载文件 | 优先级 |
|---------|---------|--------|
| 当前任务、Sprint、阻断项 | `attention.md` | P0 |
| 技术栈、架构约束 | `project.md` | P1 |
| 历史决策、踩坑记录 | `experience.md` | P2 |
| 人员分工、联系方式 | `people.md` | P3 |
| API 开发细节 | `conventions/api.md` | P2-L3 |