universal-tool-calling-protocol/python-utcp
Official python implementation of UTCP. UTCP is an open standard that lets AI agents call any API directly, without extra middleware.
何を解決するか
UTCPは、HTTP、SSE、CLI、MCPなどの異なる通信プロトコル間でツールを定義・操作するための標準化、安全かつスケーラブルな方法を提供します。新しいツールやサービスごとにカスタム統合コードを書く必要がなくなり、AIエージェントやアプリケーションが単一の統一インターフェースを使って、幅広い外部API、CLIツール、その他のプロトコルとやり取りできるようになります。
仕組み
UTCPは、コアライブラリとプラグイン形式のプロトコルプラグインからなるモジュールアーキテクチャを使用しています。コアライブラリはツールの検出、操作、検索といった高レベルなロジックを処理し、プラグインは各プロトコルに特化した通信の詳細を実装します。
- コアパッケージ: Pydanticを使用したデータモデル、ツール操作用の
UtcpClient、およびプラグインシステムを管理します。 - プロトコルプラグイン: HTTP/REST、SSE、CLI、MCP(Model Context Protocol)、ローカルテキストファイルなどの特定の通信方法を実装します。
- コールテンプレート: ツールのアクセス方法(例:URL、HTTPメソッド、CLIコマンド)と認証方法を指定する「コールテンプレート」を使用してツールを定義します。
- UtcpManual: 利用可能なツール、その入力・出力の詳細を記述するディスカバリードキュメントで、クライアントがツールを動的に検出できるようにします。
対象ユーザー
AIエージェント、LLM駆動アプリケーション、および多様な通信プロトコル間で複数の外部ツールやサービスをスケーラブルに統合する必要があるシステムを開発する開発者。
特徴
- マルチプロトコル対応: HTTP、SSE、CLI、MCPを標準対応。TCP/UDP、GraphQLの対応も計画中。
- プラグインアーキテクチャ: コアライブラリを変更せずに、新しい通信プロトコル、ツールストレージ、検索戦略を簡単に追加可能。
- 対称的ディスカバリ:
UtcpManualを通じてツールを提供することで、UtcpClientが自動的にツールを検出可能。 - デフォルトで安全: 危険なプロトコルエスカレーション(例:HTTPベースのマニュアルがCLIツールを呼び出せない)を防ぐためのプロトコル制限を内蔵。
- 柔軟な認証: APIキー、Basic Auth、OAuth2など、さまざまな認証方法をサポート。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト