2026年10月5日 1 分钟阅读

AI Agent 需要一台不会丢状态的机器:Agent House 微虚拟机实战

tinyash 0 条评论

让 AI 编程 Agent 在本机工作,最大的麻烦往往不是模型能力,而是工作环境:依赖装在临时目录里、多个任务互相污染、终端断开后状态难以恢复,甚至为了给 Agent 一个隔离环境而维护一套复杂的容器脚本。Agent House(客户端命令为 ahvm)提供了另一种思路:在自己控制的 Linux 服务器上运行有状态的 Linux 微虚拟机,把 Agent 的文件、网络、Shell 和快照放进一个可以暂停、恢复和删除的工作区。

它解决的不是“再开一个容器”

Agent House 的官方定位是面向 coding agent 的 self-hostable microVM。客户端运行在 Apple Silicon Mac 或 Linux x86_64 上,沙箱运行在用户控制的 Linux 服务器上;连接依赖 SSH,不要求暴露域名或公共 API 端口。默认 Ubuntu 开发镜像已经包含 Node.js LTS、Bun、Python、Git、构建工具,以及 Claude Code、Codex、OpenCode 和 Pi。

这带来三个实际区别:

  • 状态持久化:虚拟机和文件不会因为一次 Agent 会话结束而消失。
  • 隔离边界更清晰:每个工作区是一台独立的 Linux 虚拟机,而不是共享宿主机进程空间。
  • 可恢复:可以创建快照;停止非桌面 VM 时,默认会保存磁盘和内存检查点,崩溃后也能从最近检查点恢复。

不过项目 README 也明确提醒:它仍是 early-release 产品,尚未针对 hostile multi-tenant workloads 做资格认证。因此,更适合个人服务器、团队内网和开发环境,不应直接当作不可信租户的生产隔离方案。

从零连接一台家用服务器

先在本地安装客户端:

curl -fsSL https://ahvm.app/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"

也可以使用 Homebrew:

brew install mariobm/ahvm/ahvm

然后把一台 Linux x86_64 服务器注册为主机。服务器需要 KVM、systemd、glibc 2.35 以上、Python 3、OpenSSL 3 和 GNU tar,并且当前用户具备 root 或免密码 sudo 权限:

ahvm host add home --ssh root@YOUR_SERVER_IP --install
ahvm contexts
ahvm use home

--install 会在服务器端安装运行时并下载 Ubuntu 镜像。如果运行时已经安装,可以省略这个选项。SSH 负责传输加密和主机密钥检查,管理令牌不会保存到本地笔记本。

创建一个 Agent 工作区

创建工作区时可以直接指定 CPU 和内存:

ahvm create dev --cpus 2 --memory 4096

交互式创建会自动打开 Bash。进入 VM 后,可以检查预装工具:

bun --version
exit

退出 Shell 不会删除虚拟机和文件。下次可以重新打开:

ahvm shell dev

如果 VM 因空闲而停止,先执行 ahvm start dev。普通 VM 默认在无活动约 30 秒后暂停,并会在 Guest 有工作时自动恢复;连接中的 Shell 会保持唤醒。需要在不结束会话的情况下离开终端时,可以按 Ctrl-] 分离。

文件、快照与清理

Agent 生成的文件可以在本地与 Guest 之间传输,也可以在关键步骤前创建检查点:

printf 'Hello from AHVM\n' > hello.txt
ahvm files put dev ./hello.txt /workspace/hello.txt
ahvm files get dev /workspace/hello.txt ./download.txt
ahvm snapshot create dev before-change

这很适合把 Agent 任务拆成可回滚的阶段:先让 Agent 分析代码,再创建快照,随后允许它大范围修改;如果依赖升级或自动重构结果不理想,可以回到修改前的状态。重要数据仍应做离机备份,因为检查点主要解决开发迭代和崩溃恢复,不等同于完整备份系统。

任务结束后显式删除工作区和工作盘:

ahvm stop dev
ahvm delete dev

镜像也有独立的生命周期。ahvm image available 查看可用镜像,ahvm image pull ubuntu-dev 下载镜像,ahvm image default ubuntu-dev 设置默认镜像;更新镜像只影响之后创建的沙箱,已有文件系统和快照不会自动改变。

适合什么场景?

如果你只是想运行一个一次性的编译命令,容器可能更简单。Agent House 的价值在于“长期存在的开发机器”:多个 Agent 任务需要共享同一个工作区、任务经常被暂停、希望保留完整 Shell 状态,或者你不想把源代码和凭据交给第三方托管平台。它还支持预览中的桌面 VM,在同一台 Linux 服务器上运行 XFCE、Bash 和 Firefox,但桌面快照目前不支持,桌面能力也应视为实验特性。

总体来看,Agent House 没有试图把 Agent 编排、模型路由和权限策略全部包办,而是专注于一个容易被忽略的基础层:给 Agent 一台可重复使用、可检查点恢复、由开发者自己控制的机器。对于希望把“每个任务一台干净环境”升级为“每个任务一台可持续环境”的开发者,这是值得试验的方向。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。