Bastion: バックグラウンド・コーディング・エージェント用隔離 Linux VM

Bastion は、バックグラウンド・コーディング・エージェント向けに特別に設計された、隔離された Linux 仮想マシン (VM) を提供します。各エージェントに独自の VM を提供することで、Bastion は並列実行されるエージェント間のランタイムの競合を排除し、ファイルシステムとバックグラウンド・プロセスに対する完全な制御を提供します。

Bastion の主な機能

Bastion は、開発者がバックグラウンド・コーディング・エージェントを拡張できるように、専用で再現可能な環境を提供します。このシステムは、以下の機能を通じて、隔離と自動化を実現するように設計されています。

仮想マシンによる隔離

すべてのコーディング・エージェントは個別の VM で実行されるため、並列して作業するエージェント同士が干渉しないことが保証されます。この隔離により、エージェントはバックグラウンド・プロセスやファイルシステムの管理を含む、特定の開発環境に対する完全な管理者権限を得ることができます。

JSON ベースの環境定義

環境は手動で設定されるものではありません。代わりに、Bastion はスキーマ検証済みの JSON テンプレートを使用して環境を初期化します。これらのテンプレートでは、エージェントの作業ディレクトリ、認証キー (OpenAI API キーなど)、および特定のモデル構成 (例: openai/gpt-5.5) を定義します。

セルフホスティングとインフラストラクチャ

Bastion は、KVM サポートのある任意の Linux システム上でセルフホスティングが可能です。これにより、ローカルのワークステーションや AWS EC2 などのクラウド・インスタンスへのデプロイが可能になり、ユーザーは自身のインフラストラクチャを完全に制御できます。

ワークフローと実装

Bastion でエージェント環境をデプロイするには、次の 4 つのステップのプロセスが含まれます。

  1. テンプレート作成: エージェントの環境を定義するために、JSON 設定ファイルが作成されます。これには、ユーザーが初期化ステップ (Bun のインストール、Git リポジトリのクローン、bun install の実行など) や、nohup bun run dev & のような起動コマンドを指定できる actions ブロックが含まれます。
  2. テンプレート初期化: テンプレートは、bastion templates create --key acme-app --file ./template.json コマンドを使用して Bastion CLI で登録されます。
  3. 環境デプロイ: テンプレートから環境が bastion env create --template-key acme-app --key agent-1 --tag issue-32 を使用してデプロイされます。
  4. インターフェース: ユーザーは、SSH 経由で直接環境にアクセスするか、bastion opencode --key agent-1 を使用して Bastion 特有の opencode インターフェースを介してアクセスできます。

技術アーキテクチャ

Bastion は、隔離レイヤーとして KVM (Kernel-based Virtual Machine) を活用しています。このシステムは、カスタム・アクションを通じて環境セットアップを簡素化するための、さまざまなユーティリティ・ツールとランタイムを提供します。また、環境サービスへのプロキシ、および複数のエージェント環境を管理するためのマルチプレクサもサポートしています。

"Cool concept! I guess you already knew the name Bastion would conflict with the term "Bastion host""

— @Alifatisk on Hacker News

Sources