-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_AutoGen
- 戻る(LLMエージェントの該当節を参照)
- OpenAI Agents SDK
- CrewAI
- LangGraph
- AutoGen
エージェント同士の会話を研究・実験する
- 開発元 / 主導:Microsoft Research発(OSS化)
- 難易度:高(研究色が強く、抽象度も高い)
- 強み:研究的自由度・拡張性・分散実行
- 弱み:実用より研究寄り、開発難度高
- Microsoft Research主導の「エージェント同士の会話」を中心に据えたフレームワーク。
- 人間とエージェント、エージェント同士が会話することでタスクを進める:Conversation-driven
- 研究色が強く、プロダクション利用には制御がやや粗い
- コンセプト:複数エージェント間の「会話ベースの協調」を重視。研究寄りの設計思想で、分散実行にも対応。
- 設計思想:研究色が強く、「エージェント間対話」を核にして、動的なタスク分担やツール利用を促進。
- 特徴的な機能:Multi-agent conversation / 分散ランタイム対応 / 高度なタスク分割・協調処理
- ユースケース:研究用途、複雑なマルチエージェントシミュレーション、実験的アプリ
- The Complete Agentic AI Engineering Course (2025)の該当節
- https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/5_autogen
仮想環境に、pipでインストールする。
python3 -m venv .venv
source .venv/bin/activate
deactivate
pip install -U autogenstudio
※ https://microsoft.github.io/autogen/stable/user-guide/autogenstudio-user-guide/installation.html
-
The Complete Agentic AI Engineering Course (2025)の該当節
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/1_lab1_autogen_agentchat_ja.ipynb-
定義して
from autogen_agentchat.agents import AssistantAgent smart_agent = AssistantAgent( name="smart_airline_agent", model_client=model_client, system_message="You are a helpful assistant for an airline. You give short, humorous answers, including the price of a roundtrip ticket.", model_client_stream=True, tools=[get_city_price], # ★ reflect_on_tool_use=True )
※ 別途、get_city_price関数をツールとして開発
-
実行する
response = await smart_agent.on_messages([message], cancellation_token=CancellationToken()) for inner_message in response.inner_messages: print(inner_message.content) response.chat_message.content
-
-
The Complete Agentic AI Engineering Course (2025)の該当節
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/2_lab2_autogen_agentchat_ja.ipynb-
マルチモーダル
-
構造化された出力
-
AutogenのLangchainツールを使用
-
弱い/疑似的なHITLの例
-
チームの相互作用
2エージェントによる順番交代方式の協調対話- 主エージェント(実行役)
- 評価エージェント(レビュー役)
-
-
The Complete Agentic AI Engineering Course (2025)の該当節
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/3_lab3_autogen_core_ja.ipynb- AutoGen Coreのスタンドアロン・ランタイムを使用
- ルーティング専用のエージェント(RoutedAgent)を使用。
- 入力されたタスクやメッセージを解析し、適切なエージェントに 振り分けるのが仕事。
- この、最も簡単なサンプルとして2つのエージェントにじゃんけんさせ、結果を判定する。
-
The Complete Agentic AI Engineering Course (2025)の該当節
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/4_lab4_autogen_distributed_ja.ipynb-
AutoGen Coreの分散ランタイムを使用
-
宣伝・予告目的の“さわり”だけを公開
-
エージェント同士がgRPCで会話する。
-
内容はシンプルに、RoutedAgentを使用したトレードオフ分析
- メリット・デメリットの2つの情報収集エージェントを使用
- メリット・デメリット情報からトレードオフ分析して採用可否の判定
-
The Complete Agentic AI Engineering Course (2025)の該当節
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/5_lab5_autogen_bigEEEpj_ja.ipynb
-
分散ランタイムへ動的に生成したエージェントを登録し動かしている。
-
RoutedAgentとAssistantAgentは1:1で、生成されているのはRoutedAgent
-
RoutedAgentがRoutedAgentに処理を委譲しているが、協調動作と言える所までは行っていない。
-
*.pyファイルの説明
- world.py : エントリ・ポイントと最初の処理
- creator.py : エージェント作成・登録・実行
- agent.py : エージェントの実装テンプレート
- agent_commented.py : 上記にコメントを追加したもの(実働しない)
- messages.py : Messageクラスとfind_recipient関数
Autogenの中心にあるAutogenコアは、主に以下の特徴や役割を持っている。
- LLM 非依存な実行モデル
- イベント駆動/非同期実行
- メッセージ駆動/同期実行
- ライフサイクル管理
- エージェント定義
- 「スタンドアロン」や「(実験的)分散」などのランタイムで、エージェントの実行環境を抽象化。
- ローカルやネットワーク越しの通信、プロセス間通信なども統一的に扱える。
- 単一エージェントだけでなく「多数のエージェント群」を組み合わせた協調シナリオを想定。
- 特徴:実行場所やプロトコルに依存せずエージェントを起動可能。
-
LLMを「エージェント」として抽象化。
-
エージェント間のメッセージ送受信を統一的に扱える。
-
例:
- AssistantAgent:タスク実行型の標準エージェント。
- RoutedAgent:条件に応じて他のエージェントにメッセージを振り分ける。
- @message_handlerデコレータでメッセージ処理関数を登録可能。
- エージェントが受信した特定タイプのメッセージに対して処理を分岐できる。
- 特徴:イベント駆動型で、複雑なタスクフローを簡潔に定義可能。
- async/await を活用してエージェント間通信を非同期に処理。
- 複数エージェントが同時にメッセージを処理してもブロッキングしない。
- 特徴:大規模マルチエージェント環境でも効率的に動作。
- CancellationToken や TerminationCondition といった仕組みで、エージェント間対話を柔軟に停止可能。
- 特徴:無限ループや長時間処理の制御が容易。
- 独自エージェントの追加や、メッセージタイプの定義などが容易。
- 将来的なLLMやツールの統合に柔軟。
エージェント同士が話す(エージェント対話・協調の標準実装)
外部とつながる、現実世界と接続(外部統合・実運用向け拡張群)
- 各種 LLM プロバイダ対応
- Tool / Function / MCP 連携
- コード実行(Python, Shell など)
- ベクタDB、検索、RAG統合
- ロギング・トレーシング
人が触る(GUI・可視化・操作系)
- Web UI によるエージェント設計
- ワークフローの視覚的構築
- エージェント会話の可視化・再実行
周辺パッケージ(研究・品質保証向けの補助機能群)
- エージェントの性能評価
- タスク成功率・協調性能の測定
- 再現可能なベンチマーク実行
- The Complete Agentic AI Engineering Course (2025) - Week5 (The Complete Agentic AI Engineering Course (2025)の該当節を参照)
0.3でMS版とコミュニティ版が分裂。
- 0.4以降は大幅に書き直されたMS版で、AG2がコミュニティ版
- その他に、商用のMicrosoft Agent Frameworkと言うモノもある。
https://microsoft.github.io/autogen/
-
Learnからリンクされている0.2系は凝っている
https://microsoft.github.io/autogen/0.2/docs/topics/llm_configuration/ -
最新バージョン(0.75)のマイグレーション情報を見ると0.2系→0.4系
https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/migration-guide.html
-
AgentOS
https://ag2.ai/ -
ag2ai/ag2: AG2 (formerly AutoGen): The Open-Source AgentOS. Join us at: https://discord.gg/pAbnFJrkgZ
https://github.com/ag2ai/ag2
- AutoGen AgentChat : Tutorial : エージェント – ClassCat® Blog
https://torch.classcat.com/2025/04/22/autogen-agentchat-tutorial-agents/
- LLMマルチエージェントフレームワークAutoGen入門 #Microsoft
https://qiita.com/suikabar/items/32c6215d3c0535aba328 - Microsoft AutoGenのマルチエージェント会話パターン #Python
https://qiita.com/mkuwan/items/3382e3790023b8468bd7 - AutoGenの開発ストリームは2つに分かれている #Python
https://qiita.com/mkuwan/items/bf11aa2403bd6f7bccb9
- LLMマルチエージェントAutoGenに入門 ~基本設計書の作成とレビューをさせてみる
https://zenn.dev/nomhiro/articles/autogen-abstract - AutoGen入門:マルチエージェントで自律型AIライターを構築し、記事作成を自動化する方法
https://zenn.dev/secondselection/articles/ai_articles_generator
移行メモ
- 元 Wiki の「戻る」の並びで AutoGen が HTML 実体参照(
AutoGen)で 書かれていたが、PukiWiki のページ内リンク自動生成を避けるための記法と 思われるため、通常の文字列に戻した。- 「2つのエージェントにジャンケンせさ、」→「じゃんけんさせ、」に修正した。
- 本 Wiki(dotnetdevelopmentinfrastructure.osscons.jp)への URL リンクは、 移行先のファイル名(予約名)に置き換えた。 元 Wiki ではページ内アンカで個別の節を指していたが、 GitHub Wiki では再現できないため「該当節」の参照に置き換えた。
Tags: 移行, AutoGen, Microsoft Research, マルチエージェント, RoutedAgent, AgentChat, AG2, 分散ランタイム
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。