Bastion: 為背景程式碼代理程式提供的隔離 Linux VM
Bastion 提供專為背景程式碼代理程式設計的隔離 Linux 虛擬機器 (VMs)。透過為每個代理程式提供其專屬的 VM,Bastion 消除了並行代理程式之間的執行時衝突,並提供對檔案系統和背景程序完全的控制權。
Bastion 的核心能力
Bastion 透過提供專屬且可重複使用的環境,讓開發者能夠擴展背景程式碼代理程式。該系統旨在透過以下功能實現隔離與自動化:
虛擬機器隔離
每個程式碼代理程式都在獨立的 VM 中執行,確保並行工作的代理程式彼此不會互相干擾。這種隔離為代理程式提供了對其特定開發環境的完整管理權限,包括背景程序和檔案系統的管理。
基於 JSON 的環境定義
環境並非手動配置。相反地,Bastion 使用經過 schema 驗證的 JSON 範本來初始化環境。這些範本定義了代理程式的工作目錄、身分驗證金鑰(例如 OpenAI API keys)以及特定的模型配置(例如 openai/gpt-5.5)。
自行託管與基礎設施
Bastion 可以自行託管在任何支援 KVM 的 Linux 系統上。這允許部署在本地工作站或雲端實例(例如 AWS EC2)上,讓使用者對其基礎設施擁有完全的控制權。
工作流程與實作
在 Bastion 中部署代理程式環境涉及四個步驟:
- 範本建立:建立一個 JSON 設定檔來定義代理程式的環境。這包括一個
actions區塊,使用者可以在其中指定初始化步驟——例如安裝 Bun、複製 Git 儲存庫,以及執行bun install——以及啟動指令,例如nohup bun run dev &。 - 範本初始化:使用指令
bastion templates create --key acme-app --file ./template.json將範本註冊到 Bastion CLI。 - 環境部署:使用
bastion env create --template-key acme-app --key agent-1 --tag issue-32從範本部署環境。 - 介面連接:使用者可以直接透過 SSH 或透過 Bastion 特有的
opencode介面,使用bastion opencode --key agent-1來存取環境。
技術架構
Bastion 利用 KVM (Kernel-based Virtual Machine) 作為其隔離層。該系統提供多種公用工具和執行時 (runtimes) 以透過自定義動作來簡化環境設定。它還支援代理至環境服務,以及用於管理多個代理程式環境的複用器 (multiplexer)。
"Cool concept! I guess you already knew the name Bastion would conflict with the term "Bastion host""
— @Alifatisk on Hacker News