Skip to content

DNET_AutoGen

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

AutoGen

概要

エージェント同士の会話を研究・実験する

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

詳細

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

特徴

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

実装

インストール

仮想環境に、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/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 Core

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

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

ランタイム抽象

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

エージェント抽象化

  • LLMを「エージェント」として抽象化。

  • エージェント間のメッセージ送受信を統一的に扱える。

  • 例:

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

メッセージ・ハンドリング

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

非同期・並列処理

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

終了条件やキャンセルのサポート

  • CancellationToken や TerminationCondition といった仕組みで、エージェント間対話を柔軟に停止可能。
  • 特徴:無限ループや長時間処理の制御が容易。

拡張性

  • 独自エージェントの追加や、メッセージタイプの定義などが容易。
  • 将来的なLLMやツールの統合に柔軟。

AutoGen AgentChat

エージェント同士が話す(エージェント対話・協調の標準実装)

AutoGen Extensions

外部とつながる、現実世界と接続(外部統合・実運用向け拡張群)

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

AutoGen Studio

人が触る(GUI・可視化・操作系)

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

AutoGen Bench / Evaluation

周辺パッケージ(研究・品質保証向けの補助機能群)

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

参考

2つの系統

0.3でMS版とコミュニティ版が分裂。

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

MS公式

https://microsoft.github.io/autogen/

コミュニティ版

IT技術系

Qiita

Zenn

移行メモ

  • 元 Wiki の「戻る」の並びで AutoGen が HTML 実体参照(AutoGen)で 書かれていたが、PukiWiki のページ内リンク自動生成を避けるための記法と 思われるため、通常の文字列に戻した。
  • 「2つのエージェントにジャンケンせさ、」→「じゃんけんさせ、」に修正した。
  • 本 Wiki(dotnetdevelopmentinfrastructure.osscons.jp)への URL リンクは、 移行先のファイル名(予約名)に置き換えた。 元 Wiki ではページ内アンカで個別の節を指していたが、 GitHub Wiki では再現できないため「該当節」の参照に置き換えた。

Tags: 移行, AutoGen, Microsoft Research, マルチエージェント, RoutedAgent, AgentChat, AG2, 分散ランタイム

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally