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 中部署智能体环境涉及四个步骤:
- 模板创建:创建一个 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) 作为其隔离层。该系统通过自定义 actions 提供了一系列实用工具和运行时,以简化环境设置。它还支持代理到环境服务,并提供了一个用于管理多个智能体环境的多路复用器。
"Cool concept! I guess you already knew the name Bastion would conflict with the term "Bastion host""
— @Alifatisk on Hacker News