「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>LLMエージェント#v6874125]]
--[[OpenAI Agents SDK]]
--[[CrewAI]]
--[[LangGraph]]
--AutoGen

*目次 [#ud8cdd6b]
#contents

*概要 [#e04e988b]
エージェント同士の会話を研究・実験する

-開発元 / 主導:Microsoft Research発(OSS化)
-難易度:高(研究色が強く、抽象度も高い)
-強み:研究的自由度・拡張性・分散実行
-弱み:実用より研究寄り、開発難度高

*詳細 [#vf3a7144]
-Microsoft Research主導の「エージェント同士の会話」を中心に据えたフレームワーク。
-人間とエージェント、エージェント同士が会話することでタスクを進める:Conversation-driven
-研究色が強く、プロダクション利用には制御がやや粗い

**特徴 [#x77683e3]
-コンセプト:複数エージェント間の「会話ベースの協調」を重視。研究寄りの設計思想で、分散実行にも対応。
-設計思想:研究色が強く、「エージェント間対話」を核にして、動的なタスク分担やツール利用を促進。
-特徴的な機能:Multi-agent conversation / 分散ランタイム対応 / 高度なタスク分割・協調処理
-ユースケース:研究用途、複雑なマルチエージェントシミュレーション、実験的アプリ

**実装 [#p8da0049]
-https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?The%20Complete%20Agentic%20AI%20Engineering%20Course%20%282025%29#i48413af
-https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/5_autogen

***インストール [#gb3c33d9]
仮想環境に、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

***エージェント定義 [#e27923e2]
-https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?The%20Complete%20Agentic%20AI%20Engineering%20Course%20%282025%29#t7ce4ee5~
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/1_lab1_autogen_agentchat_ja.ipynb

-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

-https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/2_lab2_autogen_agentchat_ja.ipynb
-https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?The%20Complete%20Agentic%20AI%20Engineering%20Course%20%282025%29#ec214a8a~
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/2_lab2_autogen_agentchat_ja.ipynb

--マルチモーダル
--構造化された出力
--AutogenのLangchainツールを使用
--弱い/疑似的なHITLの例

--チームの相互作用~
2エージェントによる順番交代方式の協調対話
---主エージェント(実行役)
---評価エージェント(レビュー役)

-https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/3_lab3_autogen_core_ja.ipynb
-https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?The%20Complete%20Agentic%20AI%20Engineering%20Course%20%282025%29#s0f5746c~
https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/3_lab3_autogen_core_ja.ipynb

--AutoGen Coreのスタンドアロン・ランタイムを使用
--ルーティング専用のエージェント(RoutedAgent)を使用。
---入力されたタスクやメッセージを解析し、適切なエージェントに 振り分けるのが仕事。
---この、最も簡単なサンプルとして2つのエージェントにジャンケンせさ、結果を判定する。

-https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/4_lab4_autogen_distributed_ja.ipynb
-https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?The%20Complete%20Agentic%20AI%20Engineering%20Course%20%282025%29#ucfd48c6~
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つの情報収集エージェントを使用
---メリット・デメリット情報からトレードオフ分析して採用可否の判定

***ハンズオンのコンセプト [#ueef8729]
https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?The%20Complete%20Agentic%20AI%20Engineering%20Course%20%282025%29#b0ee9256~
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関数

*機能 [#ee191833]

**Autogen Core [#ne16b333]
Autogenの中心にあるAutogenコアは、主に以下の特徴や役割を持っている。

-LLM 非依存な実行モデル
-イベント駆動/非同期実行
-メッセージ駆動/同期実行
-ライフサイクル管理
-エージェント定義

***ランタイム抽象 [#o925f20c]
-「スタンドアロン」や「(実験的)分散」などのランタイムで、エージェントの実行環境を抽象化。
-ローカルやネットワーク越しの通信、プロセス間通信なども統一的に扱える。
-単一エージェントだけでなく「多数のエージェント群」を組み合わせた協調シナリオを想定。
-特徴:実行場所やプロトコルに依存せずエージェントを起動可能。

***エージェント抽象化 [#e24a1ace]
-LLMを「エージェント」として抽象化。
-エージェント間のメッセージ送受信を統一的に扱える。

-例:
--AssistantAgent:タスク実行型の標準エージェント。
--RoutedAgent:条件に応じて他のエージェントにメッセージを振り分ける。

***メッセージ・ハンドリング [#y6bfaa57]
-@message_handlerデコレータでメッセージ処理関数を登録可能。
-エージェントが受信した特定タイプのメッセージに対して処理を分岐できる。
-特徴:イベント駆動型で、複雑なタスクフローを簡潔に定義可能。

***非同期・並列処理 [#nd946ec4]
-async/await を活用してエージェント間通信を非同期に処理。
-複数エージェントが同時にメッセージを処理してもブロッキングしない。
-特徴:大規模マルチエージェント環境でも効率的に動作。

***終了条件やキャンセルのサポート [#d3731d89]
-CancellationToken や TerminationCondition といった仕組みで、エージェント間対話を柔軟に停止可能。
-特徴:無限ループや長時間処理の制御が容易。

***拡張性 [#neaf5e1e]
-独自エージェントの追加や、メッセージタイプの定義などが容易。
-将来的なLLMやツールの統合に柔軟。

**AutoGen AgentChat [#j394a0ae]
エージェント同士が話す(エージェント対話・協調の標準実装)

**AutoGen Extensions [#tbec118c]
外部とつながる、現実世界と接続(外部統合・実運用向け拡張群)

-各種 LLM プロバイダ対応
-Tool / Function / MCP 連携
-コード実行(Python, Shell など)
-ベクタDB、検索、RAG統合
-ロギング・トレーシング

**AutoGen Studio [#yb9d7fdf]
人が触る(GUI・可視化・操作系)

-Web UI によるエージェント設計
-ワークフローの視覚的構築
-エージェント会話の可視化・再実行

**AutoGen Bench / Evaluation [#uea0dfc1]
周辺パッケージ(研究・品質保証向けの補助機能群)

-エージェントの性能評価
-タスク成功率・協調性能の測定
-再現可能なベンチマーク実行

*参考 [#mc5d3560]
-[[The Complete Agentic AI Engineering Course (2025) - Week5>The Complete Agentic AI Engineering Course (2025)#i48413af]]

**2つの系統 [#q030a73e]
0.3でMS版とコミュニティ版が分裂。

-0.4以降は大幅に書き直されたMS版で、AG2がコミュニティ版
-その他に、商用のMicrosoft Agent Frameworkと言うモノもある。

***MS公式 [#k40a6c11]
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

***コミュニティ版 [#nc1987ef]
-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

**IT技術系 [#d58ae6c7]

-AutoGen AgentChat : Tutorial : エージェント – ClassCat® Blog~
https://torch.classcat.com/2025/04/22/autogen-agentchat-tutorial-agents/

***Qiita [#ib3d5a21]
-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

***Zenn [#r91d74c3]
-LLMマルチエージェントAutoGenに入門 ~基本設計書の作成とレビューをさせてみる~
https://zenn.dev/nomhiro/articles/autogen-abstract
-AutoGen入門:マルチエージェントで自律型AIライターを構築し、記事作成を自動化する方法~
https://zenn.dev/secondselection/articles/ai_articles_generator

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS