OpenClaw 在构建模型上下文前对对话记录进行 provider 特定的修复,大多数为内存操作,不修改磁盘文件。

清洗范围

  • 工具调用 ID 清洗
  • 工具调用输入验证
  • 工具结果配对修复
  • 轮次验证/排序
  • 思考签名清理
  • 图像 payload 清洗(下采样/重压缩)
  • 空白文本块清理
  • 用户输入来源标记(跨会话路由)

各 Provider 行为矩阵

Provider特殊处理
OpenAI / Codex仅图像清洗;保留可重放的 Responses reasoning
OpenAI-compatible历史 thinking/reasoning 块在重放前剥离
Google / Gemini工具调用 ID 严格字母数字化;轮次交替验证
Anthropic / MiniMax工具结果配对修复;连续 user 轮次合并
Amazon Bedrock空 assistant 错误轮次修复为非空 fallback
Mistral工具调用 ID 严格 9 位字母数字
OpenRouter Gemini剥除非 base64 的 thought_signature

代码位置

  • 策略选择:src/agents/transcript-policy.ts
  • 清洗应用:sanitizeSessionHistory in src/agents/pi-embedded-runner/replay-history.ts
  • 文件修复:repairSessionFileIfNeeded in src/agents/session-file-repair.ts

历史变更(2026.1.22)

2026.1.22 版本将分散的清洗逻辑集中到 runner,移除了 transcript-sanitize 扩展,OpenAI 路径改为仅做图像清洗。

相关页面