Skip to content

第 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. 静态提示词放哪里更划算?

动手实践 ​

  1. 构造含 5 个已完成步骤的对话,验证压缩后关键步骤仍在。
  2. 在 system_prompt 里加入显式保留清单。
  3. 对比有/无 prompt caching 的延迟与费用。

官方参考 ​

核验日期:2026-09-17,运行环境:Deep Agents 0.7.15。