郑工长

OpenClaw 图片识别失败?90% 的人都卡在这个模型配置上

发布于 2026年3月7日 | 分类: AI随心分享

OpenClaw 配置指南:让 AI 机器人在群聊和 WebChat 中识别图片

你好,我是郑工长。

又发现一个OpenClaw使用中的问题:私聊可以分析图片,但群聊和 WebChat 中机器人说"图片没有成功传递给我"

本文档详细说明如何配置 OpenClaw 的多模态模型,使其在群聊私聊WebChat中都能正确识别和分析图片。


📋 问题现象

✅ 正常情况

  • 私聊发送图片 + "分析这张图片" → 机器人可以分析图片内容

❌ 问题情况

  • 群聊发送图片并@机器人 → 机器人回复:"图片好像没有成功传递给我"
  • WebChat 发送图片 → 机器人无法识别图片

🔍 日志分析

群聊图片消息日志

feishu: post message contains 1 embedded image(s)
feishu: downloaded embedded image img_v3_02vi_..., saved to /Users/xxx/.openclaw/media/inbound/xxx.jpg
feishu[default]: dispatching to agent

关键发现

  • ✅ 图片已成功下载并保存到本地
  • ✅ 媒体数据已生成 (mediaPayload)
  • ❌ 但模型说"看不到图片"

🐛 问题根源

核心原因

模型配置中缺少 "image" 输入类型支持

查看 ~/.openclaw/openclaw.json 中的模型配置:

{
  "id": "qwen3.5-plus",
  "name": "Qwen3.5 Plus (百炼)",
  "reasoning": false,
  "input": ["text"],  // ❌ 只支持文本!
  "contextWindow": 1000000,
  "maxTokens": 65536
}

问题分析

  1. "input": ["text"] 表示模型只接受文本输入
  2. 虽然图片被下载到本地,但 OpenClaw 不会将图片传递给不支持图像的模型
  3. 模型接收到的只有文本占位符(如 ![image]),所以回复"看不到图片"

✅ 解决方案

步骤 1:编辑配置文件

配置位置~/.openclaw/openclaw.json 中的 models 数组

快速定位

# 打开配置文件
vim ~/.openclaw/openclaw.json

# 搜索关键字(在 vim 中按 / 然后输入)
/input
# 或者搜索模型名称
qwen3.5-plus

配置说明

  • 这是 OpenClaw 的模型能力声明配置
  • 告诉系统该模型支持哪些输入类型(text/image/file)
  • 不是模型本身的参数,而是 OpenClaw 的适配层配置

打开 OpenClaw 配置文件:

vim ~/.openclaw/openclaw.json

步骤 2:修改模型配置

找到你使用的多模态模型配置(如 qwen3.5-plus),将 "input"["text"] 改为 ["text", "image"]

修改前:

{
  "id": "qwen3.5-plus",
  "name": "Qwen3.5 Plus (阿里)",
  "reasoning": false,
  "input": ["text"],
  "cost": {
    "input": 0,
    "output": 0,
    "cacheRead": 0,
    "cacheWrite": 0
  },
  "contextWindow": 128000,
  "maxTokens": 8192
}

修改后:

{
  "id": "qwen3.5-plus",
  "name": "Qwen3.5 Plus (阿里)",
  "reasoning": false,
  "input": ["text", "image"],  // ✅ 添加 "image"
  "cost": {
    "input": 0,
    "output": 0,
    "cacheRead": 0,
    "cacheWrite": 0
  },
  "contextWindow": 128000,
  "maxTokens": 8192
}

步骤 3:修改所有使用的模型

如果你的配置中有多个模型(如阿里云和百炼平台都有 qwen3.5-plus),需要全部修改

// 阿里百炼
{
  "id": "qwen3.5-plus",
  "name": "Qwen3.5 Plus (百炼)",
  "reasoning": false,
  "input": ["text", "image"],  // ✅ 添加 "image"
  "contextWindow": 1000000,
  "maxTokens": 65536
}

步骤 4:验证配置

运行配置检查:

openclaw doctor

确保没有配置错误:

✓ Config valid

步骤 5:重启 Gateway

openclaw gateway restart

等待 3-5 秒让服务完全启动。


🧪 验证测试

测试 1:飞书群聊

  1. 在飞书群聊中发送一张图片
  2. @机器人 并说"分析这张图片"
  3. 预期结果:机器人能准确描述图片内容

成功日志

feishu: post message contains 1 embedded image(s)
feishu: downloaded embedded image img_v3_..., saved to /Users/xxx/.openclaw/media/inbound/xxx.jpg
feishu[default]: dispatching to agent
feishu[default]: dispatch complete (queuedFinal=true, replies=1)

测试 2:飞书私聊

  1. 在飞书私聊中发送一张图片
  2. 说"分析这张图片"
  3. 预期结果:机器人能准确描述图片内容

测试 3:WebChat

  1. 打开 OpenClaw WebChat 界面
  2. 发送一张图片
  3. 预期结果:机器人能识别并分析图片

📊 支持的多模态模型

以下模型支持图像输入(配置 "input": ["text", "image"]):

模型 提供商 配置 ID 支持
Qwen3.5 Plus 阿里云 qwen3.5-plus ✅ 支持
Qwen3 Max 阿里云 qwen3-max-2026-01-23 ✅ 支持
GPT-4o OpenAI gpt-4o ✅ 支持
Claude 3.5 Sonnet Anthropic claude-3-5-sonnet ✅ 支持

⚠️ 风险提示(重要!)

不要随意添加 "image" 配置!

✅ 支持多模态的模型(可以添加 "image"):

  • Qwen3.5 Plus/Max(阿里云/百炼)
  • GPT-4o/GPT-4V(OpenAI)
  • Claude 3/3.5(Anthropic)

❌ 不支持的模型(即使配置了也无效):

  • glm-4.7-flash(智谱)- 纯文本模型
  • 其他未声明支持图像的模型

错误配置会导致

  • 模型调用失败
  • 返回错误信息
  • 浪费 Token

如果不确定:先查阅模型官方文档,确认支持图像输入后再配置。


⚠️ 常见问题

Q1:为什么私聊可以,群聊不行?

A:私聊和群聊使用相同的媒体处理逻辑。如果私聊可以但群聊不行,通常是模型配置问题,而不是代码问题。

Q2:图片已下载,但模型说看不到?

A:这是典型的配置问题。图片下载和模型调用是两个独立的步骤:

  1. 下载:OpenClaw 下载图片到本地(已实现)
  2. 传递:根据模型配置决定是否传递给模型(需要 "input": ["image"]

Q3:配置后仍然无法识别图片?

A:检查以下几点:

  1. 配置是否生效:运行 openclaw doctor 检查配置
  2. Gateway 是否重启:修改配置后必须重启 Gateway
  3. 日志是否有错误:查看 /tmp/openclaw/openclaw-*.log
  4. 模型是否支持:确认使用的模型确实支持多模态

🔧 故障排查

查看图片下载日志

tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log | grep -E "image|downloaded|embedded"

正常输出

feishu: post message contains 1 embedded image(s)
feishu: downloaded embedded image img_v3_..., saved to /Users/xxx/.openclaw/media/inbound/xxx.jpg

查看媒体文件

ls -lh ~/.openclaw/media/inbound/

应该能看到下载的图片文件(.jpg, .png 等)。

查看模型调用日志

tail -100 /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log | grep -E "dispatching|dispatch complete"

📝 总结

核心步骤

  1. 编辑配置~/.openclaw/openclaw.json
  2. 添加 "image":模型配置的 "input" 数组
  3. 验证配置openclaw doctor
  4. 重启服务openclaw gateway restart
  5. 测试验证:在群聊/私聊/WebChat 中发送图片

配置示例

{
  "id": "qwen3.5-plus",
  "name": "Qwen3.5 Plus (百炼)",
  "reasoning": false,
  "input": ["text", "image"],  // ✅ 关键配置
  "contextWindow": 1000000,
  "maxTokens": 65536
}

注意事项

  • ⚠️ 修改配置后必须重启 Gateway
  • ⚠️ 确保使用的模型确实支持多模态
  • ⚠️ 图片大小有限制(默认 30MB)
  • ⚠️ WebChat 需要额外配置 CORS 和文件上传支持

:本文档基于 OpenClaw 2026.3.2 版本编写。不同版本的配置可能略有差异,请根据实际情况调整。