Skip to main content

概要

Shannonのツール実行システムは、AIエージェントに外部機能を統合するための安全で拡張可能なフレームワークを提供します。このアーキテクチャは、統一された実行セマンティクスを持つ3つのツールタイプをサポートしています。

ツールタイプ

MCP Tools

モデルコンテキストプロトコルに従った外部HTTP API

OpenAPI Tools

OpenAPI 3.x仕様から自動生成

Built-in Tools

サービスに直接アクセスするPythonツール
すべてのツールタイプは以下を共有します:
  • パラメータのための統一されたJSONスキーマ
  • 一貫したエラーハンドリング
  • レート制限とサーキットブレーカー
  • コスト追跡と予算の強制
  • セキュリティ検証

アーキテクチャレイヤー

ツール実行アーキテクチャ - Orchestrator、Agent Core、LLM Service間のツール実行フローとコンポーネントレイヤーを示す図 / Tool Execution Architecture - Diagram showing tool execution flow and component layers across Orchestrator, Agent Core, and LLM Service

ツールレジストリ

登録

ツールはサービスの起動時にメタデータと共に登録されます:

発見

ツールはランタイム発見のためにHTTP APIを介して公開されます:

WASIサンドボックス

Pythonコードの実行は、セキュリティの隔離のためにWebAssembly System Interface (WASI) サンドボックス内で行われます。

アーキテクチャ

WASIサンドボックス - セキュアなPythonコード実行のためのWASI隔離環境とセキュリティ境界を示す図 / WASI Sandbox - Diagram showing WASI isolation environment and security boundaries for secure Python code execution

セキュリティ境界

WASIサンドボックスにはネットワークスタックがありません:
  • ✅ 計算、解析、データ変換が可能
  • ❌ HTTPリクエストを行うことはできません
  • ❌ ソケットを開くことはできません
  • ❌ 外部リソースにアクセスすることはできません
ユースケース: ユーザー提供のPythonコードの安全な実行
ファイルシステムは読み取り専用でマウントされています:
  • ✅ Python標準ライブラリを読み取ることが可能
  • ✅ 許可されたデータファイルを読み取ることが可能
  • ❌ ファイルを書き込むことはできません
  • ❌ システムファイルを変更することはできません
ユースケース: データの流出と改ざんを防ぐ
実行ごとにメモリ使用量が制限されています:
ユースケース: リソース枯渇攻撃を防ぐ
各実行には厳格な時間制限があります:
ユースケース: 無限ループやハングプロセスを防ぐ

セットアップ

OpenAPIツールローダー

ShannonはOpenAPI仕様からツールを動的に生成します。

仕様処理

1

仕様を取得

URLまたはインラインYAMLからOpenAPI仕様を取得:
2

検証と解析

OpenAPIのバージョンと構造を検証:
3

ツールを生成

各操作のためにツールを作成:
4

ベンダーアダプタを適用

設定されている場合、ベンダー固有の変換をロード:

スキーマ解決

リモート $ref 解決(例: https://example.com/schemas/Pet.json)はサポートされていません。外部スキーマを単一の仕様ファイルに統合してください。

ベンダーアダプター統合

ベンダーアダプターは、Shannonのコアを変更することなく、ドメイン固有のAPIのリクエスト/レスポンスを変換します。

実行フロー

ベンダーアダプターシーケンス - ベンダー固有のAPI変換を含むツール実行フローのシーケンス図 / Vendor Adapter Sequence - Sequence diagram of tool execution flow with vendor-specific API transformations

アダプターの読み込み

変換例

フィールドエイリアス:
セッションコンテキストの注入:
時間範囲の正規化:

レート制限

ツールごとのレート制限

トークンバケットアルゴリズムで実装:

グローバルレート制限

サーキットブレーカー

外部サービスが利用できない場合の連鎖的な障害を防ぎます。

設定

状態

サーキットブレーカー状態遷移 - Closed、Open、Half-Open状態間の遷移条件を示す状態遷移図 / Circuit Breaker State Transitions - State transition diagram showing transition conditions between Closed, Open, and Half-Open states Closed: 通常の操作、すべてのリクエストが許可される Open: サービスが利用できない、すべてのリクエストがファスト失敗 Half-Open: 回復をテスト中、制限されたリクエストが許可される

コスト追跡

各ツールの実行は、予算の執行のためにコストを追跡します。

ツールごとのコスト

予算の執行

設定

エラーハンドリング

エラーカテゴリ

リトライロジック

パフォーマンス最適化

コネクションプーリング

レスポンスキャッシング

並列実行

設定:

セキュリティ考慮事項

常にツールの入力を検証し、ユーザーの権限に基づいて実行を制限してください。

ドメインホワイトリスト

ツールの権限

OPAポリシーでアクセスを制御できます:

APIキー管理

モニタリング & 可観測性

メトリクス

ロギング

トレーシング

次のステップ

カスタムツールの追加

MCP、OpenAPI、および組み込みツールの追加方法を学ぶ

ベンダーアダプター

ドメイン特化型の統合を構築する

設定

設定の完全なリファレンス

セキュリティのベストプラクティス

Shannonのデプロイメントを強化する