我在 OpenClaw 上跑了 7 个 Agent

一个总指挥、一个编程助手、一个内容创作者、一个增长运营,外加法务、财务和教学助理。听起来是不是很酷?全自动的 AI 团队,分工明确,各司其职。
但实际用了几周下来,体验远没有想象中那么美好。
它们就像七个互不相识的陌生人
真实场景是这样的:
跟总指挥说:“帮我安排一篇关于多 Agent 协作的文章。”它反问:“请问你的写作风格是什么?目标读者是谁?”——可是,这些信息昨天刚告诉过它。转眼就忘,简直让人怀疑它是不是金鱼转世。
更离谱的是:开发助理刚修好了飞书 webhook 的配置问题,转头让内容助理写一篇复盘。它却问:“什么配置问题?能详细说说吗?”明明两个 Agent 在同一台服务器上运行,隔壁房间发生的事竟完全不知情。用户的心情可想而知。
每次重新介绍自己,都是在烧 Token
麻烦是表象,真正心疼的是成本。算一笔账:
| 操作 | 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 装上共享大脑
说了这么多原理,到底怎么实操?整个改造过程只花了 30 分钟,纯文件操作。
第一步:给每个 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,学会记住你。
