ホーム チュートリアル カテゴリ Skills サイトについて
ZH EN JA KO
基本設定

OpenClawマルチメディアメッセージ処理の設定

· 12 分で読了

はじめに

現代のインスタントメッセージングはテキストだけにとどまりません。ユーザーは画像を送信してAIに内容を説明してもらったり、音声を送信してAIに書き起こしてもらったり、ドキュメントをアップロードしてAIに分析してもらったりすることがあります。OpenClaw はマルチチャンネルAIゲートウェイとして、異なるプラットフォームからのマルチメディアメッセージを統一的に処理する必要があり、各プラットフォームのメディア機能もそれぞれ異なります。本記事では、OpenClaw のマルチメディアメッセージ処理メカニズムと設定方法を詳しく解説します。

サポートされるメディアタイプ

OpenClaw は現在、以下の4大カテゴリのマルチメディアコンテンツをサポートしています。

メディアタイプ サポート形式 処理方式
画像 JPG, PNG, GIF, WebP ビジョン対応モデルに直接渡す
音声 MP3, OGG, WAV, M4A STTエンジンで書き起こした後テキスト入力として使用
ドキュメント PDF, TXT, DOCX, CSV テキスト抽出後コンテキスト入力として使用
動画 MP4, WebM キーフレームを抽出し画像シーケンスとして処理

グローバルメディア設定

openclaw.json のメディア処理のグローバル設定は advanced.media セクションにあります。

{
  "advanced": {
    "media": {
      "enabled": true,
      "maxFileSize": "20mb",
      "tempDir": "~/.openclaw/temp/media",
      "cleanupInterval": "1h",
      "image": {
        "enabled": true,
        "maxResolution": "2048x2048",
        "autoResize": true,
        "compressionQuality": 85
      },
      "audio": {
        "enabled": true,
        "sttProvider": "whisper",
        "sttModel": "whisper-1",
        "maxDuration": 300
      },
      "document": {
        "enabled": true,
        "maxPages": 50,
        "ocrEnabled": false
      },
      "video": {
        "enabled": false,
        "maxDuration": 60,
        "keyframeInterval": 5
      }
    }
  }
}

主要パラメータの説明

  • maxFileSize:処理可能なファイルサイズの上限。超過ファイルは無視されメッセージが返されます
  • autoResize:画像の解像度がモデルの制限を超えた場合に自動スケーリング
  • sttProvider:音声テキスト変換サービスプロバイダー。whisper(OpenAI)と local(ローカルモデル)をサポート
  • maxDuration:音声と動画の最大時間制限(秒)

画像メッセージの処理フロー

ユーザーが画像を送信すると、OpenClaw は以下のフローで処理します。

  1. 受信:チャンネルAPIから画像を一時ディレクトリにダウンロード
  2. 前処理:形式とサイズをチェック。必要に応じて形式変換とリサイズ
  3. ルーティング:現在のAgentに設定されたモデルがビジョン入力をサポートするか確認
  4. 送信:Base64またはURL形式で画像をAPIリクエストに添付
  5. クリーンアップ:処理完了後、cleanupInterval の周期で一時ファイルを削除

現在のモデルがビジョン機能をサポートしていない場合、OpenClaw には2つの対応戦略があります。

{
  "advanced": {
    "media": {
      "image": {
        "fallbackOnNoVision": "describe",
        "visionFallbackModel": "claude"
      }
    }
  }
}
  • "describe":ビジョン対応モデルに自動切り替えて画像内容を記述し、記述テキストを元のモデルに渡す
  • "reject":現在のモデルが画像入力に対応していないことをユーザーに直接通知

音声メッセージの処理

音声メッセージはまず音声テキスト変換(STT)で処理され、テキストメッセージとしてモデルに渡されます。

ユーザーが音声を送信 → 音声ファイルをダウンロード → STT書き起こし → テキストをユーザーメッセージとして → モデルに送信

STT結果はセッション記録の metadata フィールドに付加され、遡及に便利です。

{
  "id": "msg_010",
  "role": "user",
  "content": "明日の午後3時に会議室を予約して",
  "metadata": {
    "originalType": "audio",
    "sttConfidence": 0.95,
    "audioDuration": 4.2
  }
}

ドキュメントメッセージの処理

ユーザーがアップロードしたドキュメントはテキスト内容が抽出され、会話のコンテキストに注入されます。

{
  "advanced": {
    "media": {
      "document": {
        "enabled": true,
        "maxPages": 50,
        "extractionMethod": "auto",
        "injectAs": "system"
      }
    }
  }
}

injectAs はドキュメント内容のコンテキストでの役割を制御します。

  • "system":システムメッセージとして注入。モデルは背景知識として扱う
  • "user":ユーザーメッセージの一部として、ユーザーのテキストの後に追加

各チャンネルのメディアサポートの違い

異なるメッセージングプラットフォームのメディアメッセージサポートには顕著な違いがあります。以下はOpenClawの対応状況です。

チャンネル 画像受信 画像送信 音声受信 ドキュメント受信 備考
Telegram 完全サポート 完全サポート 完全サポート 完全サポート 最も包括的なメディアサポート
WhatsApp 完全サポート 完全サポート 完全サポート 完全サポート Business APIが必要
Discord 完全サポート 完全サポート 限定的 完全サポート 音声メッセージは追加設定が必要
Slack 完全サポート 完全サポート 非対応 完全サポート ファイルはFiles API経由
iMessage 完全サポート 完全サポート 完全サポート 限定的 BlueBubblesブリッジに依存
Signal 完全サポート 完全サポート 完全サポート 限定的 signal-cli経由
Web Dashboard 完全サポート 完全サポート 非対応 完全サポート ブラウザアップロード経由
Matrix 完全サポート 完全サポート 完全サポート 完全サポート 完全なMatrix Media API

チャンネルレベルのメディアオーバーライド

特定のチャンネルで特定のメディア機能を無効にしたい場合は、チャンネル設定でグローバル設定をオーバーライドできます。

{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "your-token",
      "mediaSupport": {
        "image": true,
        "audio": true,
        "document": true,
        "video": false
      }
    },
    "slack": {
      "enabled": true,
      "mediaSupport": {
        "image": true,
        "audio": false,
        "document": true,
        "video": false
      }
    }
  }
}

モデルのメディア能力

すべてのモデルがマルチメディア入力をサポートしているわけではありません。OpenClaw は内部的にモデル能力テーブルを管理しています。

モデル 画像入力 音声入力 ドキュメント入力
Claude Sonnet/Opus サポート 非対応(STT必要) PDF対応
GPT-4o サポート サポート(ネイティブ) 非対応(抽出必要)
Gemini 2.0 Flash サポート サポート(ネイティブ) サポート
Ollama (LLaVA) サポート 非対応 非対応

OpenClaw はモデルの能力に基づいて前処理が必要かどうかを自動判断します。例えば、GPT-4oに送信する音声は直接渡せますが、Claudeに送信する音声は先にSTTで書き起こす必要があります。

メディアファイルのクリーンアップ

一時ファイルの無制限な増大を防ぐため、OpenClaw は定期的にクリーンアップを行います。

# メディアキャッシュを手動でクリーンアップ
openclaw media cleanup

# メディアキャッシュの使用量を確認
openclaw media stats

まとめ

OpenClaw のマルチメディア処理システムは、統一的な抽象化をベースに、各チャンネルの差異化された能力に十分に対応しています。適切な設定により、AIアシスタントがさまざまなプラットフォームで画像、音声、ドキュメントをシームレスに処理しつつ、リソース消費を制御できます。重要なのは、実際に使用するチャンネルとモデルに応じて、適切なメディア処理パラメータとフォールバック戦略を設定することです。

OpenClawは無料のオープンソースAIアシスタント。WhatsApp、Telegram、Discordなど多数のプラットフォームに対応