はじめに
マルチモーダル機能により、AI はテキストだけでなく、画像やドキュメント、さらには動画も「見て」理解できるようになります。OpenClaw では、WhatsApp や Telegram などのチャンネルから画像を送信すると、AI アシスタントが自動的に画像の内容を認識・分析します。本チュートリアルでは、マルチモーダルビジョンモデルの設定と活用方法を詳しくご紹介します。
ビジョン機能に対応したモデル
現在 OpenClaw がサポートする主なビジョンモデルです:
| モデル | プロバイダー | 画像理解 | PDF 理解 | 動画理解 | 費用 |
|---|---|---|---|---|---|
| Claude Sonnet 4 | Anthropic | ★★★★★ | ★★★★★ | ✗ | 中〜高 |
| Claude Haiku 3.5 | Anthropic | ★★★★☆ | ★★★★☆ | ✗ | 低 |
| GPT-4o | OpenAI | ★★★★★ | ★★★★☆ | ✗ | 中 |
| GPT-4o mini | OpenAI | ★★★★☆ | ★★★☆☆ | ✗ | 極低 |
| Gemini 2.5 Pro | ★★★★★ | ★★★★★ | ★★★★☆ | 中 | |
| Gemini 2.5 Flash | ★★★★☆ | ★★★★☆ | ★★★☆☆ | 低 | |
| Llava 13B | Ollama (ローカル) | ★★★☆☆ | ✗ | ✗ | 無料 |
| Qwen 2.5 VL 72B | Ollama (ローカル) | ★★★★☆ | ★★★☆☆ | ✗ | 無料 |
ステップ1:基本設定
1.1 クラウドビジョンモデルの使用
Claude Sonnet 4 を例に、ビジョン機能を設定します:
{
models: {
vision: {
provider: "anthropic",
apiKey: "${ANTHROPIC_API_KEY}",
defaultModel: "claude-sonnet-4",
capabilities: {
vision: true, // 画像理解を有効化
maxImageSize: 20, // 最大画像サイズ (MB)
maxImagesPerMessage: 5, // 1メッセージあたりの最大画像数
},
parameters: {
temperature: 0.3, // ビジョンタスクには低めの温度を推奨
maxTokens: 4096,
}
}
}
}
1.2 GPT-4o ビジョンの使用
{
models: {
vision: {
provider: "openai",
apiKey: "${OPENAI_API_KEY}",
defaultModel: "gpt-4o",
capabilities: {
vision: true,
imageDetail: "high", // high または low、high はより正確だが高コスト
}
}
}
}
1.3 Gemini ビジョンの使用
{
models: {
vision: {
provider: "google",
apiKey: "${GOOGLE_AI_API_KEY}",
defaultModel: "gemini-2.5-flash",
capabilities: {
vision: true,
pdf: true, // Gemini はネイティブで PDF をサポート
video: true, // 動画理解に対応
}
}
}
}
1.4 ローカルビジョンモデルの使用
# ビジョン対応のローカルモデルをダウンロード
ollama pull llava:13b
# またはより高性能な Qwen VL
ollama pull qwen2.5-vl:72b # 大きな VRAM が必要
OpenClaw の設定:
{
models: {
"local-vision": {
provider: "ollama",
baseUrl: "http://localhost:11434",
defaultModel: "llava:13b",
capabilities: {
vision: true,
}
}
}
}
ステップ2:チャンネル連携設定
2.1 Telegram の画像処理
Telegram は画像の直接送信に対応しています。設定方法:
{
channels: {
telegram: {
token: "${TELEGRAM_BOT_TOKEN}",
model: "vision", // 上記で設定したビジョンモデルを指定
mediaHandling: {
images: true, // 画像の受信と処理
documents: true, // ドキュメント(PDFなど)の受信
maxFileSize: 20, // 最大ファイルサイズ (MB)
compressImages: true, // 大きな画像を圧縮してトークンを節約
compressionQuality: 85, // 圧縮品質 (0-100)
}
}
}
}
2.2 WhatsApp の画像処理
{
channels: {
whatsapp: {
model: "vision",
mediaHandling: {
images: true,
documents: true,
stickers: false, // スタンプは通常分析不要
}
}
}
}
2.3 Discord の画像処理
{
channels: {
discord: {
token: "${DISCORD_BOT_TOKEN}",
model: "vision",
mediaHandling: {
images: true,
attachments: true, // メッセージ添付ファイルの処理
}
}
}
}
ステップ3:活用シーンの詳細
3.1 OCR 文字認識
チャットで文字を含む画像を送信すると、AI が自動的に文字内容を認識します:
ユーザー:[メニューの写真を送信]
ユーザー:このメニューを翻訳してください
AI:これは日本料理店のメニューですね。以下が翻訳です:
- 刺身盛り合わせ → 刺身拼盘
- 焼き鳥 → 烤鸡肉串
- 天ぷら盛り合わせ → 天妇罗拼盘
...
OCR を最適化するシステムプロンプト:
{
models: {
vision: {
provider: "anthropic",
defaultModel: "claude-sonnet-4",
systemPrompt: "当用户发送图片时,首先仔细识别图中所有文字内容,然后根据用户的要求进行处理。对于模糊或不确定的文字,用 [?] 标记。",
capabilities: {
vision: true,
}
}
}
}
3.2 グラフとデータ分析
グラフや表のスクリーンショットを送信すると、AI がデータを解読できます:
ユーザー:[売上データの折れ線グラフを送信]
ユーザー:このトレンドを分析してください
AI:グラフの分析結果:
1. 全体トレンド:Q1-Q3は売上が着実に上昇し、Q4に減少
2. ピークは9月で、約$450K
3. 前年比約23%の成長
4. Q4の減少は季節的要因の可能性
次年度の戦略を早めに準備することを推奨します。
3.3 ドキュメントとスクリーンショットの理解
UI スクリーンショット、コードスクリーンショット、文書写真などの送信に対応:
ユーザー:[エラーのスクリーンショットを送信]
ユーザー:このエラーはどう解決しますか?
AI:エラーメッセージは "TypeError: Cannot read property 'map' of undefined" です。
undefined の値に対して .map() メソッドを呼び出そうとしています。
考えられる原因:
1. API のレスポンスデータの形式が期待と異なる
2. データのロード前にレンダリングを試みている
.map() の呼び出し前にnullチェックを追加することを推奨します:
data?.items?.map(...) または (data.items || []).map(...)
3.4 画像比較
複数の画像を送信して比較分析が可能です:
ユーザー:[2枚のインテリアイメージを送信]
ユーザー:この2つのプランのメリット・デメリットを比較してください
AI:プラン A(1枚目):
- メリット:空間の開放感、採光が良い、モダンシンプルスタイル
- デメリット:収納スペースが限られる、色調がやや冷たい
プラン B(2枚目):
- メリット:収納スペースが十分、暖色系で温かみがある
- デメリット:空間がコンパクトに感じる、家具の配置が密
提案:快適さ重視ならプラン B、空間の広さ重視ならプラン A がおすすめです。
ステップ4:画像処理の最適化
4.1 画像解像度とコストの制御
高解像度の画像はより多くのトークンを消費します(特に OpenAI モデル)。適切な設定で費用を節約できます:
{
models: {
vision: {
provider: "openai",
defaultModel: "gpt-4o",
capabilities: {
vision: true,
imageDetail: "low", // low: 固定 85 トークン
// high: 解像度に応じて計算、数千トークンになる場合も
imageResize: {
maxWidth: 1024, // 大きな画像を自動スケーリング
maxHeight: 1024,
}
}
}
}
}
4.2 トークン消費の参考
| 設定 | 画像サイズ | おおよそのトークン消費 | 費用 (GPT-4o) |
|---|---|---|---|
| low detail | 任意 | 85 tokens | ~$0.0002 |
| high detail | 512x512 | ~170 tokens | ~$0.0004 |
| high detail | 1024x1024 | ~765 tokens | ~$0.002 |
| high detail | 2048x2048 | ~1105 tokens | ~$0.003 |
4.3 画像キャッシュ
同じ種類の画像を頻繁に分析するシーンでは、キャッシュを有効にすることで重複処理を削減できます:
{
models: {
vision: {
provider: "anthropic",
defaultModel: "claude-sonnet-4",
capabilities: {
vision: true,
},
cache: {
enabled: true,
imageHashCache: true, // 同一画像の分析結果をキャッシュ
ttl: 3600, // キャッシュ有効期間(秒)
}
}
}
}
ステップ5:ビジョンモデルの比較評価
実際のシーンでのテスト結果
| テストシーン | Claude Sonnet 4 | GPT-4o | Gemini 2.5 Pro | Llava 13B |
|---|---|---|---|---|
| 中国語 OCR | 優秀 | 優秀 | 良好 | 普通 |
| 英語 OCR | 優秀 | 優秀 | 優秀 | 良好 |
| 手書き認識 | 良好 | 良好 | 良好 | 不十分 |
| グラフ解読 | 優秀 | 優秀 | 優秀 | 普通 |
| UI スクリーンショット分析 | 優秀 | 優秀 | 良好 | 普通 |
| 写真理解 | 優秀 | 優秀 | 優秀 | 良好 |
| 複数画像比較 | 優秀 | 良好 | 優秀 | 不十分 |
| PDF 解析 | 優秀 | 良好 | 優秀 | 非対応 |
推奨選択
- 最高品質: Claude Sonnet 4(総合的なパフォーマンスが最も優れている)
- 最高コスパ: Gemini 2.5 Flash(無料枠 + 十分な品質)
- 完全無料: Llava 13B ローカルデプロイ(品質に限界はあるが実用的)
- PDF 処理: Gemini 2.5 Pro(ネイティブ PDF サポートが最も優れている)
よくある質問
画像が認識されない
設定で vision: true が有効になっていることを確認し、ログを確認してください:
openclaw logs | grep -i "vision\|image\|media"
画像が大きすぎてタイムアウトする
capabilities: {
vision: true,
imageResize: {
maxWidth: 1024,
maxHeight: 1024,
}
}
ローカルビジョンモデルの精度が低い
Llava などのローカルビジョンモデルは、複雑なシーンでは限界があります。精度が求められるタスクにはクラウドモデルの使用を推奨します。
動画を送信しても応答がない
現在、動画理解に対応しているのは Gemini シリーズのみです。他のモデルは動画を受信すると無視またはエラーになります。設定でメッセージを表示できます:
mediaHandling: {
video: false,
unsupportedMediaReply: "抱歉,我目前不支持视频分析,请发送截图或图片。",
}
まとめ
マルチモーダルビジョン機能により、OpenClaw の活用シーンが大幅に拡がります。日常の OCR 認識から専門的なグラフ分析まで、ビジョンモデルによってチャットボットがより実用的になります。最高のビジョン理解性能には Claude Sonnet 4 または GPT-4o を、無料枠内でビジョン機能を体験するには Gemini 2.5 Flash を、ローカルで無料運用するには Llava/Qwen VL の使用を推奨します。実際のニーズと予算に応じて、最適なプランを選択してください。