AutoGen AgentChat では、メッセージは他のエージェント、オーケストレーター、アプリケーションとの通信や情報交換を容易にします。AgentChat はそれぞれ特定の目的のために設計された、様々なメッセージタイプをサポートします。
AutoGen AgentChat : Tutorial : メッセージ
作成 : クラスキャット・セールスインフォメーション
作成日時 : 04/18/2025
* 本記事は github microsoft/autogen の以下のページを独自に翻訳した上でまとめ直し、補足説明を加えています :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
◆ お問合せ : 下記までお願いします。
- クラスキャット セールス・インフォメーション
- sales-info@classcat.com
- ClassCatJP
AutoGen AgentChat : Tutorial : メッセージ
AutoGen AgentChat では、メッセージは他のエージェント、オーケストレーター、アプリケーションとの通信や情報交換を容易にします。AgentChat はそれぞれ特定の目的のために設計された、様々なメッセージタイプをサポートします。
メッセージのタイプ
おおまかに言えば、AgentChat のメッセージは 2 つのタイプに分類されます : エージェント間 (agent-agent) メッセージとエージェント内部のイベントとメッセージです。
エージェント間 (Agent-Agent) メッセージ
AgentChat はエージェント間通信のために多くのメッセージタイプをサポートしています。それらは基底クラス BaseChatMessage のサブクラスに属します。具象サブクラスは、TextMessage や MultiModalMessage のような基本的なテキストとマルチモーダル通信をカバーします。
例えば、次のコードスニペットは、文字列コンテンツや文字列ソースを受け取る、テキストメッセージを作成する方法を実演します :
from autogen_agentchat.messages import TextMessage
text_message = TextMessage(content="Hello, world!", source="User")
同様に、次のコードスニペットは、文字列や Image オブジェクトのリストを受け取る、マルチモーダル・メッセージを作成する方法を示します :
from io import BytesIO
import requests
from autogen_agentchat.messages import MultiModalMessage
from autogen_core import Image as AGImage
from PIL import Image
pil_image = Image.open(BytesIO(requests.get("https://picsum.photos/300/200").content))
img = AGImage(pil_image)
multi_modal_message = MultiModalMessage(content=["Can you describe the content of this image?", img], source="User")
img
作成した TextMessage や MultiModalMessage は on_messages メソッドでエージェントに直接渡したり、チーム run() メソッドに指定タスクとして渡すこともできます。メッセージはまたエージェントのレスポンスでも使用されます。We will explain these in more detail in Agents and Teams.
内部イベント
AgentChat はまたイベントの概念 – エージェント内のメッセージもサポートします。これらのメッセージはエージェント自体の内部でのアクションについてのイベントや情報を伝達するために使用され、基底クラス BaseAgentEvent のサブクラスに属します。
これらの例は、ツールを呼び出すリクエストが行われたことを示す ToolCallRequestEvent や、ツール呼び出しの結果を含む ToolCallExecutionEvent を含みます。
通常、イベントはエージェント自体により作成され、on_messages から返される Response の inner_messages フィールドに含まれます。カスタムエージェントを構築していて、他のエンティティ (e.g., UI) に通知したいイベントがある場合、これらを Response の inner_messages フィールドに含めることができます。We will show examples of this in Custom Agents.
messages モジュールで AgentChat でサポートされるメッセージの完全なセットについて読むことができます。
カスタム・メッセージタイプ
基底クラス BaseChatMessage or BaseAgentEvent をサブクラス化することで、カスタム・メッセージタイプを作成することができます。これは、アプリケーションに合わせた、独自のメッセージ形式や動作を定義することを可能にします。カスタムエージェントを作成する場合、カスタムエージェントタイプは役立ちます。
以上