OpenViking 实战:给 AI Agent 装上字节跳动的记忆架构
OpenViking 实战:给 AI Agent 装上字节跳动的记忆架构
作者: Jason Zuo (@xxx111god)
来源: https://x.com/i/status/2023838143045136557
整理时间: 2026-02-18
📝 文章概述
作者分享如何将字节跳动开源的 OpenViking Agent 记忆管理框架接入自己的 AI Agent,实现 10 倍以上的 token 节省,同时保持甚至提升输出准确性。
🎯 核心问题:记忆膨胀与检索低效
原有架构的问题
作者之前已经跑了一个月的记忆管理系统:
memory/
├── MEMORY.md # 长期记忆(手动维护)
├── 2026-02-15.md # 每日日志
├── 2026-02-16.md
└── insights/
└── 2026-02.md # 月度洞察
已解决的问题:
- ✅ 每天自动记录重要对话到日志
- ✅ 定期 compound(压缩提炼)→ insights
- ✅ P0/P1/P2 生命周期系统(P0永不过期,P1 90天,P2 30天)
- ✅ 过期记忆自动归档
未解决的问题:
- ❌ 即使没过期,文件也越来越大(MEMORY.md 已 8000+ tokens)
- ❌ Bot 每次启动都要读全文
- ❌ 大部分时候用不到那么多信息(问天气交易不需要知道报税进度)
- ❌ Bot 不知道”哪些该读哪些不该读”
💡 OpenViking 的核心洞察
把 Memory 当「文件系统」管理,不是当「文档」读
关键创新:.abstract 索引机制
给每个目录加一个 .abstract 文件,作为”目录索引”。
之前:insights/ 目录,bot 要读就得读整个月度文件
之后:
- 先读 100 tokens 的索引
- 知道”这个月记录了 weather trading 策略、Reflex 调试经验、Mac Mini 迁移”
- 只有问到相关问题才去读具体内容
类比:你不会打开电脑就把所有文件内容读一遍吧?先看文件夹结构,再打开需要的文件。
🏗️ L0/L1/L2 分层架构 + P0/P1/P2 生命周期
两套系统互补
| 维度 | L0/L1/L2 分层 | P0/P1/P2 生命周期 |
|---|---|---|
| 解决什么问题 | 怎么取(检索效率) | 记什么(存储效率) |
| L0 | 根目录 .abstract 索引 |
- |
| L1 | 章节/月度概述文件 | - |
| L2 | 完整原始日志 | - |
| P0 | - | 永不过期(核心身份、偏好、铁律) |
| P1 | - | 90天 TTL(活跃项目、工作上下文) |
| P2 | - | 30天 TTL(临时信息) |
新架构文件结构
memory/
├── .abstract # 🆕 根目录索引 (L0)
├── MEMORY.md # 长期记忆 + P0/P1/P2 标签
├── SESSION-STATE.md # 🆕 工作缓冲区
├── insights/
│ ├── .abstract # 🆕 洞察索引 (L0)
│ └── 2026-02.md # L1 提炼
├── lessons/
│ ├── .abstract # 🆕 教训索引 (L0)
│ └── operational-lessons.jsonl # 🆕 结构化 (L1)
├── 2026-02-17.md # L2 原始日志
└── archive/ # 过期 P1/P2 归档
检索流程
- 读 L0
.abstract→ 快速定位相关目录 - 读 L1 概述 → 确认是否需要深入
- 按需读 L2 详情 → 获取完整信息
生命周期流程
新信息 → 打 P1/P2 标签 → 90/30天后过期 → 自动归档
核心信息 → 打 P0 标签 → 永不过期
📊 效果:Token 节省 10 倍以上
日常场景:
- 之前:无脑全加载,8000+ tokens
- 之后:先读索引 100 tokens,按需加载详情
该深入的时候还是会深入,但不再每次都要全读。
🛠️ 实现细节
新增脚本:
generate_abstract.py— 扫描目录,自动生成/更新.abstractrescue_before_compound.py— Context 压缩前把重要内容抢救到工作缓冲区
开发成本:一个下午,大部分代码让 bot 写,作者提需求和测试。
💭 核心认知转换
Agent 不应该每次都”读完整本书”,而是:
- 先看目录(L0 abstract)
- 定位章节(L1 overview)
- 按需读详情(L2 full content)
这跟人类的记忆很像 — 重要的事记得牢,琐碎的事会淡忘,但需要的时候还能想起来。
📋 给 OpenClaw / Claude Code 用户的建议
- 不要让 memory 无限膨胀 — 定期 compound(压缩提炼)
- 分层存储 — 热数据小而精,冷数据按需取
- 给 bot 建个 working buffer — 压缩前能自救
- 给记忆加 TTL — P0 永久,P1/P2 定期归档
🔗 相关链接
- 原文: https://x.com/i/status/2023838143045136557
- OpenViking: 字节跳动开源的 Agent 记忆管理框架
🏷️ 标签
#AI #Agent #Memory #OpenViking #字节跳动 #OpenClaw #Context管理 #Token优化