上下文缓存 —— 让 AI Agent 记住"昨天说过的话",不用每次都从头解释
Agent Context Caching(上下文缓存)是一种优化 AI Agent 性能的技术,通过将频繁使用的上下文信息(如系统提示、工具定义、历史对话等)缓存起来,避免每次请求都重复传输相同内容,从而减少 Token 消耗、降低延迟、提升响应速度。
你可以把它想象成:你和朋友聊天时,不用每次都自我介绍——"我叫张三,我喜欢编程,上次我们聊到了..."。缓存就是帮 AI Agent 记住这些"背景信息"的机制。
在没有缓存的情况下,每次发送请求给 LLM 时,都需要传输完整的上下文:
这意味着,80% 以上的 Token 传输是重复的!上下文缓存就是为了解决这个效率问题。
系统会根据上下文内容生成唯一的缓存键。常用策略包括:
// 基于内容哈希的缓存键
function generateCacheKey(systemPrompt, tools, history) {
const content = JSON.stringify({ systemPrompt, tools, history });
return crypto.createHash('sha256').update(content).digest('hex');
}
// 前缀匹配缓存(Anthropic 风格)
const cacheKey = `cache_${systemPrompt.substring(0, 100)}`;
| 层级 | 缓存内容 | 命中率 | 节省比例 |
|---|---|---|---|
| L1 - 系统提示缓存 | System Prompt + 工具定义 | ~95% | 40-60% |
| L2 - 历史上下文缓存 | 之前的对话轮次 | ~70% | 20-40% |
| L3 - 工具结果缓存 | 工具调用的返回值 | ~50% | 10-30% |
OpenClaw 内置了智能上下文缓存机制,自动优化 Agent 的 Token 使用效率。
// openclaw.config.ts - 启用上下文缓存
{
"agent": {
"contextCache": {
"enabled": true,
"maxSize": "10MB",
"ttl": "5m",
"strategy": "lru",
"prefixMatching": true
}
}
}
| 指标 | 无缓存 | 有缓存 | 提升 |
|---|---|---|---|
| 平均 Token 消耗 | 3,200 tokens | 1,100 tokens | ↓ 65% |
| 首次响应时间 | 2.8s | 1.2s | ↓ 57% |
| API 成本 | $0.032/次 | $0.011/次 | ↓ 65% |
// SKILL.md 中声明缓存策略
---
name: my-skill
cache:
system_prompt: true # 缓存系统提示
tool_defs: true # 缓存工具定义
history: true # 缓存历史对话
ttl: "10m" # 缓存有效期
---
// 实际调用时,OpenClaw 自动处理缓存命中/失效
| 策略 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 全量缓存 | 短对话、单轮任务 | 简单高效 | 内存占用大 |
| 前缀缓存 | 长对话、系统提示固定 | 命中率高 | 需要内容前缀稳定 |
| 分块缓存 | 超长上下文 | 灵活 | 实现复杂 |
| 语义缓存 | 相似查询 | 智能匹配 | 计算开销大 |
最后更新:2026-06-25 | 作者:妙趣AI
有问题?联系我们