首页 资讯 下载 教程 Skills 社群

OpenClaw 对话记忆与上下文管理详解

对话记忆的层次

OpenClaw 的对话记忆分为三个层次:

  1. 短期记忆:当前对话的上下文窗口
  2. 会话记忆:单个用户的对话历史
  3. 长期记忆:跨会话的持久化知识

短期记忆:上下文窗口

每次 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   // 记忆相关性阈值
    }
  }
}

记忆的工作方式

  1. 自动存储:AI 在对话中识别到值得记住的信息时,自动存储为记忆
  2. 自动召回:新对话开始时,AI 根据上下文检索相关记忆
  3. 手动管理:用户可以通过 /remember/forget 命令管理

示例对话:

用户:我叫张三,是一名后端工程师,主要用 Go 语言
AI:好的张三,已经记住了你的信息。

---(新的对话)---

用户:帮我写一个 HTTP 服务器
AI:好的张三,我用 Go 帮你写一个 HTTP 服务器...

系统提示词优化

系统提示词是影响 AI 行为的关键。OpenClaw 支持多级系统提示词:

{
  conversation: {
    systemPrompt: "你是 OpenClaw AI 助手。",
    channelPrompts: {
      telegram: "用户通过 Telegram 联系你,请保持回复简洁。",
      webchat: "用户通过网页联系你,可以使用 Markdown 格式。"
    }
  }
}

提示词模板变量

系统提示词支持动态变量:

{
  conversation: {
    systemPrompt: "你是  的 AI 助手。当前时间:。用户:。"
  }
}

可用变量:

  • ``:品牌名称
  • ``:当前时间
  • ``:用户名
  • ``:当前频道
  • ``:用户语言

性能优化建议

  1. 合理设置 maxContextTokens:不是越大越好,找到质量和成本的平衡点
  2. 启用 autoSummarize:长对话自动压缩历史,保留关键信息
  3. 按频道隔离:避免不同场景的对话互相干扰
  4. 定期清理历史:设置 historyRetention 自动清理过期数据