第 07 章 · 上下文压缩与 Prompt Caching
长任务上下文会膨胀。Deep Agents 内置 offload/摘要,把历史与大型工具结果压缩;在 Anthropic/Bedrock 上静态 prompt 段还能启用 prompt caching 降低每轮成本。
机制与设计选择
上下文工程 = 输入上下文 + 运行时上下文 + 压缩 + 长期记忆。压缩不是“删历史”,而是保留关键结论让长任务继续。Prompt caching 需要模型侧支持,不是所有 Provider 都提供或免费。
示例
python
import os
from langchain_openai import ChatOpenAI
model = ChatOpenAI(
model=os.environ["MODEL_ID"],
api_key=os.environ["DEEPAGENT_API_KEY"],
base_url=os.environ.get("DEEPAGENT_BASE_URL", "https://api.openai.com/v1"),
)
from deepagents import create_deep_agent
agent = create_deep_agent(
model=model,
system_prompt="Stay under 100 words. Prefer summaries over transcripts.",
)
result = agent.invoke({
"messages": [
{"role": "user", "content": "Here is a long log. Summarize it in one line: " + "deploy step ok; " * 300},
]
})
print(result["messages"][-1].content)运行与验收
需要 API Key。验收:回答是简短摘要(不超过 100 词),而不是把日志复述出来。
容易踩的坑
压缩不是零成本:关键信息如果没被保留,下游决策会漂移。给任务写“保留清单”(用户意图、已完成步骤、待验证结论),并在压缩后对照校验。
🧪 随堂测验
点击你认为正确的选项。答错时会展示正确答案与原因解析。
1. 压缩的目标?
2. prompt caching 一定免费吗?
3. 压缩后应做什么?
4. 静态提示词放哪里更划算?
动手实践
- 构造含 5 个已完成步骤的对话,验证压缩后关键步骤仍在。
- 在 system_prompt 里加入显式保留清单。
- 对比有/无 prompt caching 的延迟与费用。
官方参考
核验日期:2026-09-17,运行环境:Deep Agents 0.7.15。