🧠 OpenClaw Agent 上下文工程最佳实践

📅 2026年5月19日 | 🏷️ 上下文管理 | ⏱️ 阅读时间:15分钟

让 AI Agent 不"失忆"——Session管理、Memory持久化、Token节省全攻略。

🎬 为什么 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 更聪明的关键。

三个核心原则:

记住:好的上下文工程,让你的 Agent 既有"短期记忆"又有"长期记忆"。