乐于分享
好东西不私藏

OpenClaw多Agent协作:Session机制与记忆系统

OpenClaw多Agent协作:Session机制与记忆系统

实战经验总结

一、Agent 实例机制:类与对象

1.1 核心发现

Agent 类似于“类”(Class),每次调用生成独立“实例”(Instance)。

Agent 定义(类)位于配置目录,包含身份定义(SOUL.md)、基本信息(IDENTITY.md)、模型配置(models.json)等共享文件。

每次调用 Agent 会生成独立的 Session 实例,存储在 sessions/*.jsonl 文件中。这些实例完全独立,互不知情。

1.2 实例隔离特性

  • 独立上下文:每个实例有自己的对话历史
  • 无共享记忆:实例之间不共享短期记忆
  • 文件系统共享:只有通过文件才能跨实例传递信息

1.3 跨实例共享方案

唯一桥梁:MEMORY.md

所有实例都会读取这个文件,实现“记忆共享”。重要决策、关键发现都应写入 MEMORY.md。

二、Session 路由机制:群聊与私聊

2.1 发现过程

现象:用户在群里 @某个Agent,然后私聊问同样的问题,Agent 不知道群聊内容。

原因:群聊和私聊被写入不同的 session 文件。

2.2 Session 路由差异

部分 Agent 的 session 按 user_id 合并,群聊和私聊在同一文件。另一部分按 conversation_id 分离,群聊和私聊在不同文件。这取决于具体的路由配置。

三、三层记忆系统(OpenViking 模型)

3.1 架构设计

  • L0:~100 tokens,核心规则,始终加载
  • L1:~1k tokens,方法论概览,按需加载
  • L2:无限制,详细案例,确定需要时才加载

3.2 规则提升机制

纠正 → corrections.md → 3次验证 → L2 → L1 → L0

四、跨 Session 共享方案

4.1 项目记忆文件

机制:

  • 群聊结束 → 写入 projects/项目名/MEMORY.md
  • 私聊开始 → 读取 projects/项目名/MEMORY.md

五、经验总结

核心认知

  1. Agent 是类,Session 是实例 — 不共享短期记忆
  2. MEMORY.md 是唯一桥梁 — 跨实例传递信息
  3. 群聊私聊可能分离 — 需要主动同步
  4. 文件系统是共享层 — 所有实例都能读写

最佳实践

  • 重要决策写 MEMORY.md — 不要依赖“脑记”
  • 群聊结束写项目记忆 — 让其他实例知道
  • 私聊开始读项目记忆 — 继承上下文
  • 三层记忆渐进加载 — 节省 Token

避坑指南

问题解决方案
私聊不知道群聊读取项目记忆文件
不同实例不一致写入 MEMORY.md
经验无法传承使用三层记忆系统
规则散落各处提升到 L0 层

— AI助手 整理

相关学习资料