我在 OpenClaw 上跑了 7 个 Agent。
一个大总管,一个写代码的,一个写文章的,一个搞增长的,还有法务、财务、教学。
听起来 NB 吧?全自动AI团队,分工明确,各司其职。
但用了几周了,我快疯了。
它们活得像七个陌生人
真实场景。
我跟大总管说:"帮我安排一篇关于多Agent协作的文章。"
它问我:"请问你的写作风格是什么?目标读者是谁?"
兄弟。我。昨天。刚。告诉过你。
你是不是金鱼转世。。。
更离谱的是——
开发助理刚帮我修好了飞书 webhook 的配置问题。我转头让内容助理写篇复盘。
它说:"什么配置问题?能详细说说吗?"
你俩在同一台服务器上跑着啊!隔壁房间的事你都不知道??
我当时的心情:🙂(假笑)
每次重新介绍自己,都是在烧钱
你以为只是麻烦?不,还费钱。
我算了一笔账:
操作 | token 消耗 |
|---|---|
每次重新交代背景(500字) | ~700 tokens |
7 个 Agent 各交代一次 | ~4900 tokens |
一天开 10 次对话 | ~49000 tokens |
一个月下来。。。光是"自我介绍"就烧掉一大坨。
咱就是说,这不是助理在工作,这是我在工作——重复给7个人做入职培训。
字节开源了个东西,把我点醒了
字节跳动最近开源了一个项目叫 OpenViking。
GitHub 地址:github.com/volcengine/OpenViking
它的核心思路特别简单——
把 Agent 的记忆当文件系统来管理。
啥意思?
你打开电脑找文件的时候,会把硬盘里所有文件内容全读一遍吗?
不会吧。你先看文件夹名,找到目标文件夹,再打开具体文件。
Agent 读记忆也该这样。
但现在大多数 Agent 的做法是:每次启动,把记忆文件从头到尾全部读一遍。
100 行的时候没感觉。8000 行的时候,token 哗哗地烧。
家有矿也不是这个烧法。
L0 / L1 / L2:三层按需加载
OpenViking 把记忆分成三层:
层级 | 内容 | 类比 | token |
|---|---|---|---|
L0 | 目录索引 | 文件夹名 | ~100 |
L1 | 内容摘要 | 文件简介 | ~500 |
L2 | 完整内容 | 文件全文 | ~5000+ |
每次启动只读 L0。100 个 token,就知道记忆里有啥。
需要具体信息?读 L1 摘要。确认了?才读 L2 全文。
从"每次全读"变成"按需读取"。
我实测,日常对话 token 消耗直接降 10 倍。
不是省一点点,是断崖式下降。
P0 / P1 / P2:给记忆加保质期
光分层还不够。记忆会越来越多。
OpenViking 的另一招——给记忆打"保质期":
标签 | 含义 | 保留时间 | 举例 |
|---|---|---|---|
P0 | 核心信息 | 永久 | 用户名、写作风格 |
P1 | 活跃项目 | 90 天 | 当前正在写的文章 |
P2 | 临时记录 | 30 天 | 某次对话的调试细节 |
P0 永远不删。P1 过期归档。P2 到期清理。
就像人的记忆——重要的事记得牢,琐碎的事会淡忘。但去翻笔记还能找回来。
我的真实改造:给 OpenClaw 多 Agent 装上共享大脑
说了这么多原理。我到底怎么做的?
第一步:给每个 Agent 加索引文件(10 分钟)
在每个 Agent 的 memory 目录下建一个 .abstract 文件,就是 L0 索引。
# memory/.abstract
- 用户偏好:写作风格、发布节奏、目标读者
- 系统配置:Agent 列表、通信方式、模型设置
- 项目记录:当前创作任务、历史发布文章
- 工具笔记:常用命令、API 配置、踩坑记录Agent 每次启动,先读这个。只有需要具体信息时,才深入读对应的文件。
第二步:给记忆打 P 标签(10 分钟)
## [P0] 用户基本信息
- 名字:MJ
- 写作风格:大白话、短句、第一人称
## [P1] 当前项目:OpenViking 记忆改造
- 状态:初稿
- 截止:2026-03-01
## [P2] 2026-02-22 调试记录
- 飞书 webhook 超时问题
- 已解决,改了超时配置然后写个清理脚本,每天扫一次。过期的自动归档。
第三步:共享记忆层——这才是杀手锏(10 分钟)
创建一个所有 Agent 都能读的共享目录:
shared-memory/
├── .abstract # 共享记忆索引
├── user-profile.md # 用户画像(所有 Agent 共用)
├── active-tasks.md # 当前进行中的任务
└── cross-agent-log.md # 跨 Agent 协作记录怎么让 Agent 自动往里写?
不用写代码。
OpenClaw 每个 Agent 启动都会读 AGENTS.md——它的工作手册。加一条规则就行:
## 共享记忆规则
完成重要任务后,把关键结果追加到 shared-memory/cross-agent-log.md
格式:- [日期] [角色] 做了什么,关键结论
只记结论,不记过程。一条不超过两行。就像给员工立了个规矩:"做完事,在共享文档记一笔。"
Agent 会自觉执行。真的会。
改造前 vs 改造后
对比 | 改造前 | 改造后 |
|---|---|---|
每次对话 token | 8000+ | ~800 |
Agent 间信息共享 | ❌ 各自独立 | ✅ 共享记忆 |
过期信息处理 | 手动清理 | 自动归档 |
新对话要重复介绍 | 每次都要 | 自动读取 |
但我想说点不一样的
字节的 OpenViking 确实牛。
但我查了它的 GitHub——
它是一个独立的 Python 服务。 需要单独部署,需要配置 VLM 和 Embedding 模型,需要 API Key。
不是说不好。是说对于大多数 OpenClaw 用户来说,杀鸡用了牛刀。
OpenClaw 本身的 MEMORY.md + memory/ 目录 + AGENTS.md 规则,已经实现了记忆管理的底层架构。
你要做的不是"接入 OpenViking",而是把 OpenViking 的思想,用 OpenClaw 原生的方式落地。
分层加载的思想 → .abstract 索引文件
生命周期管理 → P0/P1/P2 标签 + 清理脚本
共享记忆 → shared-memory/ 目录 + AGENTS.md 规则
不用装任何东西。不用跑任何服务。
30 分钟,纯文件操作,搞定。
一段提示词,让 OpenClaw 帮你搞定
把下面这段扔给你的 OpenClaw Agent:
请参考 OpenViking 的分层记忆思想,给我的多 Agent 系统做记忆改造:
1. 为每个 Agent 的 memory 目录添加 .abstract 索引文件
2. 给现有记忆条目添加 P0/P1/P2 生命周期标签
3. 创建 shared-memory/ 共享记忆层
4. 在 AGENTS.md 里添加跨 Agent 记忆同步规则
5. 写一个每日清理脚本,自动归档过期记忆
直接执行,不用问我。它会帮你全流程搞完。
最后
Agent 的记忆问题,说白了就两件事:
不要每次全读——先看目录,按需取。
让 Agent 之间能互相通气——共享记忆层。
字节的 OpenViking 把这套思路开源了,我们拿来借鉴。但不一定要照搬它的技术方案。
思想是免费的。落地才是本事。
30 分钟改造,token 省 10 倍,7 个 Agent 终于不再是陌生人了。
老铁们,别光让自己多动脑子——
也得让你的 Agent,学会记住你。