Go ランタイム
AI-Protocol 向け。
Go プロトコルランタイム(v1.0.0)。pkg/ailib のマニフェスト HTTP チャットと pkg/contact フォールバック。 V2 エラーコード 13 種、ChatStream SSE、ExecutionMetadata。Go 1.21+。
go get github.com/ailib-official/ai-lib-go@v1.0.0 主な機能
V2 エラーコードと Feature フラグ
プロバイダー横断で一貫したエラー処理を行う V2 標準エラーコード 13 種。 Feature ゲート付きモジュール:任意 7 機能 + full メタ機能で最小/完全ビルドに対応。
オペレーターベースのパイプライン
ストリーミング応答は合成可能なオペレーターを通過します:Decoder → Selector → Accumulator → FanOut → EventMapper。各段はプロトコル設定で駆動。
プロトコル読み込み
ローカル・環境変数・GitHub フォールバックからプロバイダーマニフェストを読み込み。 ファイル監視によるホットリロード対応。再起動不要。
レジリエンスパターン
組み込みサーキットブレーカー、トークンバケット制限、指数バックオフ再試行、 max-inflight 背圧。環境変数で設定可能。
埋め込みとベクトル
EmbeddingClient with vector operations ??cosine similarity, Euclidean distance, dot product. セマンティック検索や RAG をネイティブに構築できます。
キャッシュとバッチ
TTL 付きレスポンスキャッシュ(メモリ)。並行度・タイムアウト・複数戦略を設定可能なバッチ実行。
プラグインシステム
フックとミドルウェアチェーンを備えた拡張可能なプラグイン。コアを変更せずに振る舞いを追加。 Guardrails によるコンテンツフィルタと PII 検出。
シンプルで統一された API
同じコードが 37+ プロバイダーで動作します。モデル識別子を変えるだけ ??プロトコルマニフェストがエンドポイント、認証、パラメータ対応、ストリーミング形式を処理します。
ビルダーパターンで流暢なリクエスト構築。ストリーム結果は基盤プロバイダーに依らず
統一された StreamingEvent として届きます。
use ai_lib_rust::{AiClient, Message, StreamingEvent};
// Works with ANY provider ??protocol-driven
let client = AiClient::new(
"anthropic/claude-3-5-sonnet"
).await?;
// Builder pattern for chat requests
let mut stream = client.chat()
.user("Explain AI-Protocol")
.temperature(0.7)
.max_tokens(1000)
.stream()
.execute_stream()
.await?;
// Unified streaming events
while let Some(event) = stream.next().await {
match event? {
StreamingEvent::ContentDelta { text, .. }
=> print!("{text}"),
StreamingEvent::StreamEnd { stats, .. }
=> println!("\nTokens: {}",
stats.total_tokens),
_ => {} // ToolCall, Metadata, etc.
}
} 内部アーキテクチャ
ユーザー向け API から HTTP トランスポートまでの 5 層。ストリーミングパイプラインが中核です。
モジュール概要
client/ + error_code/
AiClient、AiClientBuilder、ChatRequestBuilder、実行ロジック、ポリシーエンジン、 事前チェック、エラー分類、CallStats、CancelHandle。
protocol/
ProtocolLoader(ローカル / URL / GitHub)、JSON Schema 検証、ProtocolManifest、 UnifiedRequest コンパイル、設定型。
pipeline/
Decoder(SSE、JSON Lines)、Selector(JSONPath)、Accumulator(ツール呼び出し)、FanOut、 EventMapper、Retry / Fallback オペレーター。
transport/
HttpTransport(reqwest)、API キー解決(keyring + 環境変数)、プロキシ / タイムアウト、ミドルウェア。
resilience/
サーキットブレーカー(open / half-open / closed)、トークンバケット制限、max-inflight 背圧。
embeddings/
EmbeddingClient、EmbeddingClientBuilder、ベクトル演算(コサイン類似度、ユークリッド距離、内積)。
cache/ + batch/
TTL 付き CacheManager(MemoryCache、NullCache)。並行制御と複数戦略の BatchCollector / BatchExecutor。
plugins/ + guardrails/ + structured/
Plugin trait、PluginRegistry、HookManager、ミドルウェア。キーワード / パターンフィルタと PII 検出の Guardrails。