「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
エージェント同士の会話を研究・実験する
- 開発元 / 主導:Microsoft Research発(OSS化)
- 難易度:高(研究色が強く、抽象度も高い)
- 強み:研究的自由度・拡張性・分散実行
- 弱み:実用より研究寄り、開発難度高
詳細 †
- Microsoft Research主導の「エージェント同士の会話」を中心に据えたフレームワーク。
- 人間とエージェント、エージェント同士が会話することでタスクを進める:Conversation-driven
- 研究色が強く、プロダクション利用には制御がやや粗い
特徴 †
- コンセプト:複数エージェント間の「会話ベースの協調」を重視。研究寄りの設計思想で、分散実行にも対応。
- 設計思想:研究色が強く、「エージェント間対話」を核にして、動的なタスク分担やツール利用を促進。
- 特徴的な機能:Multi-agent conversation / 分散ランタイム対応 / 高度なタスク分割・協調処理
- ユースケース:研究用途、複雑なマルチエージェントシミュレーション、実験的アプリ
実装 †
インストール †
エージェント定義 †
ハンズオンのコンセプト †
機能 †
Autogen Core †
Autogenの中心にあるAutogenコアは、主に以下の特徴や役割を持っている。
- LLM 非依存な実行モデル
- イベント駆動/非同期実行
- メッセージ駆動/同期実行
- ライフサイクル管理
- エージェント定義
ランタイム抽象 †
- 「スタンドアロン」や「(実験的)分散」などのランタイムで、エージェントの実行環境を抽象化。
- ローカルやネットワーク越しの通信、プロセス間通信なども統一的に扱える。
- 単一エージェントだけでなく「多数のエージェント群」を組み合わせた協調シナリオを想定。
- 特徴:実行場所やプロトコルに依存せずエージェントを起動可能。
エージェント抽象化 †
- LLMを「エージェント」として抽象化。
- エージェント間のメッセージ送受信を統一的に扱える。
- 例:
- AssistantAgent?:タスク実行型の標準エージェント。
- RoutedAgent?:条件に応じて他のエージェントにメッセージを振り分ける。
メッセージ・ハンドリング †
- @message_handlerデコレータでメッセージ処理関数を登録可能。
- エージェントが受信した特定タイプのメッセージに対して処理を分岐できる。
- 特徴:イベント駆動型で、複雑なタスクフローを簡潔に定義可能。
非同期・並列処理 †
- async/await を活用してエージェント間通信を非同期に処理。
- 複数エージェントが同時にメッセージを処理してもブロッキングしない。
- 特徴:大規模マルチエージェント環境でも効率的に動作。
終了条件やキャンセルのサポート †
- CancellationToken? や TerminationCondition? といった仕組みで、エージェント間対話を柔軟に停止可能。
- 特徴:無限ループや長時間処理の制御が容易。
拡張性 †
- 独自エージェントの追加や、メッセージタイプの定義などが容易。
- 将来的なLLMやツールの統合に柔軟。
エージェント同士が話す(エージェント対話・協調の標準実装)
外部とつながる、現実世界と接続(外部統合・実運用向け拡張群)
- 各種 LLM プロバイダ対応
- Tool / Function / MCP 連携
- コード実行(Python, Shell など)
- ベクタDB、検索、RAG統合
- ロギング・トレーシング
人が触る(GUI・可視化・操作系)
- Web UI によるエージェント設計
- ワークフローの視覚的構築
- エージェント会話の可視化・再実行
AutoGen Bench / Evaluation †
周辺パッケージ(研究・品質保証向けの補助機能群)
- エージェントの性能評価
- タスク成功率・協調性能の測定
- 再現可能なベンチマーク実行
参考 †
公式サイト †
https://microsoft.github.io/autogen/
IT技術系 †