OpenClaw 反应慢?7 个真实原因与对应解决方案
OpenClaw 反应慢是用户最常见的投诉之一,但"慢"的成因并不一样:启动耗时 3-5 秒是懒加载缺失的问题;会话越用越慢是上下文窗口膨胀的问题;Telegram 逐字吐字是 streamMode 配置的问题;国内访问延迟高是代理穿透失效的问题。本文基于 OpenClaw GitHub 已记录的真实 Issue,梳理每种"慢"背后的根本原因和可操作的解决方案。当前最新版本为 v2026.3.28(2026-03-28 发布)。

快速定位:你的"慢"属于哪种
| 症状 | 最可能的原因 | 跳转章节 |
|---|---|---|
刚打开就慢,openclaw --version 都要等 3 秒以上 |
CLI 启动时加载了所有模块 | 原因 1 |
| 会话刚开始正常,越用越慢 | 上下文窗口膨胀 / 工具结果堆积 | 原因 2 |
| Telegram / 微信收到的回复一个字一个字地蹦 | streamMode 设置为 partial | 原因 3 |
| 国内使用,每次等待很久才开始响应 | HTTP_PROXY 没有生效 | 原因 4 |
| 截图多的会话,到后期每次都 413 报错 | 图片数据撑爆了会话文件 | 原因 5 |
| Gateway 升级后一两分钟内挂起 | 数据库维护锁死事件循环 | 原因 6 |
| 换了更快的模型,但感觉没什么变化 | 模型切换没有及时生效 | 原因 7 |
原因 1:CLI 启动慢——懒加载缺失(已修复)
问题描述: 在部分版本中,即使运行 openclaw --version 或 openclaw help 这样的轻量命令,也需要等待 3.2 秒甚至 5.1 秒,内存占用超过 360MB。
根本原因: 旧版本在 CLI 启动时会一次性导入整个命令树,包括 Discord.js、Puppeteer 等重量级依赖,无论当前命令是否需要这些模块(PR #6462)。
解决方案:
- 升级到更高版本,该版本实现了惰性命令注册(Lazy Command Registry),命令只在被匹配到时才加载对应模块:
# 检查当前版本
openclaw --version
# 更新到最新版(npm 包名请在 https://www.npmjs.com/search?q=openclaw 确认最新)
npm update -g @openclaw/openclaw
- 升级后
openclaw --version应在 0.5 秒内完成,help在 1 秒内完成。
原因 2:会话越用越慢——上下文膨胀和工具结果堆积
问题描述: 一个 OpenClaw 会话开始时响应很快,但经过大量工具调用(exec、read 读取大文件)后,每次回复延迟越来越长,最终可能出现 OOM 崩溃。
根本原因(Issue #49888): 工具调用的返回结果(toolResult)默认被完整持久化到会话转录文件中。当单次工具返回内容达到 150k–200k 字符时,累积几十次调用后,每次请求需要将整个膨胀的上下文发送给模型,导致延迟随会话长度线性增长。
解决方案:
方案 A:手动触发上下文压缩
在 OpenClaw 对话中输入 /compact,强制将历史上下文压缩为摘要,释放上下文空间:
/compact
方案 B:配置自动压缩触发阈值
在 ~/.openclaw/config.json 中配置自动压缩:
{
"agents": {
"defaults": {
"compaction": {
"model": "claude-haiku-4-5-20251001",
"triggerAtPercent": 80
}
}
}
}
triggerAtPercent: 80 表示当上下文窗口使用率达到 80% 时自动触发压缩,避免等到撑满。
方案 C:避免使用 session.dmScope = "main"
Issue #49888 特别指出,当 session.dmScope 设置为 "main" 且使用非 Anthropic 模型路径时,工具结果膨胀问题最严重。如非必要,不要将主对话频道配置为共享会话。
原因 3:Telegram / 频道逐字回复——streamMode 配置问题
问题描述(Issue #18269): 升级到 OpenClaw 2026.2.15 后,Telegram 收到的回复变成一个词一个词地发送,严重影响可读性,实际上相当于把"不可用"。
根本原因: streamMode: "partial" 配置在部分版本下与 DeepSeek 等非 Anthropic 模型的流式输出协议产生兼容问题,导致每个 token 单独触发一次消息更新。
解决方案:
将 streamMode 修改为 "full"(等全部生成完再发送)或 "chunked"(按句子/段落分批发送):
{
"channels": {
"telegram": {
"enabled": true,
"streamMode": "full"
}
}
}
如果你更倾向于保留流式体验但减少更新频率,使用 "chunked" 模式,按标点符号断句批量发送,在体验和性能之间取得平衡。
原因 4:国内使用响应慢——HTTP_PROXY 没有生效
问题描述(Issue #2102): 在国内环境下,设置了 HTTP_PROXY 和 HTTPS_PROXY 环境变量,但 OpenClaw gateway 进程仍然直连国际 API,导致请求超时或极慢。
根本原因: OpenClaw 使用 undici 作为 HTTP 客户端,该库不自动读取系统环境变量中的代理配置,需要显式注入。
解决方案 A:修改 systemd 服务配置(Linux)
找到 openclaw gateway 的 systemd 服务文件,添加代理环境变量:
# 编辑 ~/.config/systemd/user/openclaw-gateway.service
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
修改后重新加载服务:
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway
解决方案 B:通过 API 聚合端点绕过代理问题
另一种对中国用户更稳定的方案是使用国内 API 兼容端点,从根本上避免直连国际 API 的延迟问题。在 ~/.openclaw/config.json 中修改 provider 配置:
{
"providers": {
"anthropic": {
"baseUrl": "https://api.qnaigc.com",
"apiKey": "your-qiniu-api-key"
}
}
}
七牛云AI 提供完全兼容 Anthropic 和 OpenAI 双接口标准的国内端点,新用户可获最高 600 万免费 Token,适合需要稳定访问 Claude 模型的国内 OpenClaw 用户。
原因 5:截图多的会话报 413 错误——图片数据撑爆会话
问题描述(PR #5817): 大量使用截图功能(browser automation、camera snap)的会话,会话文件中积累的 base64 图片数据可达数兆字节,导致 API 请求超过大小限制,返回 413 错误,会话彻底无法使用。
真实案例: 一个会话文件 5.33MB,包含 28 张截图,图片数据占 3.52MB(88%),每次 API 调用均以 413 失败。
解决方案:
升级到含 PR #5817 修复的版本(v2026.2.x 之后)。该修复在压缩时自动保留最近 3 条含图片的消息,将更早的图片替换为文本占位符:
[Image omitted during compaction: image/jpeg, ~150KB]
如果你的会话已经膨胀,手动触发一次压缩可以立即恢复:
/compact
原因 6:Gateway 启动后一两分钟挂起——数据库维护锁死
问题描述(Fix #58670,v2026.3.28): 升级到含任务功能的版本后,gateway 在启动约一分钟后停止响应,所有 API 请求挂起,需要手动重启。
根本原因: 任务注册表的定期维护扫描(pruning/lost task cleanup)使用同步 SQLite 操作,在写入压力较高时会阻塞 Node.js 事件循环,导致整个 gateway 进程无响应。
解决方案: 升级到 v2026.3.28(该版本已修复此问题)。
npm update -g @openclaw/openclaw
openclaw --version # 确认为 v2026.3.28 或更高
原因 7:换了更快的模型,但没有即时生效
问题描述(Fix v2026.3.28): 在会话进行中使用 /model 命令切换到更快的模型(如从 Opus 切换到 Haiku),但当前进行中的任务依然使用旧模型,速度没有变化。
根本原因: 旧版本的 /model 命令会中断当前正在运行的 turn,可能导致状态不一致。修复后,模型切换请求会排队等待当前 turn 完成,下一次交互起生效。
解决方案: 升级到 v2026.3.28。切换模型后,如果当前有任务在运行,等任务完成后再发送新请求,新请求会使用切换后的模型。
综合加速配置:最小化延迟的推荐设置
{
"agents": {
"defaults": {
"compaction": {
"triggerAtPercent": 75,
"model": "claude-haiku-4-5-20251001"
},
"params": {
"max_tokens": 4096
}
}
},
"channels": {
"telegram": {
"streamMode": "chunked"
}
}
}
核心原则:
- 压缩触发阈值设为 75-80%,避免上下文撑满后再压缩(撑满后每次请求都会很慢)
- 用轻量模型执行压缩任务(Haiku),节省主模型 token
max_tokens按实际需要设置,不要用默认最大值,减少单次生成时间- 频道 streamMode 用
chunked而非partial

常见问题
Q:OpenClaw 反应慢,换成更贵的模型(Opus)会不会更快?
不一定。模型越强大,单次生成时间通常越长(Haiku < Sonnet < Opus)。如果你的瓶颈是上下文膨胀或代理延迟,换更贵的模型反而更慢。先排查本文的 7 个原因,再考虑模型选择。
Q:/compact 压缩后,之前的对话内容会丢失吗?
不会完全丢失,但会被压缩为摘要。细节信息可能无法精确复现,但关键上下文会被保留。v2026.3.28 修复了压缩时 Anthropic thinking blocks 丢失的问题(#58916),升级后压缩更安全。
Q:如何判断是模型端慢还是 OpenClaw 本身慢?
用 openclaw doctor 检查本地配置和网络连通性。如果 openclaw doctor 的网络测试显示 API 延迟正常,但实际使用仍慢,通常是上下文膨胀或 streamMode 问题;如果 doctor 也显示网络超时,则是代理或 API 端点的问题。
Q:多个 AI CLI 工具(Claude Code、OpenClaw、Gemini CLI)同时运行,互相影响速度吗?
主要竞争本地 CPU 和内存资源。OpenClaw gateway 常驻后台约消耗 200-400MB 内存;如果同时运行 Claude Code 和 Gemini CLI,建议配置 8GB 以上内存的环境,或在 ~/.openclaw/config.json 中减少 gateway 并发 worker 数量。
结语
OpenClaw 的性能问题有明确的技术根源:CLI 懒加载缺失(PR #6462)、toolResult 持久化膨胀(Issue #49888)、streamMode 兼容性(Issue #18269)、HTTP_PROXY 透传(Issue #2102)、截图 413(PR #5817)、SQLite 事件循环阻塞(Fix #58670)。其中前 5 个在 v2026.3.28 之前的版本均存在修复点,升级是最高性价比的解决方案。对于国内用户,额外配置兼容 Anthropic 接口的国内端点可以从根本上消除网络延迟。
数据来源:OpenClaw GitHub Issues 和 PR(openclaw/openclaw),版本 v2026.3.28,截至 2026 年 4 月 2 日。

浙公网安备 33010602011771号