画像分析とビジョン
Triggerfishはすべてのインターフェースで画像入力をサポートします。CLIまたはブラウザでクリップボードから 画像を貼り付け、エージェントがディスク上の画像ファイルを分析できます。プライマリモデルがビジョンを サポートしていない場合、別のビジョンモデルがプライマリモデルに届く前に自動的に画像を説明できます。
画像入力
CLI:クリップボードから貼り付け(Ctrl+V)
CLIチャットでCtrl+Vを押してシステムクリップボードから画像を貼り付けます。画像はOSクリップボードから 読み取られ、Base64エンコードされ、テキストメッセージと共にマルチモーダルコンテンツブロックとして エージェントに送信されます。
クリップボードの読み取りのサポート:
- Linux —
xclipまたはxsel - macOS —
pbpaste/osascript - Windows — PowerShellクリップボードアクセス
Tidepool:ブラウザ貼り付け
TidepoolのWebインターフェースでは、ブラウザのネイティブ貼り付け機能(Ctrl+V / Cmd+V)を使用して チャット入力に直接画像を貼り付けます。画像はデータURLとして読み取られ、Base64エンコードされた コンテンツブロックとして送信されます。
image_analyzeツール
エージェントはimage_analyzeツールを使用してディスク上の画像ファイルを分析できます。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
path | string | はい | 画像ファイルの絶対パス |
prompt | string | いいえ | 画像についての質問またはプロンプト(デフォルト:「この画像を詳しく説明してください」) |
サポートされるフォーマット: PNG、JPEG、GIF、WebP、BMP、SVG
ツールはファイルを読み取り、Base64エンコードし、分析のためにビジョン対応のLLMプロバイダーに送信します。
ビジョンモデルフォールバック
プライマリモデルがビジョンをサポートしていない場合(例:Z.AI glm-5)、プライマリモデルに届く前に 自動的に画像を説明する別のビジョンモデルを設定できます。
仕組み
- 画像を貼り付ける(Ctrl+V)かマルチモーダルコンテンツを送信する
- オーケストレーターがメッセージ内の画像コンテンツブロックを検出する
- ビジョンモデルが各画像を説明する(「画像を分析中...」スピナーが表示される)
- 画像ブロックがテキスト説明に置き換えられる:
[ユーザーが画像を共有しました。ビジョンモデルが次のように説明しました:...] - プライマリモデルが説明付きのテキストのみのメッセージを受け取る
- システムプロンプトのヒントがプライマリモデルに説明を画像が見えるかのように扱うよう指示する
これは完全に透明です — プライマリモデルがビジョンをサポートしているかどうかにかかわらず、 画像を貼り付けてレスポンスを得ます。
設定
モデル設定にvisionフィールドを追加します:
yaml
models:
primary:
provider: zai
model: glm-5 # ビジョン非対応のプライマリモデル
vision: glm-4.5v # 画像説明のためのビジョンモデル
providers:
zai:
model: glm-5visionモデルはプライマリプロバイダーのキーチェーンエントリから認証情報を再利用します。この例では、 プライマリプロバイダーがzaiなので、glm-4.5vはOSキーチェーンのzaiプロバイダー用に保存された 同じAPIキーを使用します。
| キー | タイプ | 説明 |
|---|---|---|
models.vision | string | 自動画像説明用のオプションビジョンモデル名 |
ビジョンフォールバックが有効になる条件
models.visionが設定されている場合のみ- メッセージに画像コンテンツブロックが含まれる場合のみ
- 文字列のみのメッセージとテキストのみのコンテンツブロックはフォールバックを完全にスキップします
- ビジョンプロバイダーが失敗した場合、エラーは適切に処理されエージェントは継続します
イベント
オーケストレーターはビジョン処理中に2つのイベントを発行します:
| イベント | 説明 |
|---|---|
vision_start | 画像説明の開始(imageCountを含む) |
vision_complete | すべての画像の説明が完了 |
これらのイベントはCLIとTidepoolインターフェースの「画像を分析中...」スピナーを動かします。
プライマリモデルが既にビジョンをサポートしている場合(例:Anthropic Claude、OpenAI GPT-4o、
Google Gemini)、models.visionを設定する必要はありません。画像はマルチモーダルコンテンツとして 直接プライマリモデルに送信されます。 :::
