skip to content
日替わり OSS
Table of Contents

リポジトリ

  • google/ax
  • 主要言語: Go / ライセンス: Apache-2.0 / ★ 9,074

AX とは

AX は、Google が開発しオープンソースとして公開している、自律型エージェントワークロードのための高スループットなオーケストレーションランタイムです。Kubernetes 上で動作し、数百万、数十億規模のエージェントタスクをクラスター上で効率的かつ安全に実行することを目的としています。

近年、大規模言語モデル(LLM)の進化に伴い、与えられた目標に対し自律的に行動する「エージェント」の概念が注目されています。しかし、これらのエージェントは従来のステートレスなマイクロサービスや一度実行すれば完了するバッチジョブとは異なり、固有の運用上の課題を抱えています。AX は、こうしたエージェント特有の要件に対応するため、厳格な隔離、状態の蓄積、外部ツールやモデルAPIへの安全なアクセス、そしてコスト効率の良い運用を宣言的に実現するソリューションを提供します。

エージェントワークロードが抱える課題と AX の解決策

自律型エージェントは、以下のような特性を持つため、一般的なワークロード管理ツールでは対応しきれない課題に直面します。

  1. 状態の蓄積と永続性: エージェントは長期にわたってタスクを実行し、その過程で状態を変化させ、記憶を保持する必要があります。中断・再開機能や状態のチェックポイント作成が不可欠です。
  2. 厳格な分離とセキュリティ: 不明な、あるいは信頼できないコードを実行する可能性があるため、CPUやメモリの制限だけでなく、ネットワークアクセスを含む厳格なサンドボックス環境が求められます。
  3. 外部サービス連携とコスト管理: LLMや外部API、ツールサーバーなどを呼び出す際、認証情報管理や、無限ループによる過剰なAPI呼び出し(「燃焼」)を防ぐ仕組みが必要です。
  4. 開発とデバッグの複雑さ: エージェントの内部状態を観察したり、問題発生時に環境にアクセスしてデバッグしたりする機能が重要です。

AX は、これらの課題に対応するために、以下の4つの主要なプリミティブ(基本要素)を提供します。

  • Task: CPUやメモリ制限を持つ分離されたサンドボックス内で、信頼性の低いエージェントコードを実行するための最小単位です。これにより、エージェントは安全にそのタスクを実行できます。
  • Workspace: エージェントが実行を開始する際に必要なGitリポジトリ、MCP(Model Control Plane)サーバー、スキルパッケージなどを事前に準備し、エージェントがすぐに作業を開始できる「温かい」環境を提供します。
  • Gateway: エージェントの外部へのネットワークトラフィックを、明示的に許可されたホストリストに制限し、セキュリティリスクを最小限に抑えます。
  • Model: プラットフォーム自体が使用する大規模言語モデル(LLM)を設定するためのもので、Kubernetesのシークレットから認証情報を取得し、安全にモデルにアクセスできるようにします。

これらのプリミティブは、Kubernetesと同様にYAMLマニフェストとして宣言的に定義され、ax CLIを通じて適用・管理されます。

AX の主要な機能と特徴

1. 宣言的なエージェントオーケストレーション

AX は、エージェントのタスク定義、実行環境、ネットワーク、モデル設定などをYAML形式で宣言的に記述することを可能にします。これにより、構成の管理が容易になり、GitOps のようなプラクティスをエージェントワークロードにも適用できます。

# task.yaml の例(一部抜粋)
apiVersion: ax.io/v1alpha1
kind: Task
metadata:
name: test
spec:
workspaces:
- name: golang
goal: "Ensure that Go tool chain is available and is built from source"
debug: true # `ax ssh` でサンドボックスにアクセス可能にする

2. Kubernetes との親和性

AX は Kubernetes の上に構築されており、そのCLI (ax) は kubectl に似た操作感を持っています。これにより、Kubernetes の知識を持つエンジニアは比較的容易に AX を導入・運用できます。また、kubectx との連携もサポートされており、Kubernetes のコンテキストを切り替えるだけで、異なるクラスターの AX コントロールプレーンにアクセスできます。

3. エージェントのライフサイクル管理

AX はエージェントの実行、監視、デバッグ、中断、再開といったライフサイクル全体をサポートします。

  • ax apply -f task.yaml: 定義したタスクをデプロイします。
  • ax watch task <task-name>: タスクのフェーズや状態変化をリアルタイムで監視します。
  • ax ssh <task-name> -- ls -al /workspace: 実行中のエージェントのサンドボックス内にシェルアクセスし、内部を調査したり、コマンドを実行したりできます。
  • ax suspend task <task-name>: エージェントの状態をチェックポイントし、一時停止します。これにより、リソースを解放しつつ、中断した時点から再開することが可能です。
  • ax resume task <task-name>: 中断したエージェントを以前の状態から再開します。

これらの機能は、特にエージェントの開発やデバッグにおいて非常に強力なツールとなります。

4. 高いスケーラビリティとパフォーマンス

Agent Substrate と呼ばれるサンドボックス実行環境の上に構築されており、単一クラスターで数億規模のタスクを実行できる設計思想を持っています。これは、大規模なエージェント群を用いたシミュレーションや、多数の個別タスクを並行して実行するようなシナリオで大きな強みとなります。

どのような現場で役立つか

AX は、以下のような開発・運用現場で特にその真価を発揮するでしょう。

  • 自律型エージェントの研究・開発: エージェントの振る舞いを安全かつ効率的にテスト・評価したい研究機関や開発チーム。
  • エージェントベースのアプリケーション開発: カスタマーサポート、データ分析、コンテンツ生成など、エージェントを活用したビジネスアプリケーションを大規模に展開しようとしている企業。
  • 分散システム、クラウドネイティブ環境でのエージェント運用: 既存の Kubernetes インフラを活用しつつ、エージェント特有の要件を満たす運用基盤を求めている組織。
  • セキュリティとコスト管理を重視するエージェントプロジェクト: 外部API呼び出しの安全性を確保し、無駄なリソース消費を防ぎたいプロジェクト。

AX は現在 v1alpha1 フェーズにあり、活発な開発が続けられています。これは、まだAPIや仕様に破壊的変更が入る可能性があることを示唆していますが、同時に、新しいエージェントエコシステムの最先端をリードするプロジェクトであるとも言えます。

まとめ

AX は、自律型エージェントの複雑なライフサイクルと運用課題に、Kubernetes のような宣言的アプローチで応える画期的なオーケストレーションランタイムです。サンドボックス化された安全な実行環境、柔軟な状態管理、厳格なネットワーク制御、そして開発・デバッグを容易にする強力なCLIツール群を提供します。

エージェント技術の発展に伴い、その信頼性、スケーラビリティ、そして運用効率はますます重要になっています。AX は、これからのエージェントエコシステムにおいて、その基盤を支える重要なコンポーネントとなる可能性を秘めています。Kubernetes の運用経験があるエンジニアにとって、この新しいワークロードの管理は、ax CLIによって非常に馴染みやすいものとなるでしょう。