tinyagents について
tinyagents は、LLM と MCP ツールで動作するエージェントを構築するための、ミニマルな Python プロジェクトです。2 種類のエージェント実装を含み、エージェントワークフローの軽量な基盤を求める開発者を対象としています。リポジトリには天気 MCP サーバーの例も含まれています。
主な機能
- 01TinyToolCallingAgent によるツール呼び出しでのタスク処理
- 02TinyCodeAgent による Python コードの生成
- 03stdio 経由での Python および JavaScript MCP サーバーへの接続
- 04実行時のサーバーツールの動的な検出
- 05天気 MCP サーバーの例を収録
活用シーン
- 01MCP クライアントとエージェントの基本的な実装の学習
- 02小規模なコードベースによる LLM エージェントワークフローのプロトタイプ作成
- 03同梱の天気サーバーを用いたツール呼び出しの検証
MCP 対応
本プロジェクトは MCP クライアントであり、stdio 経由で Python または JavaScript の MCP サーバーに接続してツールを検出し、会話中にエージェントがそれらを呼び出せるようにします。
詳細
tinyagents
TinyAgents: LLM + MCP ツール
TinyAgents は LLM と Model Context Protocol (MCP) ツールで動作するエージェントの最小限の実装です。
このプロジェクトは MCP Client Quickstart に着想を得ており、LLM ベースのエージェント ワークフローを構築するための軽量な基盤を提供します。
エージェント実装
リポジトリには 2 つの異なるエージェント実装が含まれています。
TinyToolCallingAgent
TinyToolCallingAgent は外部ツールを呼び出すことでタスクを解決できる汎用エージェントです。以下の機能があります。
- Python または JavaScript MCP サーバーに接続
- Qwen2.5-Coder-32B-Instruct モデルを使用してユーザークエリを処理
- MCP サーバーが提供するツールを動的に検出して呼び出し
- ツール呼び出し結果を処理して会話を継続
- ユーザーインタラクション用のインタラクティブなチャットループを提供
使用方法:
python tinytoolcallingagent.py <path_to_server_script>
TinyCodeAgent
TinyCodeAgent は Python コードを使用してタスクを解決するように設計されています。MCP サーバーに接続してツールにアクセスでき、以下のことができます。
- Python または JavaScript MCP サーバーに接続
- Qwen2.5-Coder-32B-Instruct モデルを使用してユーザークエリを処理
- Python コードソリューションを生成
- Python コードを実行して結果を表示 (TODO)
- ユーザーインタラクション用のインタラクティブなチャットループを提供
使用方法:
python tinycodeagent.py <path_to_server_script>
共通機能
両方のエージェントは以下の機能を共有します。
- Python の asyncio を使用した非同期操作
- stdio 経由の MCP サーバーへの接続
- インタラクティブなチャットインターフェース
- 動的なツール検出
- Hugging Face の InferenceClient との統合
含まれる例: Weather Server
リポジトリは servers/weather ディレクトリに MCP サーバー実装の例を含んでいます。このサーバーは National Weather Service API から天気データにアクセスするためのツールを提供します。
get_alerts: 指定された米国の州の天気アラートを取得get_forecast: 緯度と経度に基づいて位置の詳細な天気予報を取得
エージェントの 1 つで weather server を使用するには:
# With TinyToolCallingAgent
python tinytoolcallingagent.py servers/weather/weather.py
# With TinyCodeAgent
python tinycodeagent.py servers/weather/weather.py
今後の改善
Python コード実行
TinyCodeAgent には基本的な Python コード実行機能を含める必要があります。以下の機能があります。
- LLM の応答から Python コードブロックを自動的に抽出
- 制御された環境でコードを実行
- 標準出力とエラーストリームをキャプチャして表示
- 実行ステータス (成功または失敗) を報告
この機能により、ユーザーはエージェントが提供するコードソリューションの結果を即座に確認でき、プログラミングタスクに対してより対話的で有用なものになります。
要件
- Python 3.10+
- mcp >= 1.9.0
- huggingface-hub >= 0.31.2
- httpx (weather server の例用)
はじめに
- 必要な依存関係をインストール
- MCP サーバーを設定 (含まれている weather server を使用するか、独自に作成)
- サーバースクリプトを指定してエージェント実装の 1 つを実行
weather server のクエリ例:
- "New York と California の現在の天気アラートは何ですか?"
- "緯度 37.7749、経度 -122.4194 の天気予報は?"
注: MCP サーバー はテストと開発目的でのみ使用することを目的としています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。