Appearance
OpenRouter provider 使用错误 base URL,请求静默失败
问题
配置 OpenRouter 作为 provider 后,agent 发出的请求静默失败,gateway 日志显示 payloads=0,没有任何错误提示。
根本原因:OpenClaw 内置 openrouter provider 使用了错误的 API base URL /v1,而 OpenRouter 实际要求的路径是 /api/v1。
- 错误路径:
https://openrouter.ai/v1/chat/completions(返回 404/路由错误) - 正确路径:
https://openrouter.ai/api/v1/chat/completions
受影响版本:OpenClaw 2026.4.15
解决方案
方案一:升级版本(推荐)
该 bug 已在下一版本中修复。
bash
openclaw upgrade
# 或
npm update -g openclaw方案二:手动覆盖 baseUrl(临时)
在 provider 配置中显式覆盖 base URL:
yaml
providers:
openrouter:
type: openai-compatible
baseUrl: "https://openrouter.ai/api/v1"
apiKey: "${OPENROUTER_API_KEY}"注意:如果你原来使用的是内置
openrouterprovider 类型(不是手动配置的 openai-compatible),切换到手动配置方式是最稳定的临时方案。
方案三:诊断 payloads=0 问题
出现 payloads=0 时,可通过以下步骤确认是否为此 bug:
bash
# 检查 gateway 请求日志中实际发送的 URL
openclaw logs gateway | grep "openrouter"
# 手动测试两条路径
curl -s "https://openrouter.ai/v1/models" -H "Authorization: Bearer $OPENROUTER_API_KEY" | head -50
curl -s "https://openrouter.ai/api/v1/models" -H "Authorization: Bearer $OPENROUTER_API_KEY" | head -50若 /v1/models 返回 404 而 /api/v1/models 正常,即可确认是此问题。
常见问题
Q: 我用的是 OpenRouter 的 litellm 模式,也会受影响吗?
A: 不会。通过 litellm 代理配置 openrouter 模型时,base URL 由 litellm 自行管理,不经过 OpenClaw 内置的 openrouter provider,因此不触发此 bug。
Q: payloads=0 的日志在哪里看?
A: 运行 openclaw logs gateway --follow,观察每次触发 agent 时的请求日志。若模型调用触发但响应中 payloads=0 且无报错,通常是 base URL 错误、API Key 无效或 provider 配置有误导致的静默失败。