Bastion: 为后台编码智能体提供的隔离 Linux VM

Bastion 为后台编码智能体专门设计了隔离的 Linux 虚拟机 (VM)。通过为每个智能体提供专属的 VM,Bastion 消除了并行智能体之间的运行时冲突,并提供了对文件系统和后台进程的完全控制。

Bastion 的核心能力

Bastion 通过为智能体提供专用且可复现的环境,允许开发者扩展后台编码智能体。该系统通过以下特性实现隔离与自动化:

虚拟机隔离

每个编码智能体都在独立的 VM 中运行,确保并行工作的智能体之间不会相互干扰。这种隔离为智能体提供了对其特定开发环境的完全管理权限,包括对后台进程和文件系统的管理。

基于 JSON 的环境定义

环境并非手动配置。相反,Bastion 使用经过 schema 验证的 JSON 模板来初始化环境。这些模板定义了智能体的运行目录、身份验证密钥(例如 OpenAI API keys)以及特定的模型配置(例如 openai/gpt-5.5)。

自托管与基础设施

Bastion 可以自托管在任何支持 KVM 的 Linux 系统上。这允许将其部署在本地工作站或云实例(如 AWS EC2)上,从而让用户对自己的基础设施拥有完全的控制权。

工作流程与实现

在 Bastion 中部署智能体环境涉及四个步骤:

  1. 模板创建:创建一个 JSON 配置文件来定义智能体的环境。这包括一个 actions 块,用户可以在其中指定初始化步骤——例如安装 Bun、克隆 Git 仓库以及运行 bun install——以及启动命令,如 nohup bun run dev &
  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 接口使用 bastion opencode --key agent-1 进行访问。

技术架构

Bastion 利用 KVM (Kernel-based Virtual Machine) 作为其隔离层。该系统通过自定义 actions 提供了一系列实用工具和运行时,以简化环境设置。它还支持代理到环境服务,并提供了一个用于管理多个智能体环境的多路复用器。

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

— @Alifatisk on Hacker News

Sources