「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 開発元 / 主導:Microsoft Research発(OSS化)
- 難易度:高(研究色が強く、抽象度も高い)
- 強み:研究的自由度・拡張性・分散実行
- 弱み:実用より研究寄り、開発難度高
詳細 †
特徴 †
- コンセプト:複数エージェント間の「会話ベースの協調」を重視。研究寄りの設計思想で、分散実行にも対応。
- 設計思想:研究色が強く、「エージェント間対話」を核にして、動的なタスク分担やツール利用を促進。
- 特徴的な機能:Multi-agent conversation / 分散ランタイム対応 / 高度なタスク分割・協調処理
- ユースケース:研究用途、複雑なマルチエージェントシミュレーション、実験的アプリ
実装 †
インストール †
エージェント定義 †
ハンズオンのコンセプト †
機能 †
Autogen Core †
Autogenの中心にあるAutogenコアは、主に以下の特徴や役割を持っている。
エージェント抽象化 †
- LLMを「エージェント」として抽象化。
- エージェント間のメッセージ送受信を統一的に扱える。
- 例:
- AssistantAgent?:タスク実行型の標準エージェント。
- RoutedAgent?:条件に応じて他のエージェントにメッセージを振り分ける。
メッセージ・ハンドリング †
- @message_handlerデコレータでメッセージ処理関数を登録可能。
- エージェントが受信した特定タイプのメッセージに対して処理を分岐できる。
- 特徴:イベント駆動型で、複雑なタスクフローを簡潔に定義可能。
非同期・並列処理 †
- async/await を活用してエージェント間通信を非同期に処理。
- 複数エージェントが同時にメッセージを処理してもブロッキングしない。
- 特徴:大規模マルチエージェント環境でも効率的に動作。
ランタイム抽象 †
- 「スタンドアロン」や「(実験的)分散」などのランタイムで、エージェントの実行環境を抽象化。
- ローカルやネットワーク越しの通信、プロセス間通信なども統一的に扱える。
- 単一エージェントだけでなく「多数のエージェント群」を組み合わせた協調シナリオを想定。
- 特徴:実行場所やプロトコルに依存せずエージェントを起動可能。
終了条件やキャンセルのサポート †
- CancellationToken? や TerminationCondition? といった仕組みで、エージェント間対話を柔軟に停止可能。
- 特徴:無限ループや長時間処理の制御が容易。
拡張性 †
- 独自エージェントの追加や、メッセージタイプの定義などが容易。
- 将来的なLLMやツールの統合に柔軟。
参考 †