はじめに: AutoGen から AG2 まで
自動生成 による研究プロジェクトとして2023年に誕生しました。 マイクロソフトリサーチ と 野心的な目標: AI エージェントが連携できるフレームワークを作成すること 会話。エージェントを孤立したワーカーとして扱う他のフレームワークとは異なります タスクを順番に実行する AutoGen とは根本的に異なるパラダイムを導入しました。 彼らはお互いに話します、解決策について交渉し、お互いを修正し、新たな結果を生み出します 彼らのやりとりから。
AutoGen の進化の軌跡は重要でした。初期リリース (0.1 ~ 0.2) では、 マルチエージェントの会話の可能性。に 2024年11月、プロジェクトは に名前変更されました AG2 そしてオープンガバナンスの下で移行し、コントロールから解放されました マイクロソフトから直接。に 2025年1月、AutoGen 0.4 リリースでは、 アーキテクチャの完全な再設計: イベント駆動型の非同期コア、モジュール式エージェント、およびシステム トピックベースのメッセージング。
並行して、マイクロソフトは Microsoft エージェント フレームワーク、プレビューに入力されました 2025 年 10 月に開始され、2026 年第 1 四半期に一般提供される予定です。このフレームワークには機能が集約されています AutoGen との セマンティックカーネル、統合された統一されたエンタープライズ エクスペリエンスを提供します Azure AI Foundry を使用します。したがって、AutoGen を理解することは、エコシステム全体をマスターするために不可欠です マイクロソフトのAIエージェント。
この記事で学べること
- AutoGen の会話モデルと他のフレームワークとの違い
- 利用可能なエージェントのタイプ: AssistantAgent、UserProxyAgent、ConversableAgent、GroupChat
- 承認パターンを使用して Human-in-the-Loop を実装する方法
- コード生成サイクルは自己修正されます
- マルチエージェントの会話における緊急行動
- Microsoft Agent Framework への移行パス
- 3 人のエージェントによる反復コードレビューの完全なケーススタディ
AutoGen 対 CrewAI 対 LangGraph
AutoGen について説明する前に、AutoGen が他のフレームワークとどのように比較できるかを理解しておくと役立ちます。 このシリーズで分析したマルチエージェント。それぞれのフレームワークには建築哲学がある 理想的なユースケースを決定する明確な違い。
マルチエージェントフレームワークの比較
| 特性 | オートジェン/AG2 | CrewAI | ランググラフ |
|---|---|---|---|
| パラダイム | 会話ファースト | 役割ベースのチーム | グラフベースのワークフロー |
| 調整 | 自然な会話 | タスクの委任 | 明示的なノットと円弧 |
| 人間参加型 | ネイティブ、4モード | 設定可能 | チェックポイントベース |
| コードの実行 | 統合 (Docker/ローカル) | ツール経由 | カスタムノード |
| エンタープライズサポート | Microsoft が支援 | コミュニティ主導型 | ラングチェーンエコシステム |
| 学習曲線 | 平均 | 低い | 高い |
| 柔軟性 | 高い | 平均 | 最大 |
| 理想的な使用例 | 反復的なコラボレーション | 構造化されたパイプライン | 複雑なワークフロー |
これらのフレームワークの選択は二者択一ではありません。複雑なシステムでは、それらを組み合わせることができます。 全体的なワークフローには LangGraph、エージェント チームには CrewAI、インタラクションには AutoGen を使用します。 反復的な交渉と人間の介入が必要です。重要なのは各人の強みを理解することです 特定の問題に適したツールを選択してください。
会話モデル
AutoGen の中心となる概念は、 会話は調整のプリミティブです。 他のフレームワークはグラフ、キュー、またはパイプラインを使用してエージェントを調整しますが、AutoGen は会話を使用します それ自体。エージェントは、まるで生き物のように、共有スレッドでメッセージを交換することで通信します。 人間はグループ チャットで共同作業します。
このモデルには大きな利点があります。会話は本質的に柔軟性がありますが、それは役に立ちません 考えられるすべてのルートを事前に定義します。エージェントは、ベースに基づいて動的に適応できます。 議論から浮かび上がってくるものへ。あるエージェントが予期せぬ質問をするかもしれないし、別のエージェントが予期せぬ質問をするかもしれない 代替アプローチを提案すると、システムは解決策に向かって有機的に進化します。
共有メモリとしてのチャット履歴
La チャット履歴 すべてのエージェント間の共有メモリとして機能します。すべてのメッセージ 送信された内容は共通コンテキストの一部となり、すべての参加者に表示されます。これにより、 明示的な同期メカニズムの必要性: コンテキストは自然に伝播します 会話を通して。
- コンテキストの蓄積: 各メッセージは、後続のメッセージで使用できるコンテキストを強化します。
- 完全な透明性: 各エージェントは、他のエージェントの決定や推論を含むストーリー全体を確認します。
- 自然なデバッグ: チャット履歴自体が意思決定プロセスの詳細なログです
交代と終了の基準
AutoGen が処理するのは、 交代制 (交互に話す) メカニズム付き 設定可能。 2 人のエージェントによる会話では、ターンが自然に交互になります。グループチャット内 複数のエージェントを使用すると、 グループチャットマネージャー に基づいて、次に誰が発言するかを決定します。 会話の文脈。
I 終了基準 会話がいつ終了するかを定義します。自動生成 いくつかの終了条件をサポートしています。
- キーワードベース: エージェントが特定のキーワードを発行すると会話が終了します (例:
TERMINATE) - 最大ラウンド数: 無限ループを回避するための最大ターン数
- 機能ベース: カスタム関数は続行するか終了するかを評価します。
- 人間の決断: 結果が満足できるものであるかどうかは人間のユーザーが決定します
AutoGen のエージェント タイプ
AutoGen は、エージェント クラスの階層を提供します。各クラスは、システム内の特定の役割向けに設計されています。 マルチエージェントの会話。これらのクラスを理解することは、効果的なシステムを設計するために重要です。
ConversableAgent: 柔軟なベース
ConversableAgent これは、他のすべてのエージェントの派生元となる基本クラスです。提供します
コア機能: メッセージの送受信、チャット履歴管理、との統合
LLM とコードの実行。各エージェントは、ConversableAgent を使用するかどうかを設定できます。
言語モデル、コードを実行するかどうか、人間の承認を必要とするかどうか。
from autogen import ConversableAgent
# Agente base con configurazione personalizzata
agente_custom = ConversableAgent(
name="Analista",
system_message="""Sei un analista dati esperto.
Analizza i dati forniti e produci insight actionable.
Quando hai completato l'analisi, rispondi con TERMINATE.""",
llm_config={
"config_list": [{
"model": "gpt-4",
"api_key": "YOUR_API_KEY"
}],
"temperature": 0.1
},
human_input_mode="NEVER",
max_consecutive_auto_reply=10,
code_execution_config=False
)
アシスタントエージェント: リーズナー
AssistantAgent 推論と生成のために事前構成された ConversableAgent です
の答え。デフォルトでは、問題を段階的に解決するように指示するシステム プロンプトが備えられています。
コードを直接実行しませんが、コードを生成して他のエージェントに渡して実行することができます。
これは、分析、計画、コンテンツ生成を必要とするタスクに最も一般的なエージェントです。
from autogen import AssistantAgent
assistant = AssistantAgent(
name="CodingAssistant",
llm_config={
"config_list": [{
"model": "gpt-4",
"api_key": "YOUR_API_KEY"
}]
},
system_message="""Sei un esperto programmatore Python.
Risolvi i problemi scrivendo codice pulito e documentato.
Suggerisci sempre i test unitari per il codice prodotto."""
)
UserProxyAgent: 人間の代表者
UserProxyAgent これは、マルチエージェント システムと人間のユーザーの間の橋渡しとなります。操作できる
人間の入力に関して 3 つのモードがあり、重要なことに、次のことが可能です。 コードを実行する
他のエージェントによって生成されます。 AssistantAgent が Python スニペットを生成すると、UserProxyAgent
安全な環境 (ローカルまたは Docker) で実行し、結果を返します。
from autogen import UserProxyAgent
user_proxy = UserProxyAgent(
name="UserProxy",
human_input_mode="TERMINATE",
max_consecutive_auto_reply=5,
is_termination_msg=lambda msg: "TERMINATE" in msg.get("content", ""),
code_execution_config={
"work_dir": "workspace",
"use_docker": False # True per isolamento via Docker
}
)
グループチャットとグループチャットマネージャー
3 人以上のエージェントとの会話の場合、AutoGen は以下を提供します。 GroupChat e
GroupChatManager。 GroupChat は、参加するエージェントのグループと
会話のルール。 GroupChatManager はシフトを調整し、どのエージェントを決定するか
その後、文脈に基づいて話す必要があります。
from autogen import GroupChat, GroupChatManager
# Definizione del gruppo
group_chat = GroupChat(
agents=[coder, reviewer, tester],
messages=[],
max_round=20,
speaker_selection_method="auto" # L'LLM sceglie chi parla
)
# Manager che orchestra la conversazione
manager = GroupChatManager(
groupchat=group_chat,
llm_config=llm_config
)
# Avvio della conversazione
user_proxy.initiate_chat(
manager,
message="Implementa una funzione per ordinare una lista con merge sort"
)
スピーカーの選択方法
パラメータ speaker_selection_method 次のスピーカーがどのように選ばれるかをチェックしてください。
- "車": LLM は会話を分析し、誰が話すべきかを決定します (より賢く、よりコストがかかります)
- 「ラウンドロビン」: エージェントは順番に順番に話します (予測可能で経済的)
- "ランダム": 利用可能なエージェントの中からランダムに選択 (ブレーンストーミングに役立ちます)
- "マニュアル": ユーザーは各ターンで誰が話すかを選択します (最大制御)
人間参加型
AutoGen の特徴的な機能の 1 つは、ネイティブで詳細なサポートです。
人間参加型 (HITL)。自律システムでは、人間が
代理人の決定を監督、承認、修正することができます。 AutoGen が実装する
これはパラメータを通じて human_input_mode、4つのモードをサポートします。
人間参加型モード
| モード | 行動 | 使用事例 |
|---|---|---|
| いつも | あらゆる場面で人間の入力を求める | 重要なタスク、学習、デバッグ |
| 一度もない | 人間による入力は一切なく、完全に自律的です | バッチ自動化、CI/CD パイプライン |
| 仕上げる | エージェントが終了したい場合にのみ入力を求めます | 最終的な監督、出力の検証 |
| FUNCTION_CALL | 各関数呼び出しの前に承認を求めます | 副作用アクション (API、データベース、ファイル システム) |
モード 仕上げる 多くの場合、これが自動化と制御の間の最良の妥協点となります。 エージェントは解決策に到達するまで自律的に動作し、その後ユーザーは次のことを行うことができます。 結果を承認するか、追加の反復のためにフィードバックを提供するか、セッションを終了します。 このパターンでは、監視を犠牲にすることなく、ユーザーの認知的負荷が大幅に軽減されます。
# Pattern TERMINATE con feedback loop
user_proxy = UserProxyAgent(
name="Supervisore",
human_input_mode="TERMINATE",
max_consecutive_auto_reply=8,
is_termination_msg=lambda msg: "APPROVATO" in msg.get("content", "").upper(),
default_auto_reply="Continua a lavorare. Se hai finito, scrivi APPROVATO."
)
# L'utente vedra il risultato e potra:
# 1. Premere Enter per approvare (input vuoto = auto-reply)
# 2. Digitare feedback per richiedere modifiche
# 3. Digitare "exit" per terminare la sessione
コード生成と自己修正
AutoGen で最も強力なパターンの 1 つは、 コード生成と自己修正サイクル。 AssistantAgent が Python コードを生成し、UserProxyAgent がそれを実行し、コードが失敗した場合は結果が返されます。 エラーの内容は AssistantAgent に返され、そこでエラーが分析され、修正されたバージョンが生成されます。 このサイクルは、成功するか試行制限に達するまで続きます。
生成、実行、修正サイクル
Ciclo di Auto-Correzione AutoGen:
[1] AssistantAgent genera codice Python
|
v
[2] UserProxyAgent esegue il codice
|
+--> Successo? --> Risultato all'AssistantAgent --> TERMINATE
|
+--> Errore? --> Traceback all'AssistantAgent
|
v
[3] AssistantAgent analizza l'errore
|
v
[4] Genera codice corretto --> Torna a [2]
(max N tentativi)
このパターンは意外と効果的です。 Microsoft Research による内部調査によると、 プログラミングの問題を解決する成功率が大幅に向上する 自己修正を繰り返し行う場合と、1 回の試行を行う場合の違いを説明します。エージェントは間違いから学びます ランタイム固有であり、対象を絞った方法で出力を修正します。
# Setup per code generation con auto-correzione
assistant = AssistantAgent(
name="Coder",
llm_config=llm_config,
system_message="""Sei un programmatore Python esperto.
Quando scrivi codice:
1. Includi sempre gli import necessari
2. Gestisci le eccezioni in modo appropriato
3. Stampa i risultati con print()
4. Se ricevi un errore, analizzalo e correggi il codice
5. Quando il codice funziona correttamente, scrivi TERMINATE"""
)
executor = UserProxyAgent(
name="Executor",
human_input_mode="NEVER",
max_consecutive_auto_reply=5,
code_execution_config={
"work_dir": "coding_workspace",
"use_docker": True, # Isolamento per sicurezza
"timeout": 60
},
is_termination_msg=lambda msg: "TERMINATE" in msg.get("content", "")
)
# Il ciclo parte automaticamente
executor.initiate_chat(
assistant,
message="""Scrivi una funzione Python che:
1. Legge un file CSV con pandas
2. Calcola la media, mediana e deviazione standard per ogni colonna numerica
3. Genera un report formattato
Testa la funzione con dati di esempio."""
)
コード実行におけるセキュリティ
LLM によって生成されたコードを実行すると、重大なリスクが生じます。 AutoGen は 2 つのアプローチを提供します これらのリスクを軽減するには:
- Docker の分離: コードは分離された Docker コンテナ内で実行され、ホストのファイル システムとネットワークへのアクセスを防ぎます。
- タイムアウト: 無限ループや過度に長い操作を防ぐために、各実行には構成可能なタイムアウトがあります。
- 専用の作業ディレクトリ: コードは特定のディレクトリで実行され、ファイルへのアクセスが制限されます
- 人間の承認: と
human_input_mode="FUNCTION_CALL"、ユーザーは各実行を承認します
新たな行動
複数のエージェントが自由に会話すると、明示されていない行動が現れる プログラムされた。これはシステムの最も魅力的であると同時に最も危険な側面の 1 つです。 会話型マルチエージェント。新たな行動はポジティブなものにもネガティブなものにもなりえます。
新たに出現したポジティブな行動
- 予期せぬ創造的なソリューション:デザイナーが想定していないアプローチを提案するエージェント システムの。たとえば、Coder エージェントが、それとは異なるライブラリの使用を提案する場合があります。 予想どおり、より洗練されたソリューションが生成されます。
- 自発的な交渉: さまざまなソリューションのトレードオフについて議論するエージェント 最良のものに収束する前に。レビューアーはアプローチとコーダーに異議を唱えるかもしれません 両方を満たす妥協案を提案できます。
- 新たな専門分野: 同様の役割を持つエージェントのグループでは、それぞれの傾向が 問題のさまざまな側面に特化し、暗黙的にワークロードを分散します。
- 自己組織化: エージェントは非公式の通信プロトコルを開発します。 次のステップを提案する前に、現在の状態をどのように要約するか。
新たに出現した否定的な行動
- 無限ループ: 進行せずに同じメッセージを往復する 2 人のエージェント。 終了基準が曖昧すぎる場合、またはエージェントが終了条件に達しない場合によく見られます。 同意。
- タスクからの逸脱:会話が本来の目的から離れていきます。 ある警察官が無関係な詳細について話し始め、他の警察官を引きずり込む可能性があります。
- 共同幻覚: エージェントが誤った情報を生成した場合、 他の人はそれを真実として受け入れ、それに基づいて構築します。代わりに誤差が増幅します 正しくありなさい。
- 複雑さの増大: エージェントは一方的な要件を追加します。 ソリューションが不必要に複雑になります。コード作成者は機能を実装できる 「完全を期すために」は必要ありません。
リスク軽減戦略
| リスク | 戦略 | 実装 |
|---|---|---|
| 無限ループ | 最大ラウンド + タイムアウト | max_round=15 グループチャット内 |
| タスクからの逸脱 | 厳密なシステムプロンプト | 特定の指示と明示的な制約 |
| 共同幻覚 | 専用の検証エージェント | 各出力を検証するクリティカルエージェント |
| エスカレーションの複雑さ | 明示的なスコープ定義 | 最初のプロンプトで閉じられた要件のリスト |
Microsoft エージェント フレームワークへの移行
のリリースに伴い、 Microsoft エージェント フレームワーク、AutoGen エコシステムは収束しつつあります 統合されたエンタープライズ プラットフォームに向けて。このフレームワークは、次の会話機能を組み合わせています。 オーケストレーション モデルを使用した AutoGen セマンティックカーネル、ソリューションを提供します エンタープライズ環境で AI エージェントを開発するための完全なソリューション。
Microsoft エージェント フレームワークの変更点
- 統合API: チャット API とワークフロー API が個別のインターフェースを置き換えます AutoGen とセマンティック カーネルにより、一貫した開発エクスペリエンスが提供されます。
- Azure AI Foundryの統合: エージェントの展開、監視、スケーリングは Azure AI Foundry Agent Service を通じてネイティブに管理されるため、 カスタムインフラストラクチャ。
- 多言語サポート: Python に加えて、フレームワークは C# と Java をサポートしています。 企業チームのアクセシビリティを拡大します。
- エンタープライズガバナンス: セキュリティ ポリシー、監査ログ、コンプライアンス これらはネイティブに組み込まれており、後から追加されたものではありません。
AutoGen 0.2 からの移行パス
AutoGen 0.2 に基づいた既存のプロジェクトを使用している場合は、いくつかの移行パスに従う必要があります。 ステップ。コア API は再設計されましたが、基本的な概念は同じままです。
# AutoGen 0.2 (legacy)
from autogen import AssistantAgent, UserProxyAgent
assistant = AssistantAgent("assistant", llm_config=config)
proxy = UserProxyAgent("user", code_execution_config=exec_config)
proxy.initiate_chat(assistant, message="Risolvi questo problema")
# AutoGen 0.4 / AG2 (nuovo)
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.conditions import TextMentionTermination
agent = AssistantAgent(
name="assistant",
model_client=model_client,
system_message="Sei un assistente esperto"
)
termination = TextMentionTermination("TERMINATE")
team = RoundRobinGroupChat(
participants=[agent],
termination_condition=termination
)
result = await team.run(task="Risolvi questo problema")
移行のヒント
- 新しい API に慣れるために、最も単純なエージェントを移行することから始めます。
- パッケージを使用する
autogen-agentchat高レベルのインターフェースを提供します - I
ConversableAgent彼らはなるAssistantAgent明示的なクライアントモデルを使用した場合 - I
GroupChat彼らはチームになります(RoundRobinGroupChat,SelectorGroupChat) - コードの実行は次のように管理されます。
CodeExecutorAgentひたむきな - 終了条件は明示的なオブジェクトであり、ラムダ関数ではありません
ケーススタディ: マルチエージェントの反復コードレビュー
マルチエージェントの会話の力を具体的に実証するために、システムを実装してみましょう の 反復的なコードレビュー 3人の専門エージェントが対応します。システムは、 コードを指定し、作成し、レビューし、テストし、十分な品質が達成されるまで繰り返します。
システムアーキテクチャ
Sistema di Code Review Multi-Agente:
Specifica dall'utente
|
v
+-------------+ codice +-------------+
| CODER | -----------------> | REVIEWER |
| (scrive | | (revisiona |
| codice) | <----------------- | qualità) |
+-------------+ feedback/fix +-------------+
| |
| codice approvato |
v |
+-------------+ |
| EXECUTOR | <--- ok / test falliti --+
| (esegue e |
| testa) |
+-------------+
|
v
Risultato finale
完全な実装
from autogen import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager
# Configurazione LLM condivisa
llm_config = {
"config_list": [{
"model": "gpt-4",
"api_key": "YOUR_API_KEY"
}],
"temperature": 0.1,
"seed": 42
}
# Agente 1: Coder - genera il codice
coder = AssistantAgent(
name="Coder",
llm_config=llm_config,
system_message="""Sei un programmatore Python senior.
Il tuo compito e scrivere codice pulito, efficiente e ben documentato.
Regole:
- Includi sempre docstring per classi e metodi
- Segui PEP 8 per lo stile
- Gestisci le eccezioni in modo appropriato
- Includi type hints
- Quando ricevi feedback dal Reviewer, correggi il codice
- NON discutere, implementa direttamente le correzioni"""
)
# Agente 2: Reviewer - revisiona la qualità
reviewer = AssistantAgent(
name="Reviewer",
llm_config=llm_config,
system_message="""Sei un code reviewer esperto.
Il tuo compito e analizzare il codice prodotto dal Coder e fornire feedback.
Valuta:
- Correttezza logica e edge cases
- Leggibilita e naming conventions
- Performance e complessità algoritmica
- Gestione errori e robustezza
- Aderenza a best practices Python
Formato del feedback:
- PROBLEMI: lista numerata dei problemi trovati
- SUGGERIMENTI: miglioramenti opzionali
- VERDETTO: APPROVATO o DA_CORREGGERE
Se il codice e buono, rispondi con APPROVATO."""
)
# Agente 3: Executor - esegue e testa
executor = UserProxyAgent(
name="Executor",
human_input_mode="NEVER",
max_consecutive_auto_reply=3,
code_execution_config={
"work_dir": "review_workspace",
"use_docker": True,
"timeout": 30
},
is_termination_msg=lambda msg: "APPROVATO" in msg.get("content", "")
)
# Configurazione GroupChat
group_chat = GroupChat(
agents=[executor, coder, reviewer],
messages=[],
max_round=12,
speaker_selection_method="auto"
)
manager = GroupChatManager(
groupchat=group_chat,
llm_config=llm_config
)
# Avvio del processo
executor.initiate_chat(
manager,
message="""Implementa una classe LRUCache in Python con i seguenti requisiti:
1. capacità massima configurabile
2. Metodi get(key) e put(key, value) con complessità O(1)
3. Eviction della entry meno usata quando la cache e piena
4. Thread-safety con threading.Lock
5. Metodo stats() che ritorna hit rate e miss rate
Includi test unitari completi."""
)
会話の流れ
3 人のエージェント間の通常の会話は次のとおりです。
- ラウンド 1 ~ 2: コーダーは仕様を受け取り、テストを使用して LRUCache の最初の実装を生成します。
- ラウンド 3 ~ 4: レビュー担当者はコードを分析し、詳細なフィードバックを提供します (例: None キーのエッジ ケースの管理の失敗、ロックが正しく使用されていない)
- ラウンド5~6: コーダーはレビューアーのフィードバックに基づいてコードを修正します。
- ラウンド 7 ~ 8: Executor はテストを実行し、失敗を報告します。
- ラウンド9~10: コーダーは失敗したテストを修正します
- ラウンド11~12: レビュー担当者は最終コードを APPROVED という判定で承認します。
その結果、レビューとテストを複数回繰り返したコードが生成され、 1 回の試行よりも大幅に品質が高くなります。このパターンは反映されています 人間によるコードレビュープロセスですが、それは数時間や数日ではなく数秒で行われます。
本番環境での AutoGen のベスト プラクティス
AutoGen と AG2 の経験に基づいて、重要なベスト プラクティスを以下に示します。 実稼働環境でフレームワークを使用するには:
-
常にラウンド数を制限する: セット
max_round値に 過剰なコストと無限ループを避けるためには、妥当な値 (10 ~ 20) です。あなたは失敗することを好みます 無限に繰り返すのではなく、明確なメッセージを伝えます。 - コードの実行に Docker を使用する: 運用環境では、常にコードを実行します。 分離された Docker コンテナーで生成されます。 LLM で生成されたコードをホスト上で直接実行しないでください。
- 詳細なシステムプロンプト: 役割、制約、出力形式を適切な方法で定義します 明確かつ詳細。曖昧なプロンプトは予測できない動作を引き起こします。
- コストを監視する: 会話の各ラウンドではトークンが消費されます。実装する 予算の上限とアラートにより、ループ シナリオでの過剰な支出を回避します。
- すべての会話を記録する: デバッグのためにチャット履歴全体を保存します。 プロンプトの監査と継続的な改善。
- まずは安価なモデルでテストしてみる: テンプレートを使用したワークフローの開発とテスト より安価な (GPT-3.5) 場合は、実稼働用に GPT-4 に切り替えます。
- グレースフル デグラデーションの実装: エージェントに障害が発生した場合、システムは次のことを行う必要があります。 一般的なエラーではなく、有用な部分的な結果が生成されます。
結論
AutoGen は、マルチエージェント フレームワークのランドスケープにおける独自のアプローチ、つまり会話を表します。 調整メカニズムとして。このパラダイムは、比類のない柔軟性を提供します。 エージェント間の交渉、反復、創造的なコラボレーションが必要なタスク。
AG2 の進化と Microsoft Agent Framework への収束により、エコシステムは 会話の力を組み合わせたエンタープライズ対応ソリューションに向けて成熟しています マネージド クラウド プラットフォームの堅牢性を備えたマルチエージェント。開発者にとっては投資 これらのパターンを理解することは戦略的に重要です。
次の記事では、 マルチエージェント オーケストレーション アーキテクチャ、 標準パターン(シーケンシャル、コンカレント、ハンドオフ、プランファースト)、アーキテクチャの分析 ハブアンドスポークとピアツーピア、およびフォールトトレランスを備えた実稼働対応システムを構築する方法 分散状態管理と可観測性。







