knowledge-vault/discussions/technology/OpenClaw/LocalSummary/2026-04-12-上下文与会话管理总结.md

3.7 KiB
Raw Permalink Blame History

上下文与会话管理总结

2026-04-12 讨论整理,供日后查阅


一、Token 窗口与上下文ctx

1.1 ctx 的含义

  • ctx = Context 使用率,表示当前会话窗口已使用的 Token 配额比例
  • 100% ctx = 上下文已满,新的对话内容会逐步挤压旧内容

1.2 Tool 调用与主会话的 ctx 是独立的

  • Tool 执行在独立子会话中进行,不计入主会话 ctx
  • 流程:用户发消息 → 主会话记录 → Tool 调用独立子会话100% ctx → 返回结果 → 主会话 ctx 清零 → 模型回复
  • 因此 只需关注 Assistant主会话部分的 ctx 是否超限

1.3 实际操作建议

  • 当 ctx 接近 80-90% 时,考虑开新会话
  • Tool 调用占用的 ctx 不影响对话长度,可以忽略

二、OpenClaw 的记忆体系

2.1 两层记忆机制

层级 文件位置 用途 持久化方式
长期记忆 MEMORY.md(各 Workspace 根目录) 核心精华,值得跨会话保留 Agent 主动写入,用户触发
短期记忆 memory/YYYY-MM-DD.mdmemory/ 子目录) 每日日记,记录当天事件和讨论 Agent 主动写入

2.2 各 Agent 的 memory 路径

D:\OpenClaw-Workspace\
├── main\              # 总调度
│   ├── MEMORY.md
│   └── memory\
│       └── 2026-04-11.md
├── chief-engineer\    # 轮机长
│   ├── MEMORY.md
│   └── memory\
└── disciple\          # 强哥的徒弟
    ├── MEMORY.md
    └── memory\
D:\OpenClaw-Workspace-shirleen\
└── conservator\       # 文保工作者
    ├── MEMORY.md
    └── memory\

2.3 新会话启动时加载规则

  1. 读取 SOUL.md → 确定角色和行为
  2. 读取 USER.md → 了解用户信息
  3. 读取 今天 + 昨天的 memory 文件memory/YYYY-MM-DD.md
  4. MAIN SESSION(直接与人对话时)额外读取 MEMORY.md
  5. 更早的 memory 文件通过 memory_search 检索调用

2.4 向量检索库

  • 路径C:\Users\admin\.openclaw\memory
  • 本质OpenClaw 自动维护的向量索引,加速语义搜索
  • 内容来源:从 Workspace 下的 memory 文件自动索引
  • 调用方式memory_search 工具
  • 与文件的关系:同一套内容,两种访问方式(文件直读 vs 向量检索)

三、会话迁移流程

3.1 问题背景

与其他 Agent 交流时,容易触发 Tool 调用导致 ctx 快速增长,可能超过限制。

3.2 解决方案:总结指令

当 ctx 接近上限时,用户发起总结指令,各 Agent 应:

  1. 整理本次会话关键内容
  2. 写入 MEMORY.md 或当日 memory/YYYY-MM-DD.md
  3. 用户在新会话中继续Agent 启动时自动加载

3.3 总结指令示例

"总结一下这次会话的关键内容,然后我开新会话继续"

3.4 各 Agent 的支持要求

需要在各 Agent 的 SOUL.md 中内置"会话总结迁移"的行为规范,确保指令能被正确执行。


四、重启 Gateway 注意事项

  • 不需要重启前特意写记忆memory 文件是磁盘持久化,重启后依然存在
  • Gateway 重启只影响运行时内存,不影响 memory/MEMORY.md 文件
  • Workspace 文件变更SOUL.md、AGENTS.md、USER.md 等)由 OpenClaw 自动加载

五、关键规则回顾

  1. 只盯主会话 ctxAssistant 部分Tool 的 100% ctx 是独立的
  2. ctx 超限 → 总结迁移 → 新会话
  3. 重要内容随时写入 memory,不要依赖" mental notes"
  4. Gateway 重启不影响 memory 文件,无需额外操作
  5. 向量库和文件是同一内容的两套访问方式,无需重复管理