Tape:Agent 上下文管理的新范式
> 来源: https://tape.systems | https://github.com/ServiceNow/TapeAgents | https://arxiv.org/abs/2412.08445 | https://arxiv.org/abs/2602.23193
> 核心主张: "Context as Architecture"——上下文不是附属品,是架构本身
> 日期: 2026-03-12
📌 一句话总结
Tape 是一种将 Agent 的所有行为记录为不可变、只追加的结构化事实序列的架构范式。它不是某一个框架,而是一种跨越学术论文(TapeAgents, ESAA)、开源项目(Bub)和理论网站(tape.systems)的思想运动——正在重塑我们对 Agent 记忆和上下文的理解。
🧠 核心思想:上下文即架构
当前的问题
所有 LLM Agent 都面临一个根本矛盾:
Agent 的能力 ∝ 上下文质量
上下文质量 ∝ 信息量
信息量 ↑ → Token 成本 ↑ + 注意力稀释 ↑ + 延迟 ↑
当前的应对方式:
- 滑动窗口:丢弃旧消息 → 丢失信息
- 摘要压缩:LLM 自动摘要 → 幻觉 + 信息损失不可控
- RAG 检索:按需检索 → 检索质量不稳定
Tape 的回答:不要在"保留多少"和"丢弃多少"之间做选择——全部保留,按需组装。
Tape 的四个核心概念
┌─────────────────────────────────────────┐
│ TAPE(完整记录) │
│ │
│ Entry #1 Entry #2 Entry #3 ... │
│ [user] [思考] [工具调用] ... │
│ │
│ ⬇ Anchor(检查点) │
│ ┌──────────────────────────┐ │
│ │ phase: "research_done" │ │
│ │ summary: "选择了 Rust" │ │
│ │ evidence: [3, 15, 42] │ │
│ └──────────────────────────┘ │
│ │
│ ⬇ View(按需组装) │
│ ┌──────────────────────────┐ │
│ │ Anchor 状态 │ │
│ │ + 相关 Entry(检索) │ │
│ │ + 当前任务指令 │ │
│ │ = 发给 LLM 的 Prompt │ │
│ └──────────────────────────┘ │
└─────────────────────────────────────────┘
| 概念 | 定义 | 不变量 |
|---|---|---|
| **Tape** | 按时间排序的事实序列 | 只追加,不覆盖,不删除 |
| **Entry** | 单条不可变事实记录 | 有单调递增 ID,创建后不可修改 |
| **Anchor** | 逻辑检查点 | 携带结构化状态,可从此重建上下文 |
| **View** | 面向任务的上下文窗口 | 从 Anchor + 相关 Entry 构建,不继承全部历史 |
🔬 三个实现:从理论到实践
1. TapeAgents(ServiceNow Research)
最成熟的学术实现。
- 来源: https://github.com/ServiceNow/TapeAgents
- 论文: arXiv:2412.08445(2024-12)
- 团队: ServiceNow Research(Dzmitry Bahdanau 等)
- Stars: 高活跃度开源项目
核心设计:
# Agent 读 Tape → 生成 Prompt → 追加新 Step
class MainNode(Node):
def make_prompt(self, agent, tape) -> Prompt:
return Prompt(messages=tape_to_messages(tape))
def generate_steps(self, agent, tape, llm_stream):
yield AssistantStep(content=llm_stream.get_text())
关键能力:
- 可恢复执行:从任意中间 Tape 恢复 Agent 运行
- Step 级调试:逐步回放 Agent 的每一个决策
- Tape 复用:Agent A 的 Tape 可以给 Agent B 使用
- 训练数据生成:Tape 天然是结构化训练数据
- LLM 微调:用优质 Tape 微调小模型(案例:Llama-3.1-8B 达到 GPT-4o 水平)
独特之处:Tape 不只是日志——它是可复用、可优化的资产。论文展示了用 GPT-4o 的 Tape 微调 Llama-8B,让小模型表现接近大模型。
2. ESAA(Event Sourcing for Autonomous Agents)
将软件工程的 Event Sourcing 模式引入 Agent。
- 论文: arXiv:2602.23193(2026-02)
- 核心创新:Agent 不直接修改状态——它只发出意图(Intention)
传统 Agent: Agent → 直接写文件/执行命令
ESAA Agent: Agent → 发出 Intention → 编排器验证 → 持久化事件 → 应用效果
架构要素:
- agent.result / issue.report:Agent 发出的结构化意图
- activity.jsonl:追加式事件日志(不可变)
- roadmap.json:可验证的物化视图
- AGENT_CONTRACT.yaml:边界约定
- esaa verify:重放验证 + 哈希校验
案例验证:
- 着陆页项目:9 任务、49 事件、单 Agent
- 临床仪表盘:50 任务、86 事件、4 个并发 Agent(Claude Sonnet、GPT-5 Codex、Gemini 3 Pro、Claude Opus)
关键洞察:意图与执行的分离 = Agent 不能"偷偷"改东西。所有状态变更都经过编排器验证。这对安全和审计至关重要。
3. Bub + tape.systems
最前沿但最早期的实现。
- 来源: https://tape.systems | https://github.com/bubbuild/bub
- 特色:Anchor 可以形成非线性图——不只是一条时间线
Anchor A
/ \
Anchor B Anchor C ← 分支(fork)
\ /
Anchor D ← 合并(merge)
高级特性:
- 多节点 Anchor 图(非线性历史)
- 策略驱动的 View 组装
- 显式的血统追踪(lineage & provenance)
📐 Tape vs 现有方案
vs 传统对话历史
| 维度 | 传统(消息列表) | Tape |
|---|---|---|
| 结构 | 平坦的消息数组 | 类型化 Step(思考/行动/观察) |
| 修改 | 可以编辑/删除 | **不可变,只追加** |
| 粒度 | 消息级 | Step 级(一条消息可拆为多个 Step) |
| 恢复 | 需要完整重放 | 从 Anchor 恢复 |
| 训练 | 需要额外标注 | **天然是训练数据** |
| 审计 | 有限 | **完整、可验证** |
vs Event Sourcing(软件工程)
Tape 本质上就是 Event Sourcing 在 AI Agent 领域的应用:
| Event Sourcing | Tape |
|---|---|
| Event Store | Tape(追加式事实序列) |
| Event | Entry / Step |
| Snapshot | Anchor |
| Projection | View |
| Command | Agent 的 Intention |
| Aggregate | Agent Session |
这不是巧合——ESAA 论文明确引用了 Event Sourcing 模式。
vs OpenClaw 的 Session Compaction
| 维度 | OpenClaw Compaction | Tape |
|---|---|---|
| 触发 | 被动(context 满了) | **主动**(阶段完成时) |
| 格式 | 自由文本摘要 | **结构化数据** |
| 原始数据 | 压缩后丢弃 | **永久保留** |
| 可追溯 | ❌ | ✅ 证据指针 |
| 可恢复 | ❌ 不可逆 | ✅ 从 Anchor 恢复 |
| 可训练 | ❌ | ✅ 天然训练数据 |
| 多 Agent | ❌ 单 Session | ✅ Handoff 交接 |
💡 为什么 Tape 重要?
1. Agent 正在变长
从"一问一答"→"多轮对话"→"跨天项目"→"跨月工作流"。上下文管理不再是优化项,而是基础设施。
2. Agent 正在变多
从"单 Agent"→"多 Agent 协作"→"人机混合团队"。需要标准化的信息传递和交接协议。
3. Agent 需要可信
企业场景需要:每个决策可追溯、每个操作可审计、异常可回滚。Tape 的不可变性天然满足。
4. Agent 可以被优化
Tape 是训练数据的自然形态。好 Agent 的 Tape 可以微调差 Agent → 知识蒸馏成为框架原生功能。
🌍 生态全景
tape.systems(理论)
│
┌─────────────┼─────────────┐
▼ ▼ ▼
TapeAgents ESAA Bub
(ServiceNow) (学术论文) (bubbuild)
成熟度: ★★★★ 成熟度: ★★★ 成熟度: ★★
场景: 通用 场景: 安全 场景: 协作
特色: 训练 特色: 验证 特色: 交接
相关但不同的项目:
- LangGraph:有 checkpoint 概念,但不是不可变 Tape
- DSPy:有优化能力,但没有 Tape 的审计/交接功能
- AutoGen:有多 Agent,但没有形式化的交接协议
🔮 对我们的启发
短期可借鉴
1. 深度研究报告 = Tape:我们的报告系统已经是追加式的——每个报告是一个 Entry,有来源链接(= source_ids)。可以更显式地结构化
2. Sub-Agent 交接:spawn 子 Agent 时传入结构化 Anchor(而不是自由文本摘要),可以提高子 Agent 的上下文质量
长期值得关注
3. Tape 训练循环:如果未来 OpenClaw 支持 Tape 格式,我们的所有 Agent 交互都自动成为训练数据——可以微调小模型做日常任务
4. ESAA 安全模式:Agent 不直接执行,只发出意图 → 编排器验证后执行。对于高风险操作(发邮件、转账、部署),这是正确的架构
📊 评分
| 维度 | 评分(/10) |
|---|---|
| 概念创新性 | 9.5 — Event Sourcing + Agent = 自然而深刻的结合 |
| 学术深度 | 9.0 — TapeAgents 论文 + ESAA 论文 + 安全审计扩展 |
| 实用价值 | 7.5 — TapeAgents 可用,Bub/tape.systems 太早期 |
| 生态影响力 | 8.0 — 正在形成跨项目的思想运动 |
| 与我们的关联 | 7.5 — 理念直接可借鉴,长期可能影响 OpenClaw 架构 |
| **综合** | **8.3** |
报告由深度研究助手自动生成 | 2026-03-12
来源: https://tape.systems | https://github.com/ServiceNow/TapeAgents | https://arxiv.org/abs/2412.08445 | https://arxiv.org/abs/2602.23193