AutoGen
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>LLMエージェント#v6874125]]
--[[OpenAI Agents SDK]]
--[[CrewAI]]
--[[LangGraph]]
--AutoGen
*目次 [#ud8cdd6b]
#contents
*概要 [#e04e988b]
エージェント同士の会話を研究・実験する
-開発元 / 主導:Microsoft Research発(OSS化)
-難易度:高(研究色が強く、抽象度も高い)
-強み:研究的自由度・拡張性・分散実行
-弱み:実用より研究寄り、開発難度高
*詳細 [#vf3a7144]
-Microsoft Research主導の「エージェント同士の会話」を中心...
-人間とエージェント、エージェント同士が会話することでタス...
-研究色が強く、プロダクション利用には制御がやや粗い
**特徴 [#x77683e3]
-コンセプト:複数エージェント間の「会話ベースの協調」を重...
-設計思想:研究色が強く、「エージェント間対話」を核にして...
-特徴的な機能:Multi-agent conversation / 分散ランタイム...
-ユースケース:研究用途、複雑なマルチエージェントシミュレ...
**実装 [#p8da0049]
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
-https://github.com/OpenTouryoProject/DxCommon/tree/maste...
***インストール [#gb3c33d9]
仮想環境に、pipでインストールする。
python3 -m venv .venv
source .venv/bin/activate
deactivate
pip install -U autogenstudio
※ https://microsoft.github.io/autogen/stable/user-guide/a...
***エージェント定義 [#e27923e2]
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--定義して
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 a...
model_client_stream=True,
tools=[get_city_price], # ★
reflect_on_tool_use=True
)
※ 別途、get_city_price関数をツールとして開発
--実行する
response = await smart_agent.on_messages([message], canc...
for inner_message in response.inner_messages:
print(inner_message.content)
response.chat_message.content
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--マルチモーダル
--構造化された出力
--AutogenのLangchainツールを使用
--弱い/疑似的なHITLの例
--チームの相互作用~
2エージェントによる順番交代方式の協調対話
---主エージェント(実行役)
---評価エージェント(レビュー役)
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--AutoGen Coreのスタンドアロン・ランタイムを使用
--ルーティング専用のエージェント(RoutedAgent)を使用。
---入力されたタスクやメッセージを解析し、適切なエージェン...
---この、最も簡単なサンプルとして2つのエージェントにジャ...
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--AutoGen Coreの分散ランタイムを使用
--宣伝・予告目的の“さわり”だけを公開
--エージェント同士がgRPCで会話する。
--内容はシンプルに、RoutedAgentを使用したトレードオフ分析
---メリット・デメリットの2つの情報収集エージェントを使用
---メリット・デメリット情報からトレードオフ分析して採用可...
***ハンズオンのコンセプト [#ueef8729]
https://dotnetdevelopmentinfrastructure.osscons.jp/index....
https://github.com/OpenTouryoProject/DxCommon/blob/master...
-分散ランタイムへ動的に生成したエージェントを登録し動かし...
-RoutedAgentとAssistantAgentは1:1で、生成されているの...
-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) - We...
**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_c...
-最新バージョン(0.75)のマイグレーション情報を見ると0.2...
https://microsoft.github.io/autogen/stable/user-guide/age...
***コミュニティ版 [#nc1987ef]
-AgentOS~
https://ag2.ai/
-ag2ai/ag2: AG2 (formerly AutoGen): The Open-Source Agent...
https://github.com/ag2ai/ag2
**IT技術系 [#d58ae6c7]
-AutoGen AgentChat : Tutorial : エージェント – ClassCat® ...
https://torch.classcat.com/2025/04/22/autogen-agentchat-t...
***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_gen...
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>LLMエージェント#v6874125]]
--[[OpenAI Agents SDK]]
--[[CrewAI]]
--[[LangGraph]]
--AutoGen
*目次 [#ud8cdd6b]
#contents
*概要 [#e04e988b]
エージェント同士の会話を研究・実験する
-開発元 / 主導:Microsoft Research発(OSS化)
-難易度:高(研究色が強く、抽象度も高い)
-強み:研究的自由度・拡張性・分散実行
-弱み:実用より研究寄り、開発難度高
*詳細 [#vf3a7144]
-Microsoft Research主導の「エージェント同士の会話」を中心...
-人間とエージェント、エージェント同士が会話することでタス...
-研究色が強く、プロダクション利用には制御がやや粗い
**特徴 [#x77683e3]
-コンセプト:複数エージェント間の「会話ベースの協調」を重...
-設計思想:研究色が強く、「エージェント間対話」を核にして...
-特徴的な機能:Multi-agent conversation / 分散ランタイム...
-ユースケース:研究用途、複雑なマルチエージェントシミュレ...
**実装 [#p8da0049]
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
-https://github.com/OpenTouryoProject/DxCommon/tree/maste...
***インストール [#gb3c33d9]
仮想環境に、pipでインストールする。
python3 -m venv .venv
source .venv/bin/activate
deactivate
pip install -U autogenstudio
※ https://microsoft.github.io/autogen/stable/user-guide/a...
***エージェント定義 [#e27923e2]
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--定義して
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 a...
model_client_stream=True,
tools=[get_city_price], # ★
reflect_on_tool_use=True
)
※ 別途、get_city_price関数をツールとして開発
--実行する
response = await smart_agent.on_messages([message], canc...
for inner_message in response.inner_messages:
print(inner_message.content)
response.chat_message.content
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--マルチモーダル
--構造化された出力
--AutogenのLangchainツールを使用
--弱い/疑似的なHITLの例
--チームの相互作用~
2エージェントによる順番交代方式の協調対話
---主エージェント(実行役)
---評価エージェント(レビュー役)
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--AutoGen Coreのスタンドアロン・ランタイムを使用
--ルーティング専用のエージェント(RoutedAgent)を使用。
---入力されたタスクやメッセージを解析し、適切なエージェン...
---この、最も簡単なサンプルとして2つのエージェントにジャ...
-https://dotnetdevelopmentinfrastructure.osscons.jp/index...
https://github.com/OpenTouryoProject/DxCommon/blob/master...
--AutoGen Coreの分散ランタイムを使用
--宣伝・予告目的の“さわり”だけを公開
--エージェント同士がgRPCで会話する。
--内容はシンプルに、RoutedAgentを使用したトレードオフ分析
---メリット・デメリットの2つの情報収集エージェントを使用
---メリット・デメリット情報からトレードオフ分析して採用可...
***ハンズオンのコンセプト [#ueef8729]
https://dotnetdevelopmentinfrastructure.osscons.jp/index....
https://github.com/OpenTouryoProject/DxCommon/blob/master...
-分散ランタイムへ動的に生成したエージェントを登録し動かし...
-RoutedAgentとAssistantAgentは1:1で、生成されているの...
-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) - We...
**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_c...
-最新バージョン(0.75)のマイグレーション情報を見ると0.2...
https://microsoft.github.io/autogen/stable/user-guide/age...
***コミュニティ版 [#nc1987ef]
-AgentOS~
https://ag2.ai/
-ag2ai/ag2: AG2 (formerly AutoGen): The Open-Source Agent...
https://github.com/ag2ai/ag2
**IT技術系 [#d58ae6c7]
-AutoGen AgentChat : Tutorial : エージェント – ClassCat® ...
https://torch.classcat.com/2025/04/22/autogen-agentchat-t...
***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_gen...
ページ名: