对话记忆的层次
OpenClaw 的对话记忆分为三个层次:
- 短期记忆:当前对话的上下文窗口
- 会话记忆:单个用户的对话历史
- 长期记忆:跨会话的持久化知识
短期记忆:上下文窗口
每次 AI 回复时,OpenClaw 会将最近的对话历史发送给模型。上下文窗口的大小由模型决定:
| 模型 | 上下文窗口 |
|---|---|
| Claude Sonnet 4.6 | 200K tokens |
| GPT-4o | 128K tokens |
| Qwen-Max | 128K tokens |
| Qwen-Turbo | 32K tokens |
配置上下文长度
{
conversation: {
maxContextTokens: 8000, // 发送给模型的最大 token 数
maxHistoryMessages: 50, // 保留的最大历史消息数
systemPrompt: "你是一个有帮助的 AI 助手。"
}
}
maxContextTokens 控制实际发送给模型的 token 数量。设得太小会让 AI "失忆",设得太大会增加成本和延迟。
推荐值:
- 日常对话:4000-8000
- 技术协助:8000-16000
- 长文创作:16000-32000
会话记忆:对话历史
OpenClaw 默认将对话历史保存在本地:
{
conversation: {
storage: "local", // local | redis | postgres
historyRetention: "30d", // 历史保留时长
separateByChannel: true // 每个频道独立会话
}
}
会话隔离策略
{
conversation: {
isolation: "user", // user | channel | global
}
}
user:每个用户独立会话(推荐)channel:每个频道一个共享会话global:所有频道和用户共享一个会话
手动管理会话
用户可以通过命令管理自己的会话:
/new— 开始新对话,清除当前上下文/history— 查看对话历史/export— 导出对话记录
长期记忆:持久化知识
长期记忆让 AI 记住跨会话的信息,例如用户偏好、项目背景等。
启用长期记忆
需要安装 Memory Skill:
clawhub install memory
配置:
{
skills: {
memory: {
backend: "local", // local | redis
maxMemories: 1000, // 最大记忆条数
autoSummarize: true, // 自动提炼关键信息
relevanceThreshold: 0.7 // 记忆相关性阈值
}
}
}
记忆的工作方式
- 自动存储:AI 在对话中识别到值得记住的信息时,自动存储为记忆
- 自动召回:新对话开始时,AI 根据上下文检索相关记忆
- 手动管理:用户可以通过
/remember和/forget命令管理
示例对话:
用户:我叫张三,是一名后端工程师,主要用 Go 语言
AI:好的张三,已经记住了你的信息。
---(新的对话)---
用户:帮我写一个 HTTP 服务器
AI:好的张三,我用 Go 帮你写一个 HTTP 服务器...
系统提示词优化
系统提示词是影响 AI 行为的关键。OpenClaw 支持多级系统提示词:
{
conversation: {
systemPrompt: "你是 OpenClaw AI 助手。",
channelPrompts: {
telegram: "用户通过 Telegram 联系你,请保持回复简洁。",
webchat: "用户通过网页联系你,可以使用 Markdown 格式。"
}
}
}
提示词模板变量
系统提示词支持动态变量:
{
conversation: {
systemPrompt: "你是 的 AI 助手。当前时间:。用户:。"
}
}
可用变量:
- ``:品牌名称
- ``:当前时间
- ``:用户名
- ``:当前频道
- ``:用户语言
性能优化建议
- 合理设置 maxContextTokens:不是越大越好,找到质量和成本的平衡点
- 启用 autoSummarize:长对话自动压缩历史,保留关键信息
- 按频道隔离:避免不同场景的对话互相干扰
- 定期清理历史:设置
historyRetention自动清理过期数据