stereOS
专为 AI Agent 打造的安全加固型 Linux 操作系统,基于 NixOS 提供声明式配置与
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
专为 AI Agent 打造的安全加固型 Linux 操作系统,基于 NixOS 提供声明式配置与
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2025 年,随着 Claude Code、OpenCode、gemini-cli 等 AI 编程工具的兴起,一个核心矛盾逐渐浮现——这些 Agent 运行在宿主机上时,权限边界模糊、安全隔离不足、状态难以持久化。开发者不得不在「让 Agent 自由发挥」和「保护系统安全」之间艰难取舍。
papercomputeco 团队正是从这个痛点出发,提出了一个根本性的问题:与其在传统 OS 上用沙箱修修补补,不如从头构建一个专门为 AI Agent 设计的操作系统。 于是 stereOS 应运而生——它是一个基于 NixOS 的、经过安全加固的 Linux 发行版,目标是为 AI Agent 提供一个稳定、可预测、受控的运行环境。
stereOS 的技术选型极具特色,选择了 NixOS 作为底层系统。这一选择并非随意,而是经过深思熟虑的:
NixOS 的声明式配置意味着整个系统状态由单一配置文件(.nix)描述,任何修改都是原子化的、可回滚的。对于需要频繁创建和销毁 Agent 实例的场景,这意味着每次启动都是一个完全一致、可重现的环境。这对于 AI Agent 的测试和部署具有不可替代的价值。
项目的核心入口是 flake.nix,它使用了 flake-parts 框架来组织模块化结构:
flake.nix → flake-parts/lib/mkFlake
├── flake/devshell.nix # 开发工具链(direnv)
├── flake/images.nix # 镜像构建目标(raw, qcow2, kernel-artifacts)
└── flake/checks.nix # CI 验证构建
整个系统配置通过 NixOS 模块系统组织,模块树位于 modules/ 目录:
modules/base.nix:核心 OS(文件系统、SSH、Nix 设置、包管理、安全加固)modules/boot.nix:启动配置(目标:子 3 秒启动)modules/services/stereosd.nix:stereOS 系统守护进程(virtio-vsock 控制平面)modules/services/agentd.nix:Agent 管理守护进程(tmux / gVisor 沙箱)modules/users/agent.nix:Agent 用户(受限 shell、~/workspace、禁止 sudo)modules/users/admin.nix:管理员用户(wheel 组、无密码 sudo)stereOS 的安全架构是其最具技术深度的部分。它通过 gVisor(runsc)实现内核级进程沙箱,每个 Agent 运行在一个独立的 gVisor 容器中。宿主机内核受到严格保护,Agent 的任何危险系统调用都会被拦截。
此外,stereOS 引入了 virtio-vsock 作为 VM 与宿主机之间的控制平面通信机制(CID:3, 端口 1024),替代传统的网络端口暴露,减小攻击面。
用户模型也经过精心设计:
agent 用户:Agent 的运行环境,拥有受限的 shell 权限,/home/agent/workspace 是其工作目录,禁止 sudoadmin 用户:运维人员使用,拥有完整管理权限stereOS 提出了一个优雅的概念——Mixtape。每个 Mixtape 是一个预配置的系统镜像,内置特定的 Agent 工具链。用户通过 lib/default.nix:mkMixtape 助手函数组合系统模块:
mkMixtape {
name = "coder";
features = [ ./mixtapes/coder/package.nix ];
}
当前已提供的 Mixtape 包括:
opencode-mixtape:内置 OpenCode 工具,需要 ANTHROPIC_API_KEY 或 OPENAI_API_KEY未来还会支持更多 AI Agent(claude-code、gemini-cli 等),形成类似「应用商店」的生态。
stereOS 支持多种镜像格式,满足不同虚拟化场景:
| 格式 | 构建属性 | 输出文件 | 适用场景 |
|---|---|---|---|
| Raw EFI | system.build.raw | stereos.img | Apple Virtualization.framework(macOS 原生启动) |
| QCOW2 | system.build.qcow2 | stereos.qcow2 | QEMU/KVM 虚拟化 |
| Kernel Artifacts | system.build.kernelArtifacts | bzImage + initrd + cmdline | 直接内核启动(绕过 UEFI/GRUB) |
构建命令统一通过 make 管理(Makefile 封装了 nix build 命令),开发者只需 make help 即可了解所有可用目标。
| 维度 | 技术选型 |
|---|---|
| 基础 OS | NixOS (nixos-26.05) |
| 构建系统 | Nix Flakes + flake-parts |
| 语言 | Nix(DSL)、Go(stereosd、agentd)、Nix 表达式 |
| 虚拟化 | QEMU/KVM、Apple Virtualization.framework、gVisor |
| 容器 | gVisor (runsc) 沙箱 |
| 包管理 | Nixpkgs |
| 通信机制 | virtio-vsock (CID:3, port 1024) |
| 会话管理 | tmux |
| 安全隔离 | Linux namespace + gVisor |
尽管 stereOS 概念先进,但它也面临明显的现实挑战:
上手门槛极高:需要同时理解 NixOS 模块系统、Nix Flakes、Nix 表达式语法,以及 QEMU/虚拟化知识。即使对于专业开发者,学习曲线也非常陡峭。
平台限制:当前仅支持 aarch64-linux、x86_64-linux、aarch64-darwin 三个平台,且镜像构建严重依赖 Nix 生态。
非通用发行版:stereOS 不是通用 Linux 发行版,它专门为 AI Agent 设计,对于普通用户场景毫无价值。
缺乏一键部署:虽然官方提供了预构建镜像下载(stereos.ai),但自定义构建和深度定制仍然需要完整的 NixOS 构建链路。
stereOS 代表了 AI Agent 基础设施领域的一个重要趋势——从「在传统 OS 上运行 Agent」到「为 Agent 专门构建 OS」。随着 AI Agent 逐步接管代码编写、基础设施管理、自动化任务,传统的操作系统模型正在显现出根本性的不适配:Agent 需要权限控制、状态持久化、可预测的环境和安全的执行边界,这些恰恰是传统 OS 难以优雅解决的问题。
NixOS 的声明式配置模型为这一方向提供了理想的技术基础,而 stereOS 则是这一理念的首次实践。随着 papercomputeco 团队持续推进(stereosd、agentd 等配套项目也在同步开发),stereOS 有望成为 AI Agent 部署的标准基础设施之一。
项目基本信息