AG2 のグループチャット・オーケストレーションは、複数のエージェントが共有コンテキスト内で連携し、2 つだけのエージェントやシーケンシャル・インタラクションで可能なことよりも動的で複雑なワークフローを可能にします。この強力なパターンは、2 エージェント以上の連携が必要な場合、調整を合理化します。
AG2 : ユーザガイド – 高度な概念 : オーケストレーション : グループチャット : 概要
作成 : クラスキャット・セールスインフォメーション
作成日時 : 09/09/2025
バージョン : v0.9.9
* 本記事は docs.ag2.ai の以下のページを独自に翻訳した上でまとめ直し、補足説明を加えています。スニペットはできる限り日本語を使用しています :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
AG2 : ユーザガイド – 高度な概念 : オーケストレーション : グループチャット : 概要
AG2 のグループチャット・オーケストレーションは、複数のエージェントが共有コンテキスト内で連携し、2 つだけのエージェントやシーケンシャル・インタラクションで可能なことよりも動的で複雑なワークフローを可能にします。
この強力なパターンは、2 エージェント以上の連携が必要な場合、エージェントが専門知識を持とうがワークフローで補完的な役割を持とうが、調整 (coordination) を合理化します。
目的とメリット
2-エージェント・チャットが単純なインタラクションで上手く動作し、シーケンシャルチャットが事前に決められたワークフローを処理できる一方で、グループチャットは幾つかの独自の利点を提供します :
- 合理化された調整 : 複数のエージェントを少ないコードと柔軟なインタラクションで管理できます。
- 専門知識 : 各エージェントは得意なものに集中し、専門家チームを形成します。
- 動的なコラボレーション : エージェントは互いにやり取りできて、発生した新しい情報に応答できます。
- 柔軟なハンドオフ : コンテキスト、会話の状態、明示的な指示に基づいて、制御はエージェント間で移動できます。
- 安全ガードレール : 組み込みの監視メカニズムが定義された境界内にエージェントが留まることを保証します。
- 共有コンテキスト : すべてのエージェントは、同じ会話コンテキスト内部で動作し、連続性を維持します。
- スケーラブルな複雑性 : 既存のエージェントを複雑にするのではなく、専門エージェントの導入で新しい機能を簡単に追加できます。
コア・コンポーネント
以下はグループチャット・オーケストレーションのコアコンポーネントです :
- エージェント : ワークフローで特定のタスクを実行する Conversable エージェント。
- パターン : エージェントが会話内でどのように順番を交代するか、互いにやり取りするかを定義します。
- ハンドオフ : エージェントが互いに制御を渡す方法を制御します。
- ガードレール : エージェントの動作を監視し、運用境界を強制する安全メカニズム。
- コンテキスト変数 : 会話を通してすべてのエージェントがアクセス可能な共有状態情報。
Step-by-Step ガイド: 単純なグループチャットの作成
この例は、3 つのエージェントを持つ単純なグループチャット・システムを構築する方法を実演します: トリアージエージェント、テクニカルサポート・エージェント、一般サポートエージェント。
これらのエージェントは連携して、技術関連クエリーを持つユーザを支援します。AutoPattern を使用して、会話コンテキストに基づいてどのエージェントが次に応答するべきか自動的に決定します。
1. モジュールのインポートと LLM の設定
必要なモジュールをインポートして言語モデル設定のセットアップをすることから始めます。
from autogen import ConversableAgent, LLMConfig
from autogen.agentchat import initiate_group_chat
from autogen.agentchat.group.patterns import AutoPattern
llm_config = LLMConfig({"api_type": "openai", "model": "gpt-5-nano"})
2.専門エージェントの作成
各エージェントはフォーカスされた責任を負います。システムメッセージを使用してロールを設定します。
triage_agent = ConversableAgent(
name="triage_agent",
system_message="""あなたはトリアージエージェントです。
ユーザーからのクエリーごとに、技術的な問題か一般的な質問かを判断します。
技術的な問題はテクニカルエージェントに、一般的な質問はジェネラルエージェントにルーティングします。
提案や回答は提供せず、クエリーのルーティングのみを行います。""",
llm_config=llm_config
)
tech_agent = ConversableAgent(
name="tech_agent",
system_message="""あなたはソフトウェアのバグやハードウェアの問題のような技術的な問題を解決します。""",
llm_config=llm_config
)
general_agent = ConversableAgent(
name="general_agent",
system_message="あなたは一般的な、技術的ではないサポート質問に対応します。",
llm_config=llm_config
)
3. ユーザエージェントの作成
ユーザエージェントはグループチャットに参加する実際の人間のユーザをシミュレートします。
user = ConversableAgent(name="user", human_input_mode="ALWAYS")
4. 会話パターンの定義
AutoPattern を使用して、グループマネージャにどのエージェントが次の順番になるべきかを動的に決定させます。
pattern = AutoPattern(
initial_agent=triage_agent, # 会話を開始するエージェント
agents=[triage_agent, tech_agent, general_agent],
user_agent=user,
group_manager_args={"llm_config": llm_config}
)
5. グループチャットの開始
initiate_group_chat() メソッドを呼び出して会話を始めます :
result, context, last_agent = initiate_group_chat(
pattern=pattern,
messages="ノートパソコンが突発的にシャットダウンする状態が続いています。手助けしていただけますか?",
max_rounds=10
)
実行中に何が起きているか?
次の図はトリアージの例がどのように展開されるかを示しています。ユーザはメッセージを送信し、問題に基づいて、トリアージエージェントはそれが技術的か一般的な問題かを判断します。
この例では、AutoPattern を使用しています、この場合会話の内容に基づいて、次の発言者が自動的に選択されます。
完全なコード例
from autogen import ConversableAgent, LLMConfig
from autogen.agentchat import initiate_group_chat
from autogen.agentchat.group.patterns import AutoPattern
llm_config = LLMConfig({"api_type": "openai", "model": "gpt-5-nano"})
triage_agent = ConversableAgent(
name="triage_agent",
system_message="""あなたはトリアージエージェントです。
ユーザーからのクエリーごとに、技術的な問題か一般的な質問かを判断します。
技術的な問題はテクニカルエージェントに、一般的な質問はジェネラルエージェントにルーティングします。
提案や回答は提供せず、クエリーのルーティングのみを行います。""",
llm_config=llm_config
)
tech_agent = ConversableAgent(
name="tech_agent",
system_message="""あなたはソフトウェアのバグやハードウェアの問題のような技術的な問題を解決します。""",
llm_config=llm_config
)
general_agent = ConversableAgent(
name="general_agent",
system_message="あなたは一般的な、技術的ではないサポート質問に対応します。",
llm_config=llm_config
)
user = ConversableAgent(name="user", human_input_mode="ALWAYS")
pattern = AutoPattern(
initial_agent=triage_agent,
agents=[triage_agent, tech_agent, general_agent],
user_agent=user,
group_manager_args={"llm_config": llm_config}
)
result, context, last_agent = initiate_group_chat(
pattern=pattern,
messages="ノートパソコンが突発的にシャットダウンする状態が続いています。手助けしていただけますか?",
max_rounds=10
)
出力例
出力例
user (to chat_manager):
ノートパソコンが突発的にシャットダウンする状態が続いています。手助けしていただけますか?
--------------------------------------------------------------------------------
Next speaker: triage_agent
>>>>>>>> USING AUTO REPLY...
triage_agent (to chat_manager):
このクエリは技術的な問題としてテクニカルエージェントへルーティングします。
--------------------------------------------------------------------------------
Next speaker: tech_agent
>>>>>>>> USING AUTO REPLY...
tech_agent (to chat_manager):
お困りの状況、つらいですね。ノートパソコンが突発的にシャットダウンする原因は複数考えられます。まずは安全に確認できる範囲から段階的に絞り込んでいきましょう。
まず確認したいこと(質問形式で教えてください)
- OSはWindowsですか、それとも macOS / Linux ですか?
- モデル名(例:Dell XPS 15 7590、MacBook Pro 14 など)と年式を教えてください。
- シャットダウンはどんな時に起きやすいですか?(例:ゲームや動画編集などの負荷時、アイドル時、充電中/充電なしのいずれか、特定のアプリ使用時など)
- 発生時、画面が黒くなるだけですか?それともブルースクリーン/エラーメッセージが表示されますか?
- 最近の変化はありますか?(新しいソフトのインストール、BIOS/ドライバの更新、掃除後のファン挙動など)
- バッテリーの状態はどうですか?膨張の兆候はありますか?
基本的なセルフチェック(リスクの低い順に実施)
- 環境・冷却
- 通気孔を塞ぐホコリを掃除する(電源を抜き、ノートパソコンを平らな場所で使用)。
- ファンが正常に回っているか、異音や過度な熱を感じないか確認。
- 電源系
- OEMの純正ACアダプタを使用しているか確認。別のコンセントや延長コードを試してみる。
- バッテリーが膨張していないか、底部の膨らみを触って確認(異常時は触らずに専門家へ)。
- ソフトウェア・OSの基本
- 最近のOS・ドライバ更新が原因の可能性もあるため、最新の更新を適用しているか確認。
- ウイルス・マルウェア対策を最新にしてスキャンしてみる。
イベントとログの確認(原因特定の重要ポイント)
- Windowsの場合
- イベントビューアーで「システム」ログを確認。シャットダウン直前のエントリ(Kernel-Power イベント ID 41 など)がないか探す。
- バッテリの状態を確認するために電源レポートを作成:
- コマンドプロンプトを管理者として開く
- powercfg /batteryreport /output %USERPROFILE%\battery_report.html /duration 1
- %USERPROFILE%\battery_report.html を開いて、充電サイクルや設計容量・現在容量を確認
- システムファイルの整合性を確認:
- sfc /scannow
- DISM /Online /Cleanup-Image /RestoreHealth
- ハードウェアの健全性チェック
- メモリテスト:Windowsメモリ診断または MemTest86 を実行
- ストレージの健康状態:SMART情報を確認(CrystalDiskInfo など)、CHKDSK /F /R の実行も検討
- 温度監視ツールを使い、CPU/GPUのピーク温度が異常に高くないか確認(例:HWMonitor、Core Temp)
BIOS/ファームウェアのチェック
- BIOS/UEFIが最新か確認。メーカーの公式サイトから最新バージョンを取得して適用を検討。
- BIOS設定をデフォルトにリセットして、過剰な省電力設定や過熱保護の影響を排除する。
対応の方針(状況別の目安)
- バッテリーが劣化・膨張・充電時のシャットダウンが多い場合
- バッテリ交換を検討。長期的にはAC駆動のみでの運用は危険な場合があるため、バッテリの健康状態が悪い場合は修理・交換が現実的です。
- 温度が原因の場合
- 冷却を改善してしばらく様子を見る。ファンの故障やヒートシンクの異常が疑われるため、メーカー修理を検討。
- OS・ドライバ・ソフトウェアの問題の場合
- 不要なバックグラウンドアプリの停止、グラフィックドライバの再インストール、クリーンブートで原因特定を試みる。
- ハードウェア故障の可能性が高い場合
- ログ・診断結果をもとにメーカーサポートへ連絡。保証期間内ならメーカー修理が最善。
この先の進め方
- もしよろしければ、以下を教えてください。OSとモデルが分かれば、具体的な手順を絞ってお伝えします。
- OS名とバージョン
- ノートPCのモデル名と年式
- シャットダウンのパターン(負荷時・アイドル時・充電/未充電の差)
- 最近の更新や変更点
- それが分かれば、あなたの環境に合わせた具体的なコマンド/手順(イベントログの取得方法、バッテリーレポートの取り方、SFC/DISMの実行方法、ハードウェア検査の手順など)を段階的に詳しく案内します。
準備ができ次第、状況を詳しく教えてください。お手伝いします。
--------------------------------------------------------------------------------
Next speaker: user
Replying as user. Provide feedback to chat_manager. Press enter to skip and use auto-reply, or type 'exit' to end the conversation: Windows 10
user (to chat_manager):
Windows 10
--------------------------------------------------------------------------------
Next speaker: tech_agent
>>>>>>>> USING AUTO REPLY...
tech_agent (to chat_manager):
Windows 10 での突発シャットダウンの現象を絞り込むための、実践的な手順を順番にご案内します。まずは安全・基本観察から、次にログ・ハードウェア診断、ソフトウェア面の対策へと進めていきましょう。
1) 基本的な安全確認と環境チェック
- バッテリー・電源
- バッテリーの膨張の兆候がないか確認(底部のふくらみは危険信号なので触らずに専門家へ)。
- OEMの純正ACアダプタを使用しているか、別の電源コンセントや延長コードを試してみる。
- 冷却と場所
- 通気孔が塞がれていないか、ノートパソコンを平らで硬い場所で使用しているか、ホコリを軽く掃除しているか。
- ファンの異音や過度な熱を感じないか観察。
2) Windows 側のイベント・ログと簡易診断
- イベントビューアーでの確認
- Windowsキー + R → eventvwr.msc を実行
- 左ペイン:Windows Logs → System
- 右ペインの「フィルター Current Log...」から以下を確認
- Kernel-Power のイベントID 41(突然の電源喪失・シャットダウンの代表例)
- 以前のイベントID 1074 や 6006/6008 などのシャットダウン関連エントリ
- 直前のイベントを見て、原因の手がかりとなるエラー/警告がないかチェック
- バッテリの状態を調べる
- 管理者としてコマンドプロンプトを開く
- powercfg /batteryreport /output %USERPROFILE%\battery_report.html /duration 1
- エクスプローラで %USERPROFILE% の battery_report.html を開き、設計容量と現在容量、充電サイクル数を確認
- エネルギー診断レポート(ソフトウェアの問題切り分けに便利)
- 管理者としてコマンドプロンプトを開く
- powercfg /energy /duration 60 /output C:\Windows\System32\energy-report.html
- energy-report.html を開いて、潜在的な電力設定やドライバの問題を確認
3) ハードウェアの基本診断
- メモリ
- Windows Memory Diagnostic を実行(Windowsキー検索「Windows Memory Diagnostic」 →「今すぐ再起動して問題を検査します」を選択)
- ストレージ
- CHKDSKの実行(管理者コマンドプロンプト)
- chkdsk C: /F /R
- 次回起動時にスケジュールされるので、Yes と答えて再起動
- SMART情報の確認(可能なら CrystalDiskInfo などのツールで C: の健康状態を確認)
- 温度・冷却監視
- HWMonitor や Core Temp などでCPU/GPU温度を監視。ピーク温度が過度に高い場合は冷却を改善する必要があります。
4) ソフトウェア/ドライバの対策
- Windows 更新
- Settings → Update & Security → Windows Update で最新性を確認・適用
- グラフィックドライバの再インストール
- GPUメーカーの公式サイト(NVIDIA/AMD/Intel)から最新版をダウンロードして再インストール
- できれば「クリーンインストール」を選ぶと良い場合があります
- クリーンブートで原因の切り分け
- Windowsキー + R → msconfig
- 「サービスをすべて表示」にチェックを入れ、すべての Microsoft サービスを非表示 → すべて無効化
- 「スタートアップ」タブから不要な起動項目を無効化(タスクマネージャーからも同様に無効化可能)
- 再起動して問題が再現するか確認
- ウイルス対策のスキャン
- 最新の定義ファイルでフルスキャン
5) BIOS/ファームウェアの確認と設定
- BIOS/UEFIが最新か確認
- メーカーの公式サイトでノートPCのモデル名と年式に対応する最新BIOSを確認
- 最新版に更新する場合は、手順に従って慎重に実施
- BIOSの初期設定リセット
- 出荷時設定にリセット(デフォルト設定に戻す)して、過度な省電力設定や過熱保護設定を排除
- 更新後は設定をデフォルトのままにしてテスト
6) 進め方と次に知りたいこと
- 実際の状況を絞りたいので、以下の情報を教えてください
- ノートPCのモデル名と概ねの年式
- Windows 10 のバージョン(例: Windows 10 Pro, バージョン 21H2 など)
- シャットダウンのパターン:負荷時(ゲーム/編集時)か、アイドル時か、充電時か充電なしか、特定アプリ使用時か、など
- 直前・直後のイベントログに何かエラーがあったか(Kernel-Power 41 などの有無)
- バッテリー状態の変化(膨張・劣化の兆候、充電サイクル数の推定)
- 最近のOSアップデート、ドライバ更新、ソフトのインストール/削除の有無
- 得られたログがあれば共有してください
- battery_report.html の内容(設計容量と現容量、充電サイクル数、充電状況の傾向)
- energy-report.html の要約(特に「Energy efficiency problems」や「GPU/ドライバ」関連の警告)
- イベントビューアーの Kernel-Power 41 周辺のエントリの時刻と関連イベント
この情報が揃えば、あなたの環境に合わせて具体的な手順をさらに絞り込み、実行すべきコマンドや操作を、順を追って詳しく案内します。準備ができたら、上記の情報を教えてください。
--------------------------------------------------------------------------------
Next speaker: tech_agent
>>>>>>>> USING AUTO REPLY...
tech_agent (to chat_manager):
よろこんでお手伝いします。Windows 10 での突発シャットダウンは、電源系・冷却系・ソフトウェア・ハードウェアの複数要因が絡むことが多いです。今から実践的な手順を、難易度が低いものから順にご案内します。安全第一で進めましょう。
1) 今すぐできる安全・環境チェック
- バッテリーと電源
- バッテリー膨張の兆候(底部のふくらみ)はありませんか?触らず専門家へ。
- OEMの純正ACアダプタを使い、別のコンセント/延長コードで試せますか?
- 冷却と設置環境
- 通気孔が塞がれていないか、ノートPCを硬い平面で使っているか、ホコリを軽く掃除できますか?
- ファンの異音や異常な熱は感じますか?
- 安全な観察
- シャットダウン時に画面は黒いまま、あるいはブルースクリーン/エラーメッセージが出ますか?
2) Windows 10 側のログと診断データを取る
- バッテリーレポートを作成
- 管理者としてコマンドプロンプトを開く
- 入力
powercfg /batteryreport /output %USERPROFILE%\battery_report.html /duration 1
- %USERPROFILE% の battery_report.html を開き、設計容量・現在容量・充電サイクルを確認
- エネルギー診断レポートを作成
- 管理者としてコマンドプロンプトを開く
- 入力
powercfg /energy /duration 60 /output %USERPROFILE%\energy-report.html
- energy-report.html を開いて、警告やドライバの問題の目安を確認
- イベントログの確認(原因の手がかり)
- Windowsキー + R → eventvwr.msc
- 左の「Windows Logs」→「System」を表示
- 右側の「フィルター Current Log...」で以下を指定して絞り込み
- Kernel-Power のイベントID 41
- 直前のイベントID 1074 / 6006 / 6008 など
- 直前のエントリをメモするか、結果をテキスト化して共有できると診断が進みやすいです
3) 基本的なハードウェア診断
- メモリ
- Windows Memory Diagnostic を実行(スタート検索「Windows Memory Diagnostic」→「今すぐ再起動して問題を検査します」)
- ストレージ(ディスク)健全性
- 管理者コマンドプロンプトで
chkdsk C: /F /R
- 次回再起動時にスケジュールされるので「Yes」と答えて再起動
- SMART情報を確認できるツール(例:CrystalDiskInfo)でC:の健康状態を確認
- 温度監視
- HWMonitor などでCPU/GPUの温度を、負荷時にピークがどのくらいか観察
- 高温(例: 90℃以上)の頻出が続く場合は冷却改善が必要
4) ソフトウェア・設定の対策
- Windows 更新の適用
- Settings > Update & Security > Windows Update で最新更新を適用
- グラフィックドライバの再インストール
- GPUメーカー公式サイトから最新版をダウンロードして再インストール
- 可能なら「クリーンインストール」を選ぶと不整合が減ります
- クリーンブートで原因切り分け
- Windowsキー + R → msconfig
- 「サービスをすべて表示」にチェック→ Microsoft 以外のサービスをすべて無効化
- 「スタートアップ」タブの不要な起動項目を無効化
- 再起動して問題が再現するか確認
- ウイルス/マルウェア対策
- 最新の定義ファイルでフルスキャン
5) BIOS/ファームウェアの確認
- BIOS/UEFIが最新か確認、必要ならメーカー公式サイトから更新
- 更新後は設定をデフォルトにリセットして様子を見る(省電力設定の影響排除)
6) 進め方と次に知りたいこと
以下を教えていただけると、具体的な次の手順を絞り込みやすくなります。
- ノートPCのメーカー名と正確なモデル名(例:Dell XPS 13 9300 など)
- お使いのWindows 10のエディションとビルド番号
- 設定 > システム > バージョン情報 で表示される「OS ビルド」と「バージョン」
- シャットダウンのパターン(負荷時/アイドル時/充電中/充電なし/特定アプリ時など)
- 最近の更新や変更点(OS更新、ドライバ更新、ソフトの追加削除、BIOS更新など)
- 取ったログの要点(battery_report.html / energy-report.html の要約、イベントビューアーの Kernel-Power 41 の直前/直後のイベント、その他気づいた点)
この情報が揃えば、次は以下を一括で進めます。
- あなたの環境に合わせた絞り込み手順(具体的なコマンド、操作の順序、期待される出力の見方)
- ログの共有方法と、問題の再現条件の整理
- バッテリー・温度・ドライバ・BIOSのどれが原因かの優先度付き判断と、取り得る対処案(例:バッテリ交換、冷却改善、ドライバのロールバック、クリーンブート後の再テスト、修理依頼のタイミングなど)
準備ができたら、上の情報を教えてください。すぐに、あなたの環境に合わせた具体的な手順を順を追って案内します。
--------------------------------------------------------------------------------
Next speaker: user
Replying as user. Provide feedback to chat_manager. Press enter to skip and use auto-reply, or type 'exit' to end the conversation: ありがとう
user (to chat_manager):
ありがとう
--------------------------------------------------------------------------------
Next speaker: tech_agent
>>>>>>>> USING AUTO REPLY...
tech_agent (to chat_manager):
どういたしまして。引き続きサポートします。
次の情報を共有していただけると、原因特定と対処の優先順位を絞り込むのに役立ちます。手元にあるものをそのまま教えてください。
- ノートPCのメーカー名と正確なモデル名
- Windows 10 のエディションとOSビルド(設定 > システム > バージョン情報 で表示)
- シャットダウンのパターン(負荷時/アイドル時/充電中/充電なしなど、特定アプリ時があるかも含む)
- battery_report.html の要約(設計容量 vs 現在容量、充電サイクル数、充電状態の傾向)
- energy-report.html の要約(特にドライバやエネルギー関連の警告があるか)
- イベントビューアーの Kernel-Power 41 直前/直後のエントリ時刻と内容(可能ならテキストで貼り付け)
もし今すぐ共有が難しければ、1つだけでもOKです。例えば「Kernel-Power 41 の有無」や「バッテリーリポートの主要数値」だけでも次の手順を絞り込めます。
準備ができたら教えてください。こちらで要点を解釈して、次に実施すべき具体的なコマンドと手順を案内します。必要であれば、ログの読み方のコツも詳しく説明します。
--------------------------------------------------------------------------------
Next speaker: tech_agent
>>>>>>>> USING AUTO REPLY...
tech_agent (to chat_manager):
どういたしまして。必要な情報を共有いただければ、次の手順を具体的に絞り込んで案内します。
もし今すぐ共有できる情報が1つだけでもOKです。優先度が高い順に選んでください。
- Kernel-Power 41 の有無(イベントビューアーの直前エントリの様子と時刻を教えてください)
- battery_report.html の要約
- 設計容量と現在容量の比率
- 充電サイクル数
- 現在の充電状態の傾向
- energy-report.html の要約
- ドライバやエネルギー関連の警告があるかどうか
- イベントビューアーの System ログで Kernel-Power 41 の直前/直後のエントリの時刻と内容
いずれも用意が難しければ、次を1つだけでもOKです。
- Kernel-Power 41 が発生しているかどうか(有無の確認だけでも)
準備ができたら、共有してください。いただいた情報に基づき、次に実施すべき具体的なコマンドと手順を、ステップごとに詳しく案内します。必要であればログの読み方のコツも併せて説明します。
--------------------------------------------------------------------------------
Next speaker: triage_agent
>>>>>>>> USING AUTO REPLY...
triage_agent (to chat_manager):
このクエリは技術的な問題としてテクニカルエージェントへルーティングします。
--------------------------------------------------------------------------------
>>>>>>>> TERMINATING RUN (9e60fc99-e72c-4d42-8dc8-f70504f8378d): Maximum rounds (10) reached
以上