mcpField
A
autogen

autogen

github.com/magnus919エージェントワークフロー15359 回インストール今日更新
リポジトリ

autogen について

Python向けAutoGen AgentChat 0.7.5 APIを扱い、エージェント間の会話を軸にしたオーケストレーションを解説するスキルです。連携するエージェント、ヒューマンインザループのワークフロー、コード実行に向いています。

主な機能

  1. 01エージェント間の会話によるオーケストレーション
  2. 02グループチャットと発話者ルーティング
  3. 03サブタスクを委任するネストチャット
  4. 04人間の入力とコード実行の分離
  5. 05ツール連携とタスクのキャンセル

活用シーン

  1. 01マルチエージェントのグループチャット構築
  2. 02複雑なタスクの専門エージェントへの委任
  3. 03Dockerによる生成コードの実行
  4. 04AgentChatへのMCPツールの接続

MCP 対応

McpWorkbenchを介してMCPツールをAutoGenに統合する方法を解説します。関連する参考資料と例が含まれています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/magnus919/agent-skills --skill autogen

インストール後、Claude Code で/autogenを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
requirements.txt
evals/
evals.json
references/
agent-types.md
code-execution.md
conversation-patterns.md
faq-and-troubleshooting.md
group-chat.md
tool-integration.md
v04-migration.md
validation-audit.md
scripts/
check-setup.py
test_templates.py
templates/
code-execution.py
group-chat.py
two-agent-chat.py

詳細

AutoGen エキスパートスキル

このスキルは、Python 3.10 以降の AutoGen AgentChat 0.7.5 API を対象としています。AutoGen(Microsoft Research による)は、会話型マルチエージェント AI のフレームワークです。明示的なグラフトポロジーを使う LangGraph や、役割ベースのクルーを使う CrewAI とは異なり、AutoGen ではエージェント間の会話がオーケストレーションの基本要素です。エージェントは構造化されたチャットを通じて通信し、グループチャットのルーティング、人間からの入力、コード実行に対応するパターンが組み込まれています。

中核となるパラダイム

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient

model_client = OpenAIChatCompletionClient(model="gpt-4o-mini")

assistant = AssistantAgent(
    name="assistant",
    system_message="You are a helpful assistant.",
    model_client=model_client,
)

AgentChat 0.7.5 における役割分担: UserProxyAgent は人間を表し、input_func を通じて応答を取得します。CodeExecutorAgent は CodeExecutor を使ってコードブロックを実行します。これらは別々のエージェントであり、どちらも従来の human_input_mode オプションを受け付けません。

中核となる原則

  1. 会話がオーケストレーションの基本要素です。 エージェントはメッセージを送り、返信を受け取り、会話の構造によってワークフローが決まります。
  2. 人間からの入力とコード実行は分けてください。 人間の参加者には UserProxyAgent を、コードには CodeExecutor と組み合わせた CodeExecutorAgent を使います。
  3. GroupChat がエージェント間のルーティングを行います。 RoundRobinGroupChat は固定順序で交代し、SelectorGroupChat は LLM を使って次の発言者を選びます。
  4. ネストされたチャットで作業を委任します。 エージェントは専門エージェント間のサブ会話を開始し、その結果を返せます。
  5. 安全にコードを実行するには Docker を使います。 ローカルでのコード実行(LocalCommandLineCodeExecutor)では、LLM が生成したコードがマシン上で実行されます。本番環境では Docker を使ってください。
  6. キャンセルトークンでエージェントの暴走を止められます。 長時間実行されるタスクには、必ず CancellationToken を渡してください。

はじめに

すでにあるもの...まずはこちら
何もない — AutoGen を試しているアシスタントチャットを作成するか、人間の UserProxyAgent を含むチームを作成する
連携が必要なエージェント複数のエージェントで GroupChat を構築する
コード実行が必要なエージェントDocker コード実行ツールを設定する
複雑なマルチステップタスクサブタスクにネストされたチャットを使う

クイックリファレンス

タスク方法リファレンス
Human-in-the-loop チャットAssistantAgent + UserProxyAgentreferences/agent-types.md
マルチエージェントグループRoundRobinGroupChat を使った GroupChatreferences/group-chat.md
コード実行DockerCommandLineCodeExecutorreferences/code-execution.md
ツール連携register_function() または @toolreferences/tool-integration.md
ネストされたチャットAgentTool またはツールから実行するチームreferences/conversation-patterns.md
キャンセルCancellationTokenreferences/conversation-patterns.md
MCP ツールMcpWorkbenchreferences/tool-integration.md

フレームワーク選択ガイド

シナリオ選択するもの理由
会話主導のマルチエージェントAutoGenエージェント間のネイティブなチャットをオーケストレーションに使う
役割ベースのマルチエージェントチームCrewAIRole/Goal/Backstory がネイティブな抽象化である
ステートマシン型マルチエージェントLangGraphグラフトポロジー、サブグラフ、human-in-the-loop に対応する
チェーン/エージェントの構成LangChain汎用チェーン向けの LCEL パイプ演算子を使う

参考ファイル

参考資料読み込むタイミングファイル
エージェントの種類AssistantAgent、UserProxyAgentreferences/agent-types.md
会話パターン送受信、ネストされたチャット、キャンセルreferences/conversation-patterns.md
グループチャットRoundRobin、Selector、MagenticOnereferences/group-chat.md
コード実行Docker、ローカル、キャンセルトークンreferences/code-execution.md
ツール連携register_function、@tool、MCP 連携references/tool-integration.md
v0.4 への移行v0.2->v0.4 への移行、AgentTool、ストリーミング、終了references/v04-migration.md
検証監査すべての API に関する主張の調査と検証references/validation-audit.md
FAQ とトラブルシューティングよくあるエラーと解決方法references/faq-and-troubleshooting.md

このスキルのディレクトリから python -m pip install -r requirements.txt を実行し、テンプレートで使用されている正確なパッケージバージョンをインストールしてください。コード実行の例では Docker を使用しており、Docker デーモンが正常に動作している必要があります。

テンプレート

テンプレート使用する場面ファイル
2 エージェントのチャットアシスタントと人間による入力templates/two-agent-chat.py
グループチャット発話者のルーティングを行うマルチエージェントチームtemplates/group-chat.py
コード実行エージェントアシスタントと Docker を利用するコード実行器templates/code-execution.py

トラブルシューティング

症状考えられる原因対処方法参考資料
エージェントが無限にループするチームの終了条件がないMaxMessageTermination などの TerminationCondition を追加するreferences/conversation-patterns.md
コードの実行に失敗するDocker が起動していないDocker を起動するか、LocalCommandLineCodeExecutor を使用するreferences/code-execution.md
ネストされたチャットが返ってこないキャンセルトークンが渡されていないタイムアウトを設定して CancellationToken を渡すreferences/conversation-patterns.md
v0.2 のコードが動作しないv0.4 で API が変更された移行ガイドに従うreferences/faq-and-troubleshooting.md
GroupChat の発話者選択がループする次の発話者が明確でない SelectorGroupChat を使用している順序が固定されている場合は RoundRobinGroupChat を使用するreferences/group-chat.md
UserProxyAgent が入力を待ち続ける人間の参加者であり、input_func が入力を待っている適切な入力関数を渡すか、自動化されたエージェントを使用するreferences/agent-types.md

AutoGen を使用しないほうがよい場合

  • 単純な単一エージェントのタスク — 過剰な構成になるため、直接 API 呼び出しを使用してください
  • グラフを細かく制御する必要がある — LangGraph を使用してください
  • 固定されたプロセスを持つロールベースのチームが必要 — CrewAI を使用してください
  • チェーンの合成が必要 — LangChain LCEL を使用してください

コメント