概要
Shannonのツール実行システムは、AIエージェントに外部機能を統合するための安全で拡張可能なフレームワークを提供します。このアーキテクチャは、統一された実行セマンティクスを持つ3つのツールタイプをサポートしています。ツールタイプ
MCP Tools
モデルコンテキストプロトコルに従った外部HTTP API
OpenAPI Tools
OpenAPI 3.x仕様から自動生成
Built-in Tools
サービスに直接アクセスするPythonツール
- パラメータのための統一されたJSONスキーマ
- 一貫したエラーハンドリング
- レート制限とサーキットブレーカー
- コスト追跡と予算の強制
- セキュリティ検証
アーキテクチャレイヤー
ツールレジストリ
登録
ツールはサービスの起動時にメタデータと共に登録されます:発見
ツールはランタイム発見のためにHTTP APIを介して公開されます:WASIサンドボックス
Pythonコードの実行は、セキュリティの隔離のためにWebAssembly System Interface (WASI) サンドボックス内で行われます。アーキテクチャ
セキュリティ境界
ネットワークアクセスなし
ネットワークアクセスなし
WASIサンドボックスにはネットワークスタックがありません:
- ✅ 計算、解析、データ変換が可能
- ❌ HTTPリクエストを行うことはできません
- ❌ ソケットを開くことはできません
- ❌ 外部リソースにアクセスすることはできません
読み取り専用ファイルシステム
読み取り専用ファイルシステム
ファイルシステムは読み取り専用でマウントされています:
- ✅ Python標準ライブラリを読み取ることが可能
- ✅ 許可されたデータファイルを読み取ることが可能
- ❌ ファイルを書き込むことはできません
- ❌ システムファイルを変更することはできません
メモリ制限
メモリ制限
実行ごとにメモリ使用量が制限されています:ユースケース: リソース枯渇攻撃を防ぐ
実行タイムアウト
実行タイムアウト
各実行には厳格な時間制限があります:ユースケース: 無限ループやハングプロセスを防ぐ
セットアップ
OpenAPIツールローダー
ShannonはOpenAPI仕様からツールを動的に生成します。仕様処理
1
仕様を取得
URLまたはインラインYAMLからOpenAPI仕様を取得:
2
検証と解析
OpenAPIのバージョンと構造を検証:
3
ツールを生成
各操作のためにツールを作成:
4
ベンダーアダプタを適用
設定されている場合、ベンダー固有の変換をロード:
スキーマ解決
ベンダーアダプター統合
ベンダーアダプターは、Shannonのコアを変更することなく、ドメイン固有のAPIのリクエスト/レスポンスを変換します。実行フロー
アダプターの読み込み
変換例
フィールドエイリアス:レート制限
ツールごとのレート制限
グローバルレート制限
サーキットブレーカー
外部サービスが利用できない場合の連鎖的な障害を防ぎます。設定
状態
コスト追跡
各ツールの実行は、予算の執行のためにコストを追跡します。ツールごとのコスト
予算の執行
設定
エラーハンドリング
エラーカテゴリ
- バリデーションエラー
- 実行エラー
- ネットワークエラー
- サーキットブレーカーエラー
リトライロジック
パフォーマンス最適化
コネクションプーリング
レスポンスキャッシング
並列実行
セキュリティ考慮事項
ドメインホワイトリスト
ツールの権限
APIキー管理
- 環境変数
- Dockerシークレット
- Kubernetesシークレット
モニタリング & 可観測性
メトリクス
ロギング
トレーシング
次のステップ
カスタムツールの追加
MCP、OpenAPI、および組み込みツールの追加方法を学ぶ
ベンダーアダプター
ドメイン特化型の統合を構築する
設定
設定の完全なリファレンス
セキュリティのベストプラクティス
Shannonのデプロイメントを強化する