首页 / 体育 / 中超 / 正文

sandbox(AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境)

放大字体  缩小字体 来源:中国茶叶知识网 2026-04-17 17:25  浏览次数:11

AI Agent 在执行复杂任务时,常需在浏览器、代码执行、文件系统之间切换。传统多沙箱方案面临环境割裂、数据搬运、鉴权复杂等问题。AIO Sandbox 通过一个 Docker 镜像整合所有能力,提供统一文件系统与鉴权,并支持镜像定制,提升了 Agent 任务执行与交付效率。

随着 LLM 的持续演进,AI 的应用形态经历了三代跃迁:

  • Copilot:辅助协作,提升效率

  • Agent 能够自主感知环境、规划步骤、调用工具,能够像人类一样操作计算机:自动浏览网页收集信息、生成并运行代码分析数据、执行系统命令管理文件,甚至通过可视化界面完成复杂的多步骤操作。这种能力使 Agent 的交付成果接近甚至超越人类专业水准。

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    环境割裂:多个单功能沙盒(如 E2B 支持代码执行,Browserbase 支持浏览器)迫使 Agent 通过 NAS/OSS 跨沙箱传输数据,增加延迟与复杂度。如:深度研究 Agent 完成『将一篇论文 Paper 做成 PPT』需在多沙箱间交换数十个中间文件(JSON 配置、图表图片、预览截图等),增加整个 Agent 系统复杂度和开销。

  • AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    定制困难:不同类型的 Agent 需要预装不同的技术栈,传统沙箱提供统一的预装环境,既无法满足所有 Agent 的个性化需求。

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    安全隔离难:既要让 Agent 拿到真实系统能力(网络、文件、浏览器、GPU),又要强隔离避免越权与数据外泄。

  • 浏览器环境复杂度高:反自动化与指纹风控,CDP 不稳定性、带用户名密码的代理支持不完善、GUI 操作缺失。

  • 介绍

    官网:sandbox.agent-infra.com

  • API:sandbox.agent-infra.com/api

  • AIO(All-in-One)沙箱

    开箱即用:通过 /mcp协议直连沙箱能力,同时提供 API / SDK 定制沙箱工具集。

    定制化:各垂直场景的 Agent 需配套领域工具与依赖;AIO 以统一镜像基座,用约定式路由和服务配置支持按需扩展。

    人工接管:提供 浏览器 VNC、Code Server、Terminal,支持任务中途人工接管与调试。

    安全鉴权:JWT Bearer 访问控制;对无法携带 Header 的链接提供短时票据(Short-Lived Ticket)。

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    示例

    帮我设计一个有趣的网站,为在上小学的孩子介绍侏罗纪和白垩纪时期的蜥脚类恐龙。希望网站是卡通风格的。

    Replay:

    使用的 AIO 功能

    DOM 操作(/v1/browser/info

  • 视觉操作(/v1/browser/actions

文本编辑器工具(/v1/file/str_replace_editor

端口转发(反向代理)

搜索关于字节跳动Seed1.6模型的新闻,然后以现代风格编写一个网页并部署

Replay:

AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

根据这张 OSWorld 图片,请在互联网上查找最新信息并为其设计一个现代化的网站。

Replay:

AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

玩 Poki 2048 游戏

Replay:

AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

更多见:https://seed-tars.com/showcase/ui-tars-2

云端

https://www.volcengine.com/docs/6662/1851199

AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

本地

本地 Docker 启动

整体

沙箱定制程度依次递增:

  • Custom Toolset(工具 / Skills 扩展):不改镜像,基于 SDK / API 增加或编排工具(如增加web_search 搜索);同时扩展出 Skills 实现特定沙盒任务的自动化处理。

  • Sandbox 可扩展架构

    AIO Sandbox 组件图

    面向 Agent 的浏览器环境,核心在于提供出 CDP和 VNC,主流 Browser Use 框架都可以直接使用;

    AIO Sandbox Browser 架构

    CDP (Chrome Devtools Protocol)是一种用于与 Chrome 或 Chromium 浏览器通信的协议,通过 WebSocket 提供浏览器控制 API,可以执行导航与加载、DOM 操作、JS 执行/调试、网络拦截与模拟、截图与渲染、安全与权限等。

    访问 http://localhost:9222/json/version,其中webSocketDebuggerUrl 就是 CDP 地址:

    $ curl http://localhost:9222/json/version{   "Browser": "Chrome/141.0.7390.66",   "Protocol-Version": "1.3",   "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",   "V8-Version": "14.1.146.11",   "WebKit-Version": "537.36 (@95681a3c3d516c397b75ff45b8980c1088666775)",   "webSocketDebuggerUrl": "ws://localhost:9222/devtools/browser/a6c5f19f-5d24-4bed-ba08-9c15cf5aeedb"}

    Navigate www.toutiao.com

    GUI 视觉操作

    不同于基于 CDP 的截图,视觉的截图 /v1/browser/screenshot 是带 Tabs(即整个浏览器窗口),操作也是面向整个浏览器窗口。

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    基于 CDP 的页面截图(Page)

    统一动作空间

    action_type

    必需参数

    MOVE_TO

    x, y

    MOVE_REL

    x_offset,y_offset

    CLICK

    -

    MOUSE_DOWN

    -

    MOUSE_UP

    -

    RIGHT_CLICK

    -

    DOUBLE_CLICK

    -

    DRAG_TO

    x, y

    DRAG_REL

    x_offset,y_offset

    SCROLL

    -

    TYPING

    text

    PRESS

    key

    KEY_DOWN

    key

    KEY_UP

    key

    HOTKEY

    keys (数组)

    例如:["ctrl", "c"]

    WAIT

    等待

    -

    当 Browser Use 遇到要登录的情况,一般需要人工接管,需要提供可交互的浏览器界面,目前有两种做法:

    1. 前端通过 CDP 连接,在 Canvas 上实时重绘完整浏览器界面;我们把前端部分封装了一个组件 @agent-infra/browser-ui。如下左为实际浏览器,右为 browser-ui 投屏:

    两种接管方式的差异大致如下:

    VNC

    技术原理

    通过 CDP 控制浏览器,Canvas 渲染内容

    RFB (Remote framebuffer)

    传输内容

    仅浏览器当前 page 内容(默认没有 Tabs,可以单独实现)

    高(10-50 Mbps)

    延迟

    较低(10-50ms)

    不易断连

    CPU占用

    低(仅浏览器渲染)

    高(需要完整桌面环境)

    控制范围

    仅浏览器内部页面

    基础(鼠标键盘模拟)

    多窗口支持

    仅单个浏览器窗口

    可以操作本地文件

    命令行解释器

    文件操作

    文件增改查:封装文件读取/写入/列目录/新建/上传/下载等基础 I/O,配合路径校验与权限控制,覆盖通用文件操作场景。

  • view(查看文件或目录,含行范围)

  • insert(按行插入,旧版支持)

  • 代码执行

    MCP Servers 聚合器

    /mcp 支持 MCP Servers 过滤

    代理

    正向代理:Browser Use Agent 可访问私有/全球网络

  • 正向代理

    AIO Sandbox 正向代理原理

    在 Chromium 官方文档(见文末参考5)写明不会使用任何嵌入在代理设置里的用户名/密码(例如 http://user:pass@host:port 这种),认证要走单独的质询弹窗,影响整个 Browser Use 使用(如下图):

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    反向代理

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    提供两种访问 Sandbox 内部服务端口的方法:

    1. subpath 子路径转发:会遇到非常多问题:对于路由敏感服务(如前端项目)会因为额外的 /proxy|absproxy/${端口} 路径造成资源匹配 404。

    Agent 在沙箱里会产生用户数据,为了在不侵入、不修改任何既有业务路由配置、同时不增加未来扩展的路由配置的心智负担的前提下,实现 AIO Sandbox 全局统一鉴权,在内部 Nginx 网关层设计了“非对称加密+JWT”反向代理架构来实现鉴权:

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    启动服务(带公钥开启鉴权),使用环境变量 JWT_PUBLIC_KEY

  • export JWT_PUBLIC_KEY=$(cat public_key.pem | base64)JWT_PUBLIC_KEY="${JWT_PUBLIC_KEY}"

    业务服务用私钥生成一个有效期为 1 小时的 JWT,以下是简化的脚本来生成 JWT,实际中业务后端应使用成熟的 JWT 库:

    # 这是一个简化的脚本来生成JWT,实际中业务后端应使用成熟的 JWT 库 base64url_encode { openssl base64 -e -A | tr '+/''-_' | tr -d '='; }header='{"alg":"RS256","typ":"JWT"}'exp_time=$(($(date +%s) + 3600))payload="{\"exp\":${exp_time}}"to_be_signed="$(echo -n "$header" | base64url_encode).$(echo -n "$payload" | base64url_encode)"signature=$(echo -n "$to_be_signed" | openssl dgst -sha256 -sign private_key.pem | base64url_encode)jwt="${to_be_signed}.${signature}"echo "JWT已生成: ${jwt}"

    短时票据鉴权示例(以 VNC 页面访问为例):直接访问无法通过加 Header 方式完成鉴权,只能通过 ?ticket=票据以 query 参数方式发起访问。

    • 客户端构建并使用 VNC URL:现在,就可以使用获取到的 ${ticket} 变量来构建 VNC URL 并发起访问了。

    # Bash脚本模拟客户端拼接URLvnc_url="http://localhost:8080/vnc/index.html?ticket=${ticket}&path=websockify%3Fticket%3D${ticket}"
    echo"客户端构建的最终URL: ${vnc_url}"
    # 模拟访问 (实际应在浏览器中进行)# curl -I "${vnc_url}"

    定制镜像

    服务进程目录:/opt/gem/supervisord/*.conf

  • 如果在 AIO 镜像基础上定制服务和路由,可参考以下镜像代码:

    FROM enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest
    # ----------------------# 安装额外系统依赖(若有)# installed path: /usr/bin/*# ----------------------RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ ${your_system_dep} \ --no-install-recommends; \ # clean up apt-get clean && \ rm -rf /var/lib/apt/lists/*;
    # ----------------------# npm 安装(若有)# # ----------------------RUN npm i -g ${your_npm_package}
    # ----------------------# python pip 安装(若有)# installed path: /usr/local/bin/*# ----------------------RUN pip install ${your_python_package}
    # 添加自定义 Server 服务COPY ./supervisord.agent_server.conf /opt/tiger/run/supervisord/agent_server.conf# 绑定 Nginx 路由COPY ./nginx.agent_server.conf /opt/gem/nginx/nginx.agent_server.conf
    # # 若不需要 AIO 里的服务,可进行删除,例如 Code Server# ## 删除 Code Server 进程和路由# RUN rm -rf /opt/gem/supervisord/supervisord.code_server.conf# ## 删除 Code Server 路由# RUN rm -rf /opt/gem/nginx/code_server.conf

    借助 fern(见文末参考6)将 AIO Sandbox 里的接口文档直接转成 Python / Go / Node.js SDK,以 Python 为例,几行代码串联起 AIO Sandbox 里的核心功能:

    from agent_sandbox import Sandbox
    client = Sandbox(base_url="http://localhost:8080")
    # Execute Shellshell_res = client.shell.exec_command(command="ls -la")print(shell_res.data.output) # /home/gem
    # Browser Screenshotscreenshot = client.browser.screenshotprint(screenshot)
    # Get Browser CDPbrowser_info = client.browser.get_browser_infocdp_url = browser_info.data.cdp_url # ws://
    # Read Filefile_res = client.file.read_file(file="/home/gem/.bashrc")print(file_res.data.content)

    browser-use

    browser-use + AIO Sandbox

    LangGraph-DeepAgents

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    完整代码见:langgraph-deepagents.py

    可使用 API / SDK 来组合 Agent 所需要的高阶工具集,例如 link_reader给 url 地址返回页面内容:

    from openai import OpenAIfrom agent_sandbox import Sandboximport json
    client = OpenAI( api_key="your_api_key",)sandbox = Sandbox(base_url="http://localhost:8080")
    tools = [{ "type": "function", "function": { "name": "link_reader", "description": "渲染并读取网页,返回标题、正文与最终URL(基于CDP)。", "parameters": { "type": "object", "properties": { "url": {"type": "string", "format": "uri"}, "timeout_ms": {"type": "integer", "default": 30000} }, "required": ["url"] } }}]
    asyncdeflink_reader(url: str, timeout_ms: int = 30_000) -> dict: cdp_url = sandbox.browser.get_browser_info.cdp_url asyncwith async_playwright as p: browser = await p.chromium.connect_over_cdp(cdp_url) try: page = await browser.new_page await page.goto(url, wait_until="networkidle", timeout=timeout_ms) title = await page.title text = await page.evaluate("document.body.innerText || ''") return {"final_url": page.url, "title": title, "text": text[:8000]} finally: await browser.close

    目前最佳的公有云部署形态是函数计算,并基于 Sandbox 指定实例访问能力:

    https://www.volcengine.com/docs/6662/1851199

    AIO Sandbox:为 AI Agent 打造的一体化、可定制的沙箱环境nerror="javascript:errorimg.call(this);">

    总结与展望

    后续,我们将围绕稳定性、可观测性生态集成持续打磨,不断完善评测体系与最佳实践,推动 AIO Sandbox 在更多大规模、高要求的 Agent 应用场景中实现稳健落地与高效运行。

    名词解释

    解释

    在 LLM 语境下,AI Agent 是某种能自主理解意图、规划决策、执行复杂任务的智能体。Agent 并非ChatGPT 升级版,它不仅告诉你“如何做”,更会帮你去做。如果CoPilot是副驾驶,那么Agent就是主驾驶。类似人类“做事情”的过程,Agent的核心功能,可以归纳为三个步骤的循环:感知(Perception)、规划(Planning)和行动(Action)。

    Copilot 是指一种基于人工智能的辅助工具,通常与特定的软件或应用程序集成,旨在帮助用户提高工作效率。Copilot 系统通过分析用户的行为、输入、数据和历史记录,提供实时建议、自动化任务或增强功能,帮助用户做出决策或简化操作。

    All-In-One,指将多种能力(Browser、Code Execution、Shell、File、可视化接管、鉴权、代理等)在单一镜像/实例内集成,减少跨环境切换与数据搬运。

    受控、隔离的执行环境。用于运行浏览器、代码或命令行,控制资源与权限,降低对宿主系统的影响与风险。

    CDP (Chrome Devtools Protocol)是一种用于与 Chrome 或 Chromium 浏览器通信的协议。它允许开发人员通过发送命令和接收事件来与浏览器进行交互,以便进行调试、分析和自动化浏览器操作。CDP 提供了一组定义了浏览器行为和功能的 API(Application Programming Interface)。

    VNC 是一套“远程桌面共享/控制”技术与工具族,基于 RFB(Remote framebuffer)协议 工作。核心思想:把远程主机的屏幕帧缓冲(像素)编码后通过网络传输到客户端,同时把客户端的键盘、鼠标事件回放到远程主机,实现跨平台远程操作。

    Model Context Protocol(模型上下文协议) 是一个开放协议,它规范了应用程序如何为LLMs提供上下文。可以将MCP想象为AI应用的USB-C端口。就像USB-C提供了一种标准方式,让你的设备连接到各种外设和配件,MCP也提供了一种标准方式,让你的AI模型连接到不同的数据源和工具。

    Agent 通过浏览器完成搜索、登录、点击、表单填写、下载等任务的总称,既可走 CDP 指令,也可走 GUI 视觉操作。

    OpenHands 是一个开源的 AI 软件开发代理平台(AI Software Developer Agent Platform),用于训练、评测和运行能够在真实开发环境中“自主编程”的大语言模型(LLM)。它最初以 OpenDevin 名义发布,后更名为 OpenHands,由 All Hands AI 社区维护。

    Docker:

    CmdRunAction:

    str_replace_editor:

    Sandbox Fusion:

    Chromium 官方文档:

    fern:

    完整代码:

    UI-TARS-2 Technical Report: Advancing GUI Agent with Multi-Turn Reinforcement Learning:

    AIO Sandbox: All-in-One Sandbox for AI Agents & Developers:

    Agentic AI基础设施实践经验系列(二):专用沙盒环境的必要性与实践方案:

    Writing effective tools for AI agents—using AI agents:

    Unifying the Computer Use Action Space:

    https://scrapybara.com/blog/unified-action-space

  • 打赏
    0相关评论
    热门搜索排行
    精彩图片
    友情链接
    声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
    违法不良信息举报邮箱:115904045
    头条快讯网 版权所有
    中国互联网举报中心