我如何通过将云沙箱替换为本地 microVM 来降低 OpenAI Agent 的延迟

发布: (2026年4月28日 GMT+8 22:06)
3 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for How I cut my OpenAI Agent latency by replacing cloud sandboxes with a local microVM

介绍

几天前,我在使用全新的 OpenAI Agents SDK 构建一个编码代理。 我接入了官方的一个云沙箱(它们整体上都不错)。 代理能够工作,但感觉非常迟缓。

日志显示,代理每个任务平均会进行约 15 次工具调用。 由于沙箱托管在云端,物理路径如下:

My Agent Runtime → Internet → Cloud Sandbox → MicroVM → Internet → My Agent Runtime

每一次 exec_command 都需要跨公共互联网进行两次往返——每个任务产生 30 次网络跳跃。 提供商宣传的 “90 ms 冷启动”,但每次工具调用的持续往返时间(RTT)开销严重影响了用户体验。

我尝试了 SDK 的默认本地选项(Linux 上的 bubblewrap)。 它很快,但它依赖进程级的系统调用过滤,将不受信任的 LLM 生成代码直接在宿主内核上运行感觉风险太大。

寻找折中方案:BoxLite

我想要云 VM 的硬件隔离,同时又希望本地进程的零延迟。于是我发现了 BoxLite——本质上是沙箱领域的 SQLite。它是一个嵌入式微型 VM,使用 KVM(Linux)或 Hypervisor.framework(macOS)在你的机器上直接启动专用的客体内核。

BoxLite 没有需要配置的守护进程、没有 Docker 套接字,也不需要 root 权限。只需一条 pip 命令即可安装:

pip install boxlite-openai-agents

一行代码切换

我不需要重写代理逻辑;只需在 RunConfig 中更换沙箱客户端:

from boxlite_openai_agents import BoxLiteSandboxClient, BoxLiteSandboxClientOptions

# ... agent setup ...

await Runner.run(
    agent,
    "Write fizzbuzz.py for n=15 and run it.",
    run_config=RunConfig(
        sandbox=SandboxRunConfig(
            client=BoxLiteSandboxClient(),  # <-- Changed this line
            options=BoxLiteSandboxClientOptions(
                image="python:3.12-slim"
            ),
        ),
    ),
)

结果

延迟立刻下降。由于微型 VM 与代理运行时在同一进程中运行,互联网跳跃从 30 次降至 ——通信现在是微秒级的进程间通信(IPC)。

此外,BoxLite 使用 QCOW2 快照,因此我不再需要为每个会话重新安装 pandas 等包。可以对 VM 状态进行快照,第二天恢复时只需不到一秒。

如果你在笔记本电脑上构建编码代理,已经厌倦了云端的延迟和超时,建议尝试本地微型 VM。它彻底改变了我的工作流。

0 浏览
Back to Blog

相关文章

阅读更多 »