2026年5月31日 3 分钟阅读

用 Crabbox Pond 为 AI Agent 搭建弹性运行时沙箱集群

tinyash 0 条评论

AI Agent 做测试时最头疼的问题是什么?环境隔离、资源上限、多 Agent 网络互通——尤其是当你需要同时跑多个沙箱环境做集成测试时,每次手动开 VM、配网络、等环境就绪,一两个小时就没了。

Crabbox 是一个基于 Go 语言的开源远程测试执行控制平面(551 stars, MIT 协议),最近发布的 Pond 特性更是直接瞄准了这个问题。它不是又一个 CI 工具,而是让你(或者你的 AI Agent)通过一条命令就能申请一台云 VM,同步当前代码,运行命令,然后释放——整个过程从申请到 SSH 就绪一般在 30 秒以内。

更关键的是 Pond:它允许你把多台 VM 组成一个「运行时池」,池内的机器可以通过 Tailscale 直接互访,实现多 Agent 协作测试。本文带你上手完整的配置和实战场景。

快速安装

Crabbox 是一个 Go 二进制 CLI,安装非常简单:

brew install openclaw/tap/crabbox
crabbox --version

不用 Homebrew?直接从 GitHub Releases 下载 macOS、Linux 或 Windows 的二进制即可。前置依赖:gitsshssh-keygenrsynccurl

核心概念

Crabbox 的工作流程可以拆成三步:

  1. Warmup(预热):CLI 通过 Cloudflare Worker Broker 请求一台云 VM
  2. Sync(同步):rsync 将你的本地代码(包括 dirty checkout)同步到远端
  3. Run(运行)+ Release(释放):执行命令、流式输出、完成后释放资源

数据面(SSH、rsync、命令执行)始终从 CLI 直接连接到 VM,Broker 只管理租约状态和费用上限。这意味着没有中间数据泄露风险——对 AI Agent 沙箱场景特别重要。

Pond:运行时池的核心

Pond 是 Crabbox 的多 VM 编排特性。当你需要多个沙箱环境协同工作时(例如数据库 + API 服务 + 测试 Agent),传统的做法是手动维护每个 VM 的 IP 和连接参数。Pond 用一条 --pond 标签把多个租约绑定在一起:

crabbox warmup --pond agent-test --slug api  --provider hetzner --tailscale
crabbox warmup --pond agent-test --slug db   --provider hetzner --tailscale

crabbox run --id api -- "DB_HOST=db.cbx DATABASE_URL=postgres://user@db.cbx/myapp go test ./..."

三个关键概念:

1. 自动发现crabbox pond peers --pond agent-test --json 返回所有成员,包含 slug、leaseID、provider、传输平面和暴露的端口信息。AI Agent 可以直接用这个 API 来发现当前可用资源。

2. 三种传输平面(Transport Planes)

平面特点适用场景
TailscaleP2P 网状网络,.cbx DNS多 Agent 协作测试
URL BridgeHTTP(S) 端点浏览器/API 沙箱(E2B、Modal)
SSH-meshssh -L 隧道转发混合云/私有基础设施

3. 统一释放crabbox pond release agent-test 一条命令释放池中所有 VM,不产生残留。

实战场景一:AI 编码 Agent 的集成测试沙箱

你的 AI 编码 Agent(Claude Code、Codex 等)生成了一组修改,需要在真实的云环境中跑集成测试。Crabbox 可以直接嵌入到 Agent 的 workflow 中:

crabbox warmup --pond ci-run --slug runner --provider hetzner --tailscale

crabbox run --id runner -- "pnpm install && pnpm test:e2e"

crabbox pond release ci-run

整个过程对 Agent 来说是透明的——它只需要调用 crabbox run -- pnpm test,其余的资源管理由 Crabbox 自动完成。

实战场景二:多 Agent 分布式测试(Pond 的核心用例)

当你的 Agent 需要测试分布式系统时(例如一个微服务集群),Pond 就派上用场了:

crabbox warmup --pond microservice-test --slug gateway --provider hetzner --tailscale
crabbox warmup --pond microservice-test --slug user-svc --provider hetzner --tailscale
crabbox warmup --pond microservice-test --slug order-svc --provider gcp --tailscale

crabbox pond peers --pond microservice-test --json | jq '.members[] | {slug, transport, endpoint}'

crabbox run --id gateway -- "USER_SVC_URL=http://user-svc.cbx:3000 go test ./test/e2e/..."

注意这里 provider 可以混用——gateway 和 user-svc 跑在 Hetzner,order-svc 跑在 GCP,但它们通过 Tailscale 组成同一张内网。数据不会经过 Broker,Agent 之间的所有流量直连。

实战场景三:AI Agent 批量回归测试

每天清晨自动触发批量回归测试,每个分支在一个独立的 Pond 中测试:

#!/bin/bash
BRANCHES=("feat/agent-rbac" "fix/rate-limit" "chore/upgrade-deps")

for BRANCH in "${BRANCHES[@]}"; do
  POND_NAME="regression-${BRANCH//\//-}"
  crabbox warmup --pond "$POND_NAME" --slug runner --provider hetzner --tailscale &
done
wait

for BRANCH in "${BRANCHES[@]}"; do
  POND_NAME="regression-${BRANCH//\//-}"
  crabbox run --id "$POND_NAME" -- "git checkout $BRANCH && pnpm test:ci" &
done
wait

echo "All tests complete. Releasing ponds..."
for BRANCH in "${BRANCHES[@]}"; do
  crabbox pond release "regression-${BRANCH//\//-}"
done

与其他工具对比

特性CrabboxGitHub Actions自建 JenkinsE2B Sandbox
启动速度~30s~60s5-10min~5s
多 VM 编排PondMatrix需插件单 VM
本地代码同步✅ rsync❌ 需推送✅ 需插件
允许 dirty checkout
费用上限✅ 内置✅ 按分钟❌ 需自建
开源✅ MIT
混合云✅ 6+ provider❌ 仅 Azure

注意事项

Pond 目前是 v0.x 预览特性pond= 标签键已稳定,但元数据格式和命令标志可能在 v1.0 前发生变化。生产使用建议锁定版本。

费用管理:Broker 内置了活跃租约上限和月度费用上限,可以通过 crabbox config set max-monthly-spend 50 设置每月上限 $50。

SSH 密钥:每次租约会生成一个一次性 SSH 密钥,租约释放后自动废弃,没有凭据残留风险。

快速上手总结

brew install openclaw/tap/crabbox

crabbox warmup --pond my-test --slug runner --provider hetzner
crabbox run --id runner -- "npm test"
crabbox pond release my-test

crabbox warmup --pond cluster --slug svc-a --provider hetzner --tailscale
crabbox warmup --pond cluster --slug svc-b --provider hetzner --tailscale
crabbox pond peers --pond cluster --json
crabbox run --id svc-a -- "SVC_B=http://svc-b.cbx:8080 curl svc-b.cbx:8080/health"
crabbox pond release cluster

如果你已经在用 AI 编码 Agent 做自动化测试,或者需要为多 Agent 场景搭建弹性沙箱环境,Crabbox Pond 是一个值得关注的开源选择——它解决了一个真实且普遍的痛点:AI Agent 需要快速、隔离、可编排的云上运行环境

项目地址github.com/openclaw/crabbox(551 stars, MIT 协议)

Pond 文档crabbox.sh/features/pond.html

安装brew install openclaw/tap/crabbox

发表评论

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