コンテンツにスキップ

エコシステムアーキテクチャ

AI-Lib エコシステムは、各レイヤーが明確な責務を持つクリーンな 3 層アーキテクチャで構築されています。現在のバージョン:AI-Protocol v0.5.0ai-lib-rust v0.7.1ai-lib-python v0.6.0

1. プロトコルレイヤー — AI-Protocol

Section titled “1. プロトコルレイヤー — AI-Protocol”

仕様レイヤーです。YAML マニフェストで以下を定義します:

  • プロバイダーマニフェストproviders/*.yaml)— 35 以上のプロバイダーそれぞれのエンドポイント、認証、パラメータマッピング、ストリーミングデコーダー、エラー分類
  • モデルレジストリmodels/*.yaml)— コンテキストウィンドウ、機能、価格を持つモデルインスタンス
  • コア仕様spec.yaml)— 標準パラメータ、イベント、エラー型、リトライポリシー
  • スキーマschemas/)— すべての設定の JSON Schema 検証

プロトコルレイヤーは言語非依存です。あらゆる言語のランタイムから消費されます。

2. ランタイムレイヤー — Rust & Python SDK

Section titled “2. ランタイムレイヤー — Rust & Python SDK”

実行レイヤーです。ランタイムは以下を実装します:

  • プロトコル読み込み — ローカルファイル、環境変数、GitHub からマニフェストを読み取り検証
  • リクエストコンパイル — 統合リクエストをプロバイダー固有の HTTP 呼び出しに変換
  • ストリーミングパイプライン — プロバイダーレスポンスをデコード、選択、蓄積、統一イベントにマッピング
  • 耐障害性 — サーキットブレーカー、レート制限、リトライ、フォールバック
  • 拡張機能 — 埋め込み、キャッシュ、バッチ処理、プラグイン

両ランタイムは同じアーキテクチャを共有します:

コンセプトRustPython
クライアントAiClientAiClient
ビルダーAiClientBuilderAiClientBuilder
リクエストChatRequestBuilderChatRequestBuilder
イベントStreamingEvent enumStreamingEvent class
トランスポートreqwest (tokio)httpx (asyncio)
Rust structsPydantic v2 models

3. アプリケーションレイヤー — あなたのコード

Section titled “3. アプリケーションレイヤー — あなたのコード”

アプリケーションは統合ランタイム API を使用します。単一の AiClient インターフェースがすべてのプロバイダーで動作します:

Your App → AiClient → Protocol Manifest → Provider API

モデル識別子を 1 つ変更するだけでプロバイダーを切り替えられます。コード変更は不要です。

client.chat().user("Hello").stream() を呼び出すと何が起こるか:

  1. AiClient がリクエストを受け取る
  2. ProtocolLoader がプロバイダーマニフェストを提供する
  3. リクエストコンパイラ が標準パラメータをプロバイダー固有の JSON にマッピングする
  4. トランスポート が正しい認証/ヘッダーで HTTP リクエストを送信する
  5. パイプライン がストリーミングレスポンスを処理する:
    • Decoder がバイト → JSON フレーム(SSE または NDJSON)に変換
    • Selector が JSONPath で関連フレームをフィルタリング
    • Accumulator が部分的なツール呼び出しを組み立てる
    • EventMapper がフレーム → 統一 StreamingEvent に変換
  6. アプリケーション が統一イベントをイテレートする

両ランタイムは次の順序でプロトコルマニフェストを検索します:

  1. カスタムパス — ビルダーで明示的に設定
  2. 環境変数AI_PROTOCOL_DIR または AI_PROTOCOL_PATH
  3. 相対パス — 作業ディレクトリからの ai-protocol/ または ../ai-protocol/
  4. GitHub フォールバックhiddenpath/ai-protocol リポジトリからダウンロード

つまり、ローカルセットアップなしで開発を開始できます。ランタイムが GitHub からマニフェストを自動的に取得します。

プロトコル v0.5.0 リリースでは 3 層ピラミッド アーキテクチャを導入しています:

  • L1 コアプロトコル — メッセージ形式、標準エラーコード(E1001–E9999)、バージョン宣言
  • L2 機能拡張 — ストリーミング、ビジョン、ツール — それぞれフィーチャーフラグで制御
  • L3 環境プロファイル — API キー、エンドポイント、リトライポリシー — 環境固有の設定

コンプライアンステストスイート(42 テストケース、両ランタイムで 20/20 合格)により、Rust と Python 実装間で同一の動作が保証されます。

AI-Protocol と MCP(Model Context Protocol)は補完的です:

  • MCP は高レベルの関心事 — ツール登録、コンテキスト管理、エージェント調整
  • AI-Protocol は低レベルの関心事 — API 正規化、ストリーミング形式変換、エラー分類

これらは異なるレイヤーで動作し、併用できます。