このプロジェクトについて

Agent Substrateは、標準のコンテナランタイムより10倍高い密度で数百万のサンドボックスを実行するように設計された、デフォルトでセキュアなエージェント実行ランタイムです。自律エージェント向けに特別に構築されており、ネイティブのゼロトラストカーネルおよびネットワーク分離により、毎秒500回以上のサスペンド/レジュームアクティベーションで500ミリ秒未満のレジューム操作を実現します。microVMやgVisorを含む複数のサンドボックス技術をサポートし、すべてのサンドボックスタイプで一貫したライフサイクル操作を可能にします。 Agent Substrateは、その中核として、より大きな「アクター」(エージェントなどのアプリケーション)のセットを、より小さな準備済み「ワーカー」のセットにマッピングします。これは、エージェントのようなアプリケーションがほとんどの時間アイドル状態である傾向があるという事実を利用して、高度な多重化を実現します。アクターのライフサイクル(作成/破棄、サスペンド/レジュームなど)を管理し、アクターをワーカーにリアルタイムで割り当て、着信トラフィックをルーティングする機能を提供します。 Agent Substrateは、意見が少ないシステムであることを意図しています。管理するワークロードは文字通りのAIエージェントである必要はありませんが、それらはこのシステムが設計されたアプリケーションの最良の例です。これはエージェントを構築するためのSDKではなく、エージェントを大規模に実行するためのシステムです。 Agent Substrateは、インフラストラクチャのプロビジョニングとワーカーのライフサイクル管理(Kubernetes Pod)にKubernetesを活用します。PodやPodオートスケーリングなどのKubernetes機能の上に構築され、Agent Substrateはエージェント固有のスケジューリングと制御を提供して、より低いレイテンシを実現します。基盤システムとしてKubernetesを使用することで、エンドツーエンドのエージェント展開に必要なすべてのワークロードタイプにわたって一貫したインフラストラクチャ管理が可能になり、エージェント、推論、トレーニングサイクルにまたがるRLシナリオの全体的なインフラストラクチャ最適化が可能になります。 ## デモ デモビデオでは、Agent Substrateクラスタが約250のステートフルアクターをわずか8つの物理Podに多重化している様子を示しています。実証される主な機能は次のとおりです。 1. **アクターテレポート:** プール内の任意の利用可能なワーカーへのアクターの高性能サスペンドおよびレジューム。サブ秒のアクティベーションを実現。 2. **状態永続化:** 永続的なワーキングメモリ(揮発性RAM)とファイルシステム状態が、全状態スナップショットによりハイバネーションサイクル全体で完全に保持されます。 3. **エージェント多重化:** 多数のステートフルアクターのレジストリを少数の共有物理Podに「ジャグリング」することで、30倍以上のオーバーサブスクリプションを実証します。 ## フレームワーク非依存と互換性 Agent Substrateは、フレームワークおよびエージェントハーネスに依存しないように設計されています。カーネルレベル(gVisor経由)で標準のOCIコンテナを管理するため、任意のスタックで構築されたエージェントをホストできます。 - **Agent Development Kit (ADK):** 呼び出し間のセッション状態をアクター状態として保持するADKエージェントをサポート。 - **LangChain:** LangChainエージェントとツール呼び出しに理想的な実行環境。 - **Claude Code、CodeX、Antigravity:** セッション間でシステム状態とファイルシステム状態を保持する、高密度でステートフルなコーディング環境をサポート。 - **Model Context Protocol (MCP):** 任意のモデルに永続的なツールを提供するために、セキュアでサンドボックス化されたMCPサーバーをSubstrateアクターとして展開することをサポート。 ## エコシステムと例 - **Agent Executor (google/ax):** Agent Substrate上でセキュアで超スケーラブルなエージェントハーネスを構築することを実証する分散エージェントランタイム。 - **kagent:** AIエージェントを構築、展開、管理するためのCNCFサンドボックスプロジェクトおよびKubernetesネイティブフレームワーク。Agent Substrateを使用して、サンドボックス化されたステートフルなエージェントワークロードを実行します。 ## ステータスと互換性 Agent Substrateは現在初期開発段階にあります。本番環境での使用にはまだ対応しておらず、APIはほぼ確実に変更されます。この段階では後方互換性の保証はありません。 ### サポートされているKubernetesリリース 現在、Kubernetesの最新の安定版リリースと前のマイナーリリースをサポートすることを目指しています。 ## コミュニティ アナウンスとディスカッションについては、ate-dev Google Groupに参加してください。毎週木曜日の午前10時から午前11時(PST)にコミュニティミーティングが開催されます。CNCF Slackチャンネル(#substrate-usersおよび#substrate-dev)もあります。 ## クイックスタート(開発) ローカルで完全な環境をセットアップするには: 1. Go、kubectl、dockerがインストールされていることを確認します。 2. 次の手順を実行します。 - `hack/create-kind-cluster.sh` クラスタとローカルレジストリを作成します。 - `hack/install-ate-kind.sh --deploy-ate-system` ate、PostgreSQL、rustfsをインストールします。 - `hack/install-ate-kind.sh --deploy-demo-counter` カウンターデモをインストールします。 - `go install ./cmd/kubectl-ate` kubectl-ateをインストールします。 - カウンターアクターを作成します:`kubectl ate create actor my-counter-1 -a ate-demo-counter --template counter`。 - ネットワークルーターのポートフォワード:`kubectl port-forward -n ate-system svc/atenet-router 8000:80`。 3. 別のターミナルで、HTTPリクエストを送信してカウンターをインクリメントします: ```shell curl -X POST -H "ate-target-actor: ate-demo-counter/my-counter-1" -i http://localhost:8000/ ``` ワーカー容量はバージョン管理されています。データプレーンは、`ate.dev/substrate-version`ラベルが付いたノードでのみスケジュールされ、インストール時には実行時に存在するすべてのノードにスタンプが押されます。 ### GKEクイックスタート(開発) 1. 環境ファイルをコピーして編集します:`cp hack/ate-dev-env.sh.example .ate-dev-env.sh`。 2. アプリケーションデフォルト認証情報を有効にします:`gcloud auth application-default login --project=${PROJECT_ID}`。 3. GCPリソースをプロビジョニングします:`go run ./tools/setup-gcp bootstrap`。 4. システムを展開します:`./hack/install-ate.sh --deploy-ate-system`。 5. サンプルアプリを展開します:`./hack/install-ate.sh --deploy-demo-counter`。 個々の手順には、カスタムセットアップおよびティアダウンスクリプトが用意されています。 ## デモ - **カウンターデモ:** サスペンド/レジューム間の状態保持を実証するステートフルなGo HTTPサーバー。 - **サンドボックスデモ(Antigravity):** ファイルシステム状態を保持しながら任意のシェル実行を可能にする、セキュアでサンドボックス化された実行環境(Alpine Linux)。 - **Claude Code Multiplex:** 複数のClaude Codeエージェントを限られたワーカープールに多重化することで、物理ハードウェアをオーバーサブスクライブすることを実証します。 - **マルチテンプレート:** 異なるバイナリを実行する2つのActorTemplateが1つのWorkerPoolを共有します。 - **リクエストパーキング:** ワーカーが解放されるまでルーターが着信リクエストを保持する、オーバーサブスクライブされたプール。 - **オートスケールされたWorkerPool:** prometheus-adapterによって供給されるHPAを使用して、割り当てられたワーカー数に基づいてWorkerPoolをスケーリングします。 ## ドキュメントとガイド - アーキテクチャ:コントロールプレーン、ノードスーパーバイザー、ネットワーキングスタックがどのように連携するか。 - API設定ガイド:WorkerPool、ActorTemplate、Secret、Volumeの設定に関する詳細なリファレンス。 - 完全なCLIドキュメント:kubectl-ateのインストールと使用法。 - 用語集:中核となる用語(Actor、Atespace、ActorTemplate、WorkerPool、Worker、ate-api-server、atenet、atelet、ateom)。 - 統合リポジトリ:統合がどこに存在し、修正がどのようにコアに還流するか。 - 可観測性ガイド:アクターロギング、メトリクス、分散トレーシング。 - 認証ガイド:信頼できるJWTプロバイダーと人間の認証情報を設定します。 - エグレストラフィック:アクターが外部の世界に到達できるプロトコルとブロックされるプロトコル。 - アクターエグレスポリシーのMITM傍受を有効にする。 - リクエストパーキング:ルーターが一時的なワーカープールの飽和を通じてリクエストをどのようにパークするか。 - ローリングアップグレードランブック:アクター状態を失うことなく、実行中の基盤ノードをノードごとにアップグレードします。 - 脅威モデル:信頼境界、前提条件、既知のリスク。 - ロードマップ:現在の制限と次に計画されていること。 - ベンチマークガイド:Locustベースの負荷テスト、監視スタック、オーケストレーションされたベンチマークハーネス。 ## ツアー 主要なコマンドとコンポーネント: - `cmd/ateapi`:gRPCエンドポイントを公開する中核となるコントロールプレーンAPIサーバー。 - `cmd/atelet`:物理ワーカーPodを監督するノードレベルのDaemonSet。 - `cmd/atecontroller`:WorkerPoolカスタムリソースを調整するKubernetesコントローラー。 - `cmd/atenet`:Envoyルーティングとプロキシサイドカーを提供する複合ネットワーキングコントローラー。 - `cmd/ateom-gvisor`:runscチェックポイントおよびリストアコマンドを実行する内部Podヘルパー。 - `cmd/ateom-microvm`:アクターをcloud-hypervisor VMとして実行するマイクロVMピア。 - `cmd/podcertcontroller`:Pod証明書署名者を提供するポリフィル。 - `cmd/kubectl-ate`:Agent Substrateリソースを管理するためのCLIツール。 - `cmd/benchmarking`:負荷テスト用の合成ワークロード。 - `tools/setup-gcp`:GCPインフラストラクチャのプロビジョニングユーティリティ。 - `demos/`:機能を実証するサンプルアプリケーション。