文档中心>云函数>AI 应用>Agent 执行引擎>All-in-One 沙箱应用(内测中)

All-in-One 沙箱应用(内测中)

最近更新时间:2025-12-25 15:18:31

我的收藏
All-in-One 沙箱应用是腾讯云推出的高度集成云端开发与执行环境解决方案。该产品通过将开发与交互所需的核心工具(如 VSCode 编辑器、 Python 和 Node.js 运行时、浏览器环境、Shell 终端、文件系统)封装在单个沙箱环境中,为 AI Agent、自动化任务、云端开发和安全代码执行提供开箱即用的标准化开发平台。解决了传统分离式工具链中环境不一致、文件传输繁琐、组件间交互困难等痛点,实现了真正意义上的一体化和无缝操作。
本文介绍如何在 Agent 执行引擎一键部署和使用 All-in-One 沙箱应用。
说明:
该功能处于内测阶段,如需使用,请提交 内测申请
该功能目前仅支持在中国北京及香港,和新加坡地域使用。
All-in-One 沙箱应用镜像来源于社区开源软件镜像 AIO Sandbox,本平台不参与维护。若您使用此镜像:
您有义务遵守相应的第三方规则,包括但不限于任何可能附随的开源软件许可协议。
在用于生产环境之前,您应当进行充分的验证和测试,并主动修复可能存在的缺陷。
如果使用过程中对 AIO Sandbox 项目有更多需求,需要 提交 Issue 由社区支持。

前置依赖

首次使用 Agent 执行引擎,需要先参考 Agent 执行引擎访问授权 完成授权,才能部署 All-in-One 沙箱应用。

操作步骤

部署应用

1. 登录 Serverless 控制台,单击左侧导航栏的 Agent
2. Agent 应用引擎页面,选择沙箱工具,单击创建应用,进入应用创建流程。

3. 填写基础配置
配置项
说明
应用类型
选择 All-in-One 沙箱。
应用名称
应用的唯一标识,只能包含字母、数字、下划线、连字符,以字母开头,以数字或字母结尾,2~60个字符。
应用名称创建后不可修改。
地域
选择资源归属地域。
4. 填写环境配置
配置项
说明
内存
设置资源类型对应的规格,详情请参见 函数算力支持。默认 3072MB。
环境变量
在配置中定义的环境变量可在函数运行时从环境中获取到。详情请参见 环境变量
5. 填写网络配置
配置项
说明
公网访问
启用后,则可以访问公网资源。默认未启用。
私有网络
启用后,应用可以访问同一个私有网络下的资源,详情请参见 环境变量。默认未启用。
6. 填写日志配置:启用日志投递,可将函数运行日志实时投递到指定位置。详情请参见 日志投递配置。默认启用。
注意:
腾讯云日志服务 CLS 为独立计费产品,可能会产生日志服务费用,具体请查看 CLS 计费详情
7. 填写隔离、并发配置:
实例安全隔离
如果启用,保证一个沙箱独占一个实例,沙箱销毁时,实例也销毁。
如果不启用,多个沙箱可能共享一个实例。
配置基于会话单实例并发模式,该配置主要用于标记客户端请求以哪种方式携带沙箱 ID、配置沙箱生命周期、底层实例支持的沙箱并发数和请求,其中本应用中“会话”的配置对应的是“沙箱”的配置。具体配置项说明如下:
配置项
说明
示例
会话 Key 来源
标记客户端请求以哪种方式携带沙箱 ID,系统根据此标记来决定要调度到某个沙箱上。可选项:Http Header、Cookie、Query String,三选一。不同选项支持场景说明如下:
Http Header
通过 HTTP 请求头传递客户端会话标识,后台确保相同标识的请求被路由到同一个沙箱。适用于 WebSocket 协议、gRPC 协议、HTTP 协议。支持客户端自定义沙箱 ID,也支持服务端生成。
Cookie
将携带相同 Cookie 信息的请求路由到同一个沙箱。支持客户端生成沙箱 ID,也支持服务端生成。
Query String
将携带相同 Query String 信息的请求路由到同一个沙箱,需要客户端生成沙箱 ID。
Http Header
会话 Key 名称
Key 用途及命名规则:
用途:沙箱的唯一标识名称。
命名要求:必须以字母开头;非首字母可包含数字、字母、下划线(_)、中划线(-);长度限制5-40 个字符(含边界值)。
Key 对应 Value(沙箱 ID )生成逻辑及字符要求:
生成逻辑:
来源为 Http Header、Cookie:支持客户端在首次调用时自主生成 Value;若客户端未生成,系统将自动生成。
来源为 QueryString:首次 Value 需由客户端生成。
字符要求:含数字、字母、下划线(_)、中划线(-)长度限制128个字节。
x-sandbox-id
会话最长生命周期
从沙箱创建、使用到最终销毁的全过程,单位秒。超过生命周期后,服务端将自动销毁沙箱。最长可设置7天,默认21600秒。
21600秒
会话最长空闲时间
用户在一段时间内没有进行任何操作,导致沙箱进入空闲状态,单位秒。最长不得超过会话最长生命周期,默认1800秒。超过最长空闲(Idle)时间后,服务端将按照“会话空闲超时处理策略”处理沙箱。
1800秒
会话空闲超时处理策略
如果您开启了“实例安全隔离”,会话空闲超时处理策略可选自动销毁或者自动暂停。
如果您没有开启“实例安全隔离”,会话空闲超时处理策略默认自动销毁。
自动销毁
单实例最大并发会话数
单实例在同一时间内支持的最大沙箱数,默认值为20,最大支持100。
20
单实例最大并发请求数
单实例在同一时间内支持的最大请求数,默认为10,最大支持100。
10
8. 单击提交,开始部署应用。可点击应用构建详情,查看应用构建日志。



获取应用访问地址

应用部署完成后,单击应用名称,进入应用详情页面,即可获取应用访问地址。


集成示例

Langchain Deepagents 集成 AIO 沙箱

import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from deepagents import create_deep_agent
from langchain.chat_models.base import init_chat_model
import os

# Ensure localhost bypasses proxy
os.environ['NO_PROXY'] = 'localhost,127.0.0.1'


async def main():
# Collect MCP tools
mcp_client = MultiServerMCPClient({
"sandbox": {
"url": "https://******-******.ap-hongkong.tencentscf.com/mcp/", # 替换成沙箱应用的访问地址
"transport": "streamable_http",
"headers": {"x-sandbox-id": "my123456"}
},
})

mcp_tools = await mcp_client.get_tools()

# Create agent
agent = create_deep_agent(
tools=mcp_tools,
system_prompt="You are a deepResearch agent that can use the sandbox to answer questions.",
model=init_chat_model(
model="deepseek-chat",
base_url=os.getenv("DEEPSEEK_BASEURL"),
api_key=os.getenv("DEEPSEEK_API_KEY"),
),
)

# Stream the agent
async for chunk in agent.astream(
{"messages": [{"role": "user", "content": "打开百度网站查询深圳天气"}]},
stream_mode="values"
):
if "messages" in chunk:
chunk["messages"][-1].pretty_print()

if __name__ == "__main__":
from dotenv import load_dotenv
# 环境变量要配置 DEEPSEEK_BASEURL、DEEPSEEK_API_KEY
load_dotenv()
asyncio.run(main())

调用 AIO 沙箱执行代码

import os
from agent_sandbox import Sandbox

def main():
client = Sandbox(base_url="https://******-******.ap-hongkong.tencentscf.com",headers={"x-sandbox-id": "my123456"})

session = client.jupyter.create_session(
kernel_name="python3",
)
client.jupyter.execute_code(
code="foo=1",
kernel_name="python3",
session_id=session.data.session_id
)
result = client.jupyter.execute_code(
code="print(foo)",
session_id=session.data.session_id,
kernel_name="python3",
)
print("Code execution result:", result.data.outputs[0].text)
client.shell.exec_command(command="pip3.12 install agent-sandbox")

result = client.jupyter.execute_code(
code="""from agent_sandbox import Sandbox
sandbox = Sandbox(base_url= "https://******-******.ap-hongkong.tencentscf.com",headers={"x-sandbox-id": "my123456"})
context = sandbox.sandbox.get_context()
print(context)
""",
kernel_name="python3.12",
)
print("After installed code result:", result.data.outputs[0].text)


if __name__ == "__main__":
main()

沙箱实例接口

MCP

1. 查看 MCP 工具列表(可选)。
1.1 在终端输入如下命令,输入后自动跳转至 Inspector 页面。
npx @modelcontextprotocol/inspector
1.2 填写配置后,点击连接
配置项
说明
Transport Type
下拉选择 Streamable HTTP
URL
沙箱应用访问地址增加 /mcp 后缀,例如:https://******-******.ap-hongkong.tencentscf.com/mcp
Authentication
Custom Header 增加会话 ID(沙箱 ID) 的配置,例如配置为 x-sandbox-id

2. 在服务中配置 MCP 客户端。

{
"mcpServers": {
"sandbox": {
"url": "https://******-******.ap-hongkong.tencentscf.com/mcp/",
"transport": "streamable_http",
"headers": {"x-sandbox-id": "******"}
}
}
}

API

API 使用说明请参见:https://sandbox.agent-infra.com/api

SDK

Python SDK 示例如下。将示例中的 base_url 替换为您的沙箱应用访问地址。

from agent_sandbox import Sandbox

client = Sandbox(base_url="https://******-******.ap-hongkong.tencentscf.com",headers={"x-sandbox-id": "my123456"})

ctx = client.sandbox.get_context()
print(ctx)

result = client.shell.exec_command(command="ls -la")
print(result)

沙箱实例管理

1. 在沙箱应用详情页面,单击函数名称,进入函数管理页面。

2. 选择会话管理页签,即可查看会话状态。