实操手册-OpenClaw长任务超时无响应的解决

一、 适用场景

OpenClaw 开发任务(代码生成、文件操作、长推理)时频繁遇到 Request timed out 错误,无论是通过飞书(Lark)还是 openclaw tui 调用。


二、 问题描述

在日常的工作中,当我们的任务有一定复杂度时,就会频繁出现以下提示:

bash 复制代码
LLM request failed.
Request timed out before a response was generated. Please try again, or increase agents.defaults.timeoutSeconds in your config.

如图:

按照提示修改agents.defaults.timeoutSeconds后,问题依旧。这是因为 OpenClaw 的超时体系是分层级的,只改一个地方往往不够。


三、 根因分析

OpenClaw 的超时控制并非单一配置,而是由三个层级共同决定:

层级 配置位置 控制范围 默认值 是否常被忽略
Provider 级 models.providers.<id>.timeoutSeconds 单个 LLM 的 HTTP 请求(连接 + 首字节 + 流传输) ~60s 最常见原因
Agent 级 agents.defaults.timeoutSeconds 整个 Agent 回合(含工具调用、上下文组装) 48h 提示中提到的
CLI/命令级 openclaw agent --timeout CLI 命令等待网关响应 600s TUI/CLI 场景

为什么只改 agents.defaults.timeoutSeconds 不够?

大多数超时发生在 Provider 级 HTTP 请求阶段:模型推理或首 token 生成超过约 60 秒时,OpenClaw 的 HTTP 客户端会主动断开连接。此时 Agent 级的 48 小时超时根本来不及触发。

对于本地模型(Ollama / LM Studio / llama.cpp),冷启动时的首 token 延迟(Time to First Token) 可能长达 30~60 秒甚至更久,极易触发 Provider 级超时。


四、解决方案

Step 1:设置 Provider 级超时(最关键)

bash 复制代码
# 修改前,可以先查看一下当前的配置
openclaw config get models.providers.<provider-id>.timeoutSeconds
# 将 <provider-id> 替换为你的实际 provider 名称
openclaw config set models.providers.<provider-id>.timeoutSeconds 300

如何确认 provider ID?

bash 复制代码
openclaw models list

输出参考:

bash 复制代码
Model                                      Input      Ctx         Local Auth  Tags
qwen/deepseek-v4-flash                     text       200k        no    yes   default,configured
qwen/qwen3.7-plus-2026-05-26               text       200k        no    yes   fallback#1,configured
qwen/kimi-k2.7-code                        text       200k        no    yes   fallback#2,configured
qwen/glm-5.2                               text       200k        no    yes   fallback#3,configured
qwen/qwen3.8-max                           text       200k        no    yes   fallback#4,configured
qwen/qwen3.5-plus                          text+image 1000k       no    yes   
qwen/qwen3.6-plus                          text+image 1000k        no    yes   

第一列 Model 字段格式为 ProviderID/ModelID,取 / 之前的字符串作为 Provider‑ID,如上例中的qwen

Step 2:设置 Agent 级超时

bash 复制代码
openclaw config set agents.defaults.timeoutSeconds 1800

查看配置方法参考上一个命令,不再此重复。

Step 3:重启并验证

bash 复制代码
# 重启网关使配置生效
openclaw gateway restart

⚠️ 飞书渠道特别注意:旧会话会缓存旧的超时配置,必须新建飞书对话才能生效。或执行:

bash 复制代码
openclaw sessions prune --days 0

TUI 渠道:完全退出后重新执行 openclaw tui 即可。


五、不同场景的推荐配置

场景 A:本地模型(Ollama / LM Studio)

本地模型冷启动慢,建议将 Provider 超时设长:

bash 复制代码
# 保持模型常驻内存(Ollama 示例)
export OLLAMA_KEEP_ALIVE=-1

# 配置超时
openclaw config set models.providers.ollama.timeoutSeconds 600
openclaw config set agents.defaults.timeoutSeconds 1800

# 重启
openclaw gateway restart

场景 B:云端模型(Kimi / OpenAI / Claude)

云端模型响应快,但复杂开发任务(多文件操作、长代码生成)仍可能超时:

bash 复制代码
openclaw config set models.providers.kimi.timeoutSeconds 300
openclaw config set agents.defaults.timeoutSeconds 1800
openclaw gateway restart

场景 C:飞书渠道

飞书会话配置持久化,修改后务必新建对话:

bash 复制代码
openclaw config set models.providers.<id>.timeoutSeconds 300
openclaw config set agents.defaults.timeoutSeconds 1800
openclaw gateway restart
# 然后在飞书中开启新对话

场景 D:TUI 渠道

TUI 每次启动都是新会话,重启即可:

bash 复制代码
openclaw config set models.providers.<id>.timeoutSeconds 300
openclaw config set agents.defaults.timeoutSeconds 1800
# 按 Ctrl+C 退出 TUI,重新执行 openclaw tui

六、验证配置是否生效

bash 复制代码
# 查看 Agent 默认配置
openclaw config get agents.defaults

# 示例输出
{
  "timeoutSeconds": 1800,   # ← 关键字段:Agent 级超时(整个回合)
  "maxIterations": 20,
  "model": "kimi"
}

# 查看 Provider 配置
openclaw config get models.providers

# 示例输出
{
  "ollama": {
    "baseUrl": "http://127.0.0.1:11434",
    "timeoutSeconds": 600    # ← 关键字段:Provider 级超时(HTTP 请求)
  },
  "kimi": {
    "baseUrl": "https://api.moonshot.cn/v1",
    "timeoutSeconds": 300    # ← 关键字段:Provider 级超时(HTTP 请求)
  }
}

# 查看完整配置
openclaw config get

确认输出中包含你设置的 timeoutSeconds 值。


七、一键配置模板

bash 复制代码
#!/bin/bash
# OpenClaw 超时修复脚本
# 使用前请将 PROVIDER_ID 替换为你的实际 provider 名称

PROVIDER_ID="ollama"  # <-- 修改这里

# 1. Provider 级超时(HTTP 请求)
openclaw config set models.providers.${PROVIDER_ID}.timeoutSeconds 300

# 2. Agent 级超时(整个回合)
openclaw config set agents.defaults.timeoutSeconds 1800

# 3. 重启网关
openclaw gateway restart

echo "✅ 配置完成,请新建飞书对话或重启 TUI"

八、已知问题

如果使用的是 OpenClaw 2026.4.1 ~ 2026.4.8 版本,存在一个已知问题:

agents.defaults.timeoutSeconds 和 Provider 级超时在某些情况下会被忽略,存在硬编码的约 60 秒 HTTP fetch timeout。

建议:

升级到 2026.5.x 及以上版本或临时将两个超时都设为相同较大值(如 1800 秒)作为 workaround


九、总结

问题 根因 解决
LLM request timed out Provider 级 HTTP 超时(~60s) 修改 models.providers.<id>.timeoutSeconds
提示改 agents.defaults.timeoutSeconds 无效 只改了 Agent 级,没改 Provider 级 两者都要改
飞书改了仍超时 旧会话缓存旧配置 新建飞书对话或清理 sessions
TUI 改了仍超时 未完全退出重启 Ctrl+C 后重新 openclaw tui
本地模型频繁超时 冷启动首 token 延迟高 Provider 超时设为 600s + OLLAMA_KEEP_ALIVE=-1

核心原则:

Provider超时管请求,Agent超时管回合。两者都改才靠谱,重启会话要记牢。


如果你也遇到了这个问题,欢迎收藏本文并分享给同样在使用 OpenClaw 的开发者。

相关推荐
数智启示录1 小时前
Apache Doris 4.0.8 一致性实战(第 3 篇):Checkpoint 一直成功,Exactly-Once 为什么仍可能是假的
大数据·经验分享·面试·flink
luj_17682 小时前
毒素驱动的生物自毁机制探析
服务器·c语言·开发语言·经验分享·算法
数智启示录2 小时前
Apache Doris 4.0.8 CDC 正确性(第 9 篇):Flink Checkpoint 一直成功,表里为什么仍是旧数据
大数据·数据库·经验分享·面试·flink
中防喷墨2 小时前
在线式UV喷印机参数与性能综合总结评测
经验分享·生活
速德瑞仪器2 天前
中国计量科学研究院检定速德瑞三款紫外辐照计,获标准级水平
经验分享·紫外辐照计
自然石人2 天前
石都随笔:深耕不张扬,平凡自有千钧力
网络·经验分享·百度·传媒·新浪微博
Rain的Java大神之路2 天前
如何保证接口幂等
java·经验分享·后端·面试·架构
数智启示录2 天前
Doris精讲篇(六) 从第一批小文件到 -235:Doris 是怎样被正常写入拖死的
大数据·数据库·经验分享·面试·flink
luj_17682 天前
尾椎藏今生记忆?骨盆对应不确定性
开发语言·网络·c++·经验分享·算法