AutoGenにおけるツール体系:FunctionToolとMCP Workbenchの構造的理解
概要
AutoGenでは、エージェントが複雑な処理を行う際に 「ツール」 を用いて外部機能と連携する。ツールは大別して以下の2種に分類される:
- FunctionToolベースのツール:Python関数ベースで実装される汎用ユーティリティ。
- MCP(Model Context Protocol)Workbenchツール:外部プロセスとして動作し、ローカルまたはリモートのMCPサーバー経由で呼び出される。
この2系統は、AutoGenのタスク駆動型エージェント構成の根幹を成す重要な部品群である。
1. FunctionToolベースのツール(単体実行)
これらのツールは、AssistantAgentにバインドして直接呼び出される。軽量かつ関数的な処理に適している。
| ツール名 | 実行形態 | 説明 |
|---|---|---|
graphrag | FunctionTool | GraphRAGインデックスを活用して、ドキュメント検索やRAG処理を行う。 |
http | FunctionTool | HTTPリクエスト(GET, POST等)を行うツール。API呼び出し等に活用。 |
langchain | FunctionTool | LangChainのAgentやToolをAutoGenから呼び出すためのアダプター。 |
2. MCP Workbenchツール(外部プロセス/エージェントツール)
外部MCP(Model Context Protocol)サーバー上で動作するプロセスツール。MCPと は、複数のAIエージェントやツールがチャットベースで協調動作するための通信プロトコル/仕様のことであり、AutoGenエージェントはこれらを呼び出すことで、より複雑なシステム操作やファイル解析、LLMプロキシ連携などが可能となる。
| MCPサーバー名 | 主な用途 | 機能概要 |
|---|---|---|
mcp-server-fetch | Webページ取得 | 指定URLのHTML取得、簡易クロール対応 |
mcp-server-browser | JavaScript付きページ取得 | SPAやJSによる動的ページに対応 |
mcp-server-shell | シェルコマンド実行 | Linuxコマンド実行、ファイル操作、環境変数確認 |
mcp-server-python | Pythonスクリプト実行 | 任意のPythonコードを実行可能(データ処理・数値計算など) |
mcp-server-pdf | PDF解析 | PDF文書からのテキスト抽出、構造解析 |
mcp-server-codegen | コード生成支援 | 関数分解、リファクタ提案などのコード分析機能 |
mcp-server-file | ファイル入出力 | ファイル読み書き、ローカルファイルシステムアクセス |
mcp-server-llm | 他LLMプロキシ経由実行 | LLaMAやClaude等のモデルに対するプロキシ経由アクセス |
代表的な使用例
| ユースケース | 使用ツール候補 |
|---|---|
| 顧客PDF仕様書の読み取り | mcp-server-pdf |
| 過去の設定ファイルやコードの解析 | mcp-server-codegen, mcp-server-file |
| SQLiteなどで製品DBにアクセス | mcp-server-shell 経由でCLI操作 |
| Web上の仕様情報を取得 | mcp-server-fetch, mcp-server-browser |
| 社内スクリプトの簡易実行 | mcp-server-python |
3. エージェントツールとしての統合性
AutoGenでは、FunctionToolとMCPツールの両方をエージェントに統合することができる。以下のようなユースケースが典型的である。
- LLMベースのAssistantAgentがFunctionTool(例:
http,graphrag)を呼び出してデータを取得 - ユーザー操作代行のUserProxyAgentがMCPサーバーへ接続して外部処理を担当
4. ビルトインツールと拡張性
AutoGen Extension (autogen_ext.tools) は以下のような組み込みツール群を提供しており、任意のPython関数やShellプロセスをツールとしてラップすることも可能である。
pythonCopyEditfrom autogen_ext.tools import graphrag, http, langchain, mcp
これにより、システム設計者は用途に応じてツール選択とエージェント構成を柔軟に設計できる。
結論
AutoGenのツール群は、「軽量なFunctionTool」から「MCPベースの重量級外部プロセス」まで幅広いユースケースをカバーする構造で設計されている。この柔軟性により、LLMベースの自律型マルチエージェントシステムにおいて、情報取得、文書解析、コード生成などの実用的な業務フローを現実的に統合可能となる。


コメント