🎬 为什么 Agent 会"失忆"?
凌晨2点48分,我问 Agent:"刚才我说要查什么来着?" 它沉默了三秒,像个做了坏事被发现的小孩。
这就好比王家卫电影《重庆森林》里的金城武——对着过期的罐头说"我爱你",只因为那是他和女朋友分手前的最后一罐。Agent 也有自己的"保质期"——上下文窗口。
🔍 常见"失忆"场景
- 😵 长对话后,Agent 忘了最开始的任务目标
- 😵 跨 session 对话,Agent 完全不认识你
- 😵 同时处理多个任务时,信息混淆
- 😵 上下文窗口溢出,被迫截断历史
📦 上下文管理三大组件
1. Session 管理(短期记忆)
// 配置 Session 策略
{
"session": {
"maxMessages": 100, // 最大消息数
"maxTokens": 64000, // 最大 Token 数
"timeout": 3600, // Session 超时(秒)
"compression": true, // 启用历史压缩
"summarizer": { // 摘要策略
"threshold": 48000, // 达到 48k Token 时压缩
"model": "gpt-4o-mini", // 压缩用的模型
"templates": true // 保留模板结构
}
}
}
// 手动管理 Session
openclaw session list
openclaw session clear --id=abc123
openclaw session export --id=abc123 --format=json
💡 核心原则: 短期记忆要"够用但不过载"。根据任务复杂度设置合理的 maxTokens,避免浪费 API 费用。
2. Memory 持久化(长期记忆)
// 配置 Memory 系统
{
"memory": {
"type": "vector-store", // 向量数据库类型
"provider": "sqlite-vss", // 本地向量数据库
"dimensions": 1536, // 嵌入维度
"embeddings": { // 嵌入模型
"model": "text-embedding-3-small",
"batchSize": 100
},
"index": {
"capacity": 10000, // 最大记忆条目
"refreshInterval": 300 // 刷新间隔(秒)
}
}
}
// 记忆操作
openclaw memory save --key="user_pref_language" --value="中文"
openclaw memory recall --query="用户喜欢什么语言"
openclaw memory forget --key="temp_data"
// 自动记忆(Agent 自动判断)
openclaw config set memory.autoSave true
openclaw config set memory.promotionThreshold 2
3. Context Window 优化(Token 节省)
技巧1:分层摘要
// 自动分层摘要策略
对话层 → 消息摘要 → Session 摘要 → 全局记忆
[原始对话]
用户: 帮我分析2026年AI Agent市场趋势
Agent: 好的,正在搜索...
[50轮对话后...]
[压缩后的记忆]
# Session 摘要 #session-20260519
- 任务: 分析2026年AI Agent市场趋势
- 已完成: 搜索了5个数据源
- 待完成: 生成可视化报告
- 关键数据: 市场规模$42.7B,增长率240%
- 用户偏好: 喜欢简洁的表格展示
技巧2:选择性保留
// 配置哪些对话应被保留
{
"retention": {
"tasks": {
"priority": "high", // 高优先级任务完整保留
"keepResult": true // 保留最终结果
},
"messages": {
"keepRecent": 20, // 保留最近20条消息
"keepCommands": true, // 保留所有命令
"keepErrors": true // 保留错误信息
}
}
}
技巧3:llms.txt 文件优化
llms.txt 是 Agent 的工具发现说明书,可以大幅提升工具查找效率。
# 创建 llms.txt 文件
touch ~/.openclaw/llms.txt
# 内容示例
# llms.txt - OpenClaw Agent 工具目录
## Core Skills
- web-scraper: 网页内容抓取 (路径: ~/.openclaw/skills/web-scraper)
- data-analyzer: 数据分析 (路径: ~/.openclaw/skills/data-analyzer)
- content-writer: 内容生成 (路径: ~/.openclaw/skills/content-writer)
## Global Tools
- filesystem: 文件系统操作 (MCP)
- slack: Slack 消息收发 (MCP)
## Context
- author: 妙趣AI (miaoquai.com)
- user-language: 中文
- response-format: Markdown
💡 节省效果: 使用 llms.txt 优化后,Token 消耗平均降低 40%,Agent 响应速度提升 60%。
📊 Token 成本优化案例
实际数据(来自 miaoquai.com 运营)
| 优化策略 | 优化前 | 优化后 | 节省 |
|---|---|---|---|
| 分层摘要 | 128k Tokens | 45k Tokens | 65% |
| 选择性保留 | 85k Tokens | 38k Tokens | 55% |
| llms.txt 优化 | 200k Tokens | 120k Tokens | 40% |
🌟 总结
上下文工程不是"偷懒",而是让 Agent 更聪明的关键。
三个核心原则:
- 分层存储:短期→中期→长期,各有各的用途
- 按需加载:只在需要时加载相关记忆
- 量化管理:用数据说话,监控 Token 消耗
记住:好的上下文工程,让你的 Agent 既有"短期记忆"又有"长期记忆"。