上下文管理的挑战
AI 模型通过上下文窗口理解对话历史。上下文越长,AI 的回答越连贯,但 Token 消耗也越高。OpenClaw 提供多种策略来平衡质量与成本。
基础配置
{
"sessions": {
"maxHistory": 20,
"maxTokens": 50000,
"contextStrategy": "sliding-window"
}
}
上下文策略
滑动窗口(Sliding Window)
保留最近 N 轮对话,丢弃更早的历史:
{
"sessions": {
"contextStrategy": "sliding-window",
"maxHistory": 20
}
}
优点:简单直接,内存可控 缺点:可能丢失重要的早期上下文
智能裁剪(Smart Trim)
根据相关性保留上下文:
{
"sessions": {
"contextStrategy": "smart-trim",
"maxTokens": 50000,
"relevanceThreshold": 0.5
}
}
工作原理:计算每条历史消息与当前对话的相关性,保留高相关性的消息,裁剪不相关的中间消息。
摘要模式(Summary)
当对话超过阈值后自动生成摘要:
{
"sessions": {
"contextStrategy": "summary",
"summaryAfter": 15,
"summaryModel": "fast",
"summaryPrompt": "请将以下对话内容总结为简洁的要点,保留关键信息和用户偏好。",
"keepRecent": 5
}
}
工作原理:
- 对话达到 15 轮时触发摘要
- 使用轻量模型生成对话摘要
- 用摘要替代旧的对话历史
- 保留最近 5 轮原始对话
混合模式(Hybrid)
结合多种策略:
{
"sessions": {
"contextStrategy": "hybrid",
"phases": [
{"maxMessages": 10, "strategy": "full"},
{"maxMessages": 30, "strategy": "smart-trim"},
{"maxMessages": 999, "strategy": "summary"}
]
}
}
10 轮内保留完整历史,10-30 轮使用智能裁剪,超过 30 轮使用摘要。
系统提示词优化
系统提示词也占用上下文空间,需要精简:
{
"agents": {
"main": {
"systemPrompt": "你是 AI 助手。简洁回答,必要时详细解释。",
"dynamicPrompt": {
"base": "你是 AI 助手。",
"additions": [
{"condition": "tools_available", "text": "你可以使用以下工具:..."},
{"condition": "user_is_new", "text": "这是新用户,请友好引导。"}
]
}
}
}
}
动态提示词只在需要时添加额外内容,减少不必要的 Token 消耗。
向量记忆配合
将长期信息存入向量记忆,从上下文中释放:
{
"sessions": {
"autoMemorize": {
"enabled": true,
"triggerWords": ["记住", "以后", "每次"],
"extractFacts": true
},
"autoRecall": {
"enabled": true,
"topK": 3,
"threshold": 0.8
}
}
}
当用户说「记住我喜欢简洁的回答」时,这个偏好会被存入向量记忆,不再需要保留在对话历史中。
上下文预算
为不同部分分配 Token 预算:
{
"sessions": {
"tokenBudget": {
"total": 100000,
"systemPrompt": 2000,
"memory": 3000,
"history": 90000,
"tools": 5000
}
}
}
监控上下文使用
openclaw sessions context-stats
Context Usage Statistics:
Avg context length: 12,500 tokens
Max context length: 85,000 tokens
Avg history messages: 15
Context overflow events: 3 (auto-trimmed)
Estimated context cost: $1.25/day
按频道定制
不同频道使用不同的上下文策略:
{
"channels": {
"telegram-main": {
"session": {
"maxHistory": 30,
"contextStrategy": "hybrid"
}
},
"whatsapp-quick": {
"session": {
"maxHistory": 5,
"contextStrategy": "sliding-window"
}
}
}
}
客服场景保留较长历史以理解完整问题,快速问答场景只需少量上下文。
手动管理
用户可以通过命令管理自己的对话上下文:
用户: /clear
AI: 对话历史已清除。
用户: /context
AI: 当前对话包含 15 条消息,使用了 8,500 个 Token。
{
"channels": {
"telegram-main": {
"commands": {
"/clear": "session.clear",
"/context": "session.info"
}
}
}
}
总结
上下文管理是 OpenClaw 性能和成本优化的关键环节。根据不同场景选择合适的策略——简单聊天用滑动窗口,长期服务用摘要模式,结合向量记忆实现无限长期记忆——可以在保持优质对话体验的同时有效控制 Token 开销。