Microsoft Agent Framework: マルチモーダルエージェント
マルチモーダルエージェントは、テキスト以上のものを扱います。画像やPDFも処理できます。
Microsoft Agent Frameworkを使用すると、エージェントの呼び出しを通じて非テキストコンテンツを渡すことができます。ホストされたファイルには UriContent を、ローカルのバイナリデータには DataContent を使用できます。
このフレームワークは多くのファイル形式を表現できます。しかし、「表現できること」と「能力があること」は同じではありません。
リリース前に、次の3つの点を確認する必要があります:
- フレームワークはそのコンテンツを表現できるか?
- プロバイダーアダプターはそのコンテンツを送信できるか?
- モデルは、特定のタスクに対してそのコンテンツを理解できるか?
このチェーンのどこか一箇所でも失敗すれば、抽象化は失敗します。
画像はシンプルです。テキストによる指示と画像を提供すれば、モデルがテキストで回答を返します。これは以下のようなケースに適しています:
- UIレビュー
- スクリーンショットのトリアージ
- 手書きメモの書き起こし
- シンプルなチャートの解説
PDFは複雑です。PDFは単なる大きな画像ではありません。テキスト、テーブル、ベクターグラフィックス、レイヤーが含まれています。
「このPDFを読んで」という指示の意味は、プロバイダーによって異なります。テキストとして認識するモデルもあれば、視覚的なレイアウトとして認識するモデルもあります。
ネイティブのPDF入力を使用すべき場面:
- ドキュメントが小さい。
- 回答において視覚的なレイアウトが重要である。
- ドキュメントを繰り返し検索する必要がない。
手動のプリプロセッシング(前処理)を使用すべき場面:
- 大量のドキュメントを処理する。
- 再現可能な抽出が必要である。
- 安定した引用やページ参照が必要である。
- コストとレイテンシを制御する必要がある。
本番環境のシステムでは、「PDF全体を送信する」ことをデフォルトにしないでください。
アプリケーションがアップロードの境界を管理すべきです。アプリケーションは以下の役割を担う必要があります:
- ユーザーの認証と認可。
- コンテンツタイプの検証。
- 安全でないファイルのスキャン。
- オリジナルファイルの保存。
- 抽出されたテキストやページの画像などの派生アーティファクトの作成。
その上で、エージェントが必要なものだけを渡します。
OCRやテーブル構造のように高い精度が求められる場合は、まずドキュメント処理パイプラインを使用してください。エージェントは「抽出レイヤー」ではなく、「解説レイヤー」に位置づけるべきです。
エージェントにファイルへの直接アクセス権を与えるのではなく、ツールを与えてください。「InspectDocument」のようなツールを使用すれば、エージェントは生のインフラに触れることなく情報を要求できます。
最後に、ファイル処理に関するすべてをログに記録してください。回答だけを記録するのではなく、モデル、ファイルサイズ、ページ数、およびプリプロセッシングのパスを記録してください。これがないと、失敗したビジョンタスクのデバッグは不可能です。
Optional learning community: https://t.me/GyaanSetuAi
