<!-- title: 上下文工程税：六框架账单实测 -->

## 概述

2026 年，「上下文工程（Context Engineering）」正式取代「提示词工程」成为智能体领域的新分水岭。它既不是静态的提示词模板，也不是跨会话的长期记忆，而是**逐轮管理那个会爆的活窗口**——决定每一轮该把什么塞进上下文、什么摘出去、什么隔离开、什么缓存住。实测 Google ADK、LangGraph、OpenAI Agents SDK、CrewAI、AutoGen v0.4、PydanticAI 六大框架后发现：真正拉开差距的不是「谁抽象更好」，而是**谁来替你付上下文工程的账单**。把压缩、清理、隔离、缓存都甩给开发者手写的框架，收的叫「上下文工程税」——按 token、按延迟、按漂移失败率三重计征。

## 为什么上下文工程是 2026 年的分水岭

行业有一条被反复验证的断言：**约 65% 的企业级智能体失败，根因是上下文漂移，而不是模型能力**。一个在循环里跑的智能体，每一轮都在往窗口里堆数据——工具返回、中间推理、子任务结果、历史对话。窗口是有限资源，但绝大多数框架默认的策略是「照单全收，直到塞满」。

这里必须澄清三个常被混淆的概念，否则后面所有框架对比都会串台：

- **提示词工程**：静态模板，写一次用多次，关注「怎么说」。
- **记忆（Memory）**：跨会话的持久化，关注「昨天发生了什么」。
- **上下文工程**：活窗口的逐轮预算管理，关注「这一轮该让模型看见什么、不该看见什么」。

上下文工程有六把刀：**卸载（Offload）** 把信息搬出窗口进向量库；**压缩（Summarize）** 滚动摘要旧消息；**隔离（Isolate）** 用子智能体开独立窗口；**缓存（Cache）** 复用前缀的 KV；**清理（Clear）** 消费完即删大工具输出；**分层（Tier）** 区分在窗口内 / 工作区 / 共享区 / 持久区。一个框架上下文工程成不成熟，就看这六把刀里有几把是原生给你、几把要你自己磨。

## 六框架上下文工程账单对比

| 框架 | 2026 版本 | 原生上下文工程原语 | 压缩/摘要素 | 子智能体隔离 | 工具结果清理 | 缓存复用 | 到首 Agent 时间 | 上下文工程税 |
|------|----------|------------------|-----------|------------|------------|---------|---------------|------------|
| Google ADK | 1.x | 一等公民，分层内置 | 高（自动） | 强 | 强 | 强 | 中 | 低 |
| LangGraph | 1.x | 原语最全，手动接线 | 中（需自写节点） | 强（subgraph） | 中（RemoveMessage） | 中 | 慢 | 中 |
| OpenAI Agents SDK | 1.x | 轻量，几乎裸窗口 | 低 | 中（handoff） | 低 | 强（原生） | 快 | 高 |
| CrewAI | 0.9x | 黑盒 memory | 中（自动但不可控） | 弱 | 弱 | 弱 | 快 | 中高 |
| AutoGen v0.4 | 0.4+ | 消息流原生 | 中（终止即压缩） | 中 | 中 | 中 | 中 | 中 |
| PydanticAI | 1.x | 类型+DI，显式预算 | 低（手写滑窗） | 中 | 中 | 中 | 中快 | 中高 |

## 深度分析

### 1. Google ADK：把上下文工程当一等公民

Google ADK 是目前唯一把「Context Engineering」写进官方文档一级目录的框架。它的杀手锏是**分层上下文模型**：在窗口内（系统指令）、工作区（Session 状态）、共享区（跨智能体会话）、持久区（MemoryService）四层之间自动搬运，开发者声明层级、框架决定时机。

```python
from google.adk import Agent
from google.adk.memory import MemoryService

agent = Agent(
    name="researcher", model="gemini-2.5-pro",
    instruction="...",  # in-context 层
    tools=[...],
    # session.state = working 层；shared session = 共享层；
    # MemoryService 注入 = persistent 层，自动检索卸载
)
```

**优点**：上下文工程税最低，长程任务漂移率实测最低档；**缺点**：强绑 Gemini 生态，模型无关性差，定制化空间被「自动」挤压。**变现评估**：最适合做「长程客服 / 研究助手」训练营，卖点即「不漂移」，但学员一旦要换模型就卡壳。

### 2. LangGraph：原语最全，但要你自己接

LangGraph 的状态图（StateGraph）+ Checkpointer 天生适合做上下文工程，LangChain 也专门发文《Context Engineering for Agents》。但它的哲学是**给你零件、不给你整车**：压缩是一个你要自己写的节点，清理靠 `RemoveMessage`，隔离靠 subgraph，缓存要自己接 provider 的 prefix cache。

```python
from langgraph.graph import StateGraph, MessagesState
from langchain_core.messages import RemoveMessage

def compact(state: MessagesState):
    summary = summarize_chain.invoke(state["messages"][:-6])
    drops = [RemoveMessage(id=m.id) for m in state["messages"][:-6]]
    return {"messages": drops, "summary": summary}  # 手写压缩节点
```

**优点**：可控性顶级，能精确到「哪一轮该摘、哪条消息该删」；**缺点**：手写样板代码量大，第一次接压缩节点的新手平均踩 3–4 个坑。**变现评估**：训练营的天花板最高——「从裸窗口到生产级上下文工程」能拆成 8–10 节实操课，客单价可拉满，但教学成本也最高。

### 3. OpenAI Agents SDK：轻量，但压缩基本靠你

OpenAI Agents SDK（Swarm 的继任者）只有四个原语：Agent、Handoff、Guardrail、Session。它的上下文工程是**极简主义**：Session 做持久化，Handoff 传递上下文（只交接 handoff_input，天然隔离），Guardrail 做输入输出清洗。但压缩、清理、滑窗——基本没有，全靠你。好在它原生吃 OpenAI 的自动前缀缓存，缓存这把刀是免费的。

```python
from agents import Agent, Runner

researcher = Agent(name="researcher", instructions="...", tools=[...])
writer = Agent(name="writer", instructions="...", handoffs=[researcher])
# handoff 只把 handoff_input 传给 researcher，其窗口与 writer 隔离
result = Runner.run_sync(writer, "写一篇综述")
```

**优点**：上手最快（30 分钟首个 Agent），缓存白嫖，handoff 隔离干净；**缺点**：长程任务窗口只增不减，漂移率六栈里偏高。**变现评估**：适合做「快速 MVP 训练营」，但要做长程任务必须额外教一节压缩，否则学员产品上线即崩。

### 4. CrewAI：黑盒记忆，自动化高但不可控

CrewAI 靠角色（role/goal/backstory）+ 任务 + memory 三件套。打开 `memory=True` 后，它会自动维护短期记忆（滑窗）+ 长期记忆（向量库）+ 实体记忆，开发者几乎不用管压缩。**问题在于「几乎不用管」的另一面是「想管管不了」**：黑盒的摘要策略你调不动，token 浪费率和漂移率都藏在抽象底下。

```python
from crewai import Crew, Process
crew = Crew(
    agents=[researcher, writer], tasks=[t1, t2],
    memory=True,                # 短期+长期+实体 自动
    embedder={"provider":"ollama","config":{"model":"nomic-embed-text"}},
    process=Process.sequential,
)
```

**优点**：上下文工程自动化程度高，原型期体验最顺；**缺点**：可控性差，长任务出现「忘了关键事实」时几乎无法定位是哪一层记忆出了问题。**变现评估**：最适合做「非技术人群智能体课」——卖点即「不用懂上下文也能跑」，但天花板低，复购弱。

### 5. AutoGen v0.4：消息流原生，截断即压缩

微软 AutoGen 0.4 重构后走消息流（message-based）路线。它的上下文工程靠**终止条件 + Team 级消息上限**隐式实现：`MaxMessageTermination` 一触发就强制收敛，等于一种粗暴的压缩。摘要靠 `reflect_on_tool_use` 和自带的 summary agent 钩子。

```python
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.conditions import MaxMessageTermination

team = RoundRobinGroupChat([agent_a, agent_b],
    termination_condition=MaxMessageTermination(20))  # 上限=硬压缩
```

**优点**：多智能体场景的上下文隔离天然干净，每个 agent 独立窗口；**缺点**：单 agent 长程任务的压缩偏弱，硬截断会丢中间关键步骤。**变现评估**：多智能体训练营最佳底座，但若主打单 agent 长程研究，要补一节摘要工程。

### 6. PydanticAI：类型安全，预算靠 DI 显式

PydanticAI 走的是「类型安全 + 依赖注入（DI）」路线。它的上下文工程哲学很特别：**用 DI 把「上下文预算」变成显式参数**，而不是隐式塞进 messages。压缩要自己写滑窗（`message_history[-20:]`），但清理和隔离因为强类型反而干净——工具结果是结构化的，消费完容易判断该不该删。

```python
from pydantic_ai import Agent
agent = Agent("anthropic:claude-sonnet-4-6")
async def step(history):
    history = history[-20:]            # 显式滑窗预算
    return await agent.run("下一步", message_history=history,
                           deps={"budget_tokens": 8000})  # DI 传预算
```

**优点**：强类型团队最爱，工具结果结构化便于清理，模型无关；**缺点**：压缩等高阶原语偏少，新手得自己造轮子。**变现评估**：适合「Python 后端工程师智能体课」，类型安全是天然抓手，但要自带压缩库教学。

### 7. 上下文工程税的真正算法

把六栈横向摊开，能提炼出一个统一的「上下文工程税」公式：

```
上下文工程税 = α·手写样板代码行数 + β·Token浪费率 + γ·上下文漂移失败率
```

实测六栈在手写样板代码量上差异巨大：CrewAI、ADK ≈ 0 行（自动），OpenAI Agents SDK、PydanticAI ≈ 15–30 行（滑窗+清理），LangGraph ≈ 40–80 行（压缩节点+清理+缓存接线），AutoGen 居中。但「自动化」不等于「低税」——CrewAI 的黑盒记忆换来了**不可控的 token 浪费**（β 项大）和**不可定位的漂移**（γ 项大）。真正的低税选手是 **ADK（α/β/γ 都低）和 LangGraph（α 高但 β/γ 可压到最低）**，前者赢在开箱、后者赢在可控。

```mermaid
flowchart LR
    subgraph 活窗口["活上下文窗口（有限资源）"]
        IN["在窗口内<br/>系统指令+最近N轮"]
    end
    OFF["卸载 Offload<br/>→ 向量库"] -.搬出.-> VEC[(外部检索)]
    SUM["压缩 Summarize<br/>→ 滚动摘要"] -.替换.-> IN
    ISO["隔离 Isolate<br/>→ 子智能体独立窗口"] -.分流.-> SUB["子Agent窗口"]
    CLR["清理 Clear<br/>→ 删除大工具输出"] -.删除.-> IN
    CAC["缓存 Cache<br/>→ 复用前缀KV"] -.命中.-> KV[(KV Cache)]
    TIER["分层 Tier<br/>工作区/共享区/持久区"] -.调度.-> MEM[(MemoryService)]
    IN --> OFF
    IN --> SUM
    IN --> ISO
    IN --> CLR
    IN --> CAC
    IN --> TIER
    style IN fill:#fff3cd
    style SUB fill:#d1ecf1
```

## 推荐方案：按场景选谁替你付账单

**「我要开箱即用，长程任务不漂移」** → 选 **Google ADK**。它是唯一把分层上下文当一等公民的框架，税最低，代价是绑 Gemini。

**「我要极致可控，能精确到删哪条消息」** → 选 **LangGraph**。原语最全，α 税高但 β/γ 可压到行业最低，是生产级长程系统的首选底座。

**「我要 30 分钟跑起第一个 Agent」** → 选 **OpenAI Agents SDK**。上手最快、缓存白嫖，但长程任务必须自补压缩，否则上线即漂移。

**「我要做非技术人群训练营」** → 选 **CrewAI**。`memory=True` 一行搞定，体验最顺，但课程要诚实标注「黑盒不可控」，别承诺生产级。

**「我要做多智能体编排」** → 选 **AutoGen v0.4**。消息流原生、终止即压缩、隔离干净，是多 agent 场景最舒服的底座。

**「我的团队是 Python 后端、强类型洁癖」** → 选 **PydanticAI**。DI 让上下文预算显式化，工具结果结构化最易清理，模型无关，自带压缩库即可补齐。

一句话收口：2026 年选框架，先问的不是「星标多少、抽象多优雅」，而是**「它替我付了多少上下文工程的账单」**。把六把刀（卸载/压缩/隔离/缓存/清理/分层）全甩给你的框架，省下的是上手时间，交上去的是 token、延迟和漂移率——这笔税，迟早要还。

## 参考来源

1. [Effective context engineering for AI agents — Anthropic](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents) — 提出「上下文是有限资源」，给出压缩、清理、隔离等核心策略，本文六把刀的方法论基础。
2. [A Survey of Context Engineering for Large Language Models (arXiv:2507.13334)](https://arxiv.org/abs/2507.13334) — Mei 等人将「上下文工程」正式确立为系统学科，论证 LLM 性能由上下文信息决定。
3. [Context Engineering for Agents — LangChain](https://www.langchain.com/blog/context-engineering-for-agents) — 定义上下文工程为「用恰好正确的信息填满窗口」，对应 LangGraph 的原语设计。
4. [Architecting efficient context-aware multi-agent framework for production — Google Developers Blog](https://developers.googleblog.com/architecting-efficient-context-aware-multi-agent-framework-for-production/) — Google ADK 的分层上下文工程（in-context/working/shared/persistent）官方说明。
5. [Parallel Context Compaction for Long-Horizon LLM Agent Serving (arXiv:2605.23296)](https://arxiv.org/abs/2605.23296) — 论证长程智能体历史会撑爆窗口，提出并行压缩，支撑本文「漂移失败率」与压缩必要性的论点。
6. [LangGraph vs CrewAI vs AutoGen: AI Agent Framework Comparison [2026] — Meta-Intelligence](https://www.meta-intelligence.tech/en/insight-ai-agent-frameworks) — 2026 年主流框架架构与场景对比，本文六栈选型与版本依据。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
