作者千风阿里云函数计算 AgentRun 全新发布后我们整理了「探秘 AgentRun」系列文章本系列将梳理企业落地 Agent 常见难题给出具体解法助力 Agentic AI 快速走进生产级环境。欢迎加入「函数计算 AgentRun 客户群」与我们交流钉钉群号134570017218。引言VibeCoding 的终极形态——“所见即所得”代码生成的进化从单纯的代码补全Copilot到直接生成可运行的 UI 组件和页面AI 编程助手正在经历一次体验跃迁用户不再只看到静态代码而是所见即所得——生成即运行、即预览。这种「边写边看」的 VibeCoding 体验正在成为下一代 AI 编程助手的标配。背后的工程挑战大模型只负责「写」谁来负责「跑」在云端安全、快速地执行不受信任的 AI 生成代码并对外暴露 Web 访问是构建此类 AI Agent 的核心门槛多端口需求一个现代前端项目如 React、Vue往往不止占用一个端口——主页面可能在 5173HMR热模块替换需要独立通道Mock API 可能占用 3000。若只能暴露单一端口前端开发服务器与预览能力将严重受限。隔离与弹性代码不可信必须在隔离沙箱中执行同时用户希望秒级看到结果这就要求沙箱具备秒级冷启动与按需扩缩容能力。AgentRun Sandbox阿里云函数计算推出的AgentRun Sandbox正是为上述场景设计的一站式执行基座秒级冷启动、免运维、原生支持公网访问并在此基础上提供了多端口动态路由能力——单一入口即可按端口精准转发到沙箱内的任意服务。这使得「生成代码 → 云端运行 → 即时预览」的闭环得以在安全、可控的架构下实现是构建「在线代码预览」与全栈 VibeCoding 的理想基础设施。核心特性解析AgentRun Sandbox 多端口访问模式为什么前端预览也需要多端口运行一个现代前端项目时往往同时存在多个监听端口场景典型端口说明主应用5173Vite 默认用户访问的页面HMR / 热更新5173 或独立热模块替换的 WebSocket 等Mock API3000、8080 等前端自带的 Mock 或 BFF 服务自定义服务8000–9999用户npm run或python -m http.server等若沙箱只暴露一个固定端口上述多服务无法同时被正确访问。多端口访问模式使平台能够通过同一入口根据「目标端口」将请求精准转发到沙箱内对应进程从而完整支持前端开发服务器与自定义 Web 应用的预览。双模式详解按需选择灵活适配AgentRun Sandbox 支持两种多端口访问方式可依据自身网络与域名条件选择。泛域名模式Wildcard Domain Mode机制通过子域名区分端口流量。约定格式为{目标端口}-{沙箱实例标识}.{您的泛域名}例如5173-abc123.sandbox.example.com表示访问该沙箱实例内的5173端口3000-abc123.sandbox.example.com表示访问同一沙箱内的3000端口。优势路由语义清晰完全模拟真实的多子站、多端口场景前端代码中的 BaseURL、代理配置与本地开发一致无需为沙箱做特殊适配。单域名模式Path-based / Header-based Mode机制仅有一个域名时通过 HTTP 请求头传递「沙箱 ID」与「目标端口」X-Sandbox-ID: {沙箱ID} X-Sandbox-Port: {目标端口}例如X-Sandbox-Port: 5173表示将本次请求转发到该沙箱实例的 5173 端口。优势在无法配置泛域名解析、或存在严格域名白名单的网络环境下仍可完成多端口访问兼容性极强。在 AgentRun 控制台配置 Sandbox 与域名1. 申请域名并备案在 DNS 服务商添加 CNAME 记录将域名指向 AgentRun 网关地址格式为{uid}.agentrun-data.cn-hangzhou.aliyuncs.com其中{uid}为阿里云账号 ID。2. 创建 Sandbox 域名在 AgentRun 控制台创建 Sandbox 域名选择「泛域名模式」或「单域名模式」并填写对应域名。3. 可选启用 HTTPS上传 SSL 证书以支持 HTTPS 访问。4. 创建沙箱模板选择模板类型如「代码解释器」「浏览器」「AIO 沙箱」等完成模板创建。5. 创建沙箱在模板详情中创建沙箱实例并记录返回的沙箱 ID。6. 访问方式泛域名模式使用https://{port}-{sandboxID}.{domain}访问沙箱内指定端口。单域名模式请求时携带 HeaderX-Sandbox-ID: {sandboxID}、X-Sandbox-Port: {port}即可访问对应端口。端口有效范围为3000–65535系统保留端口如 5000、5001、3000 等由网关与内置服务使用不对外作为用户自定义端口暴露。OpenClaw 实战——让大模型生成的页面瞬间「上线」架构设计一种典型的 VibeCoding 链路是用户通过某个 Channel如 IM、钉钉与OpenClaw交互要求生成程序或 HTML 页面 →LLM生成 HTML/JS 或 React 等源码 → 调用AgentRun Sandbox Skills在沙箱内执行该程序如启动 HTTP 服务→ 依赖泛域名生成预览 URL → 用户直接点击链接访问运行中的应用。整体流程可概括为用户 → Channel → OpenClaw → LLM 生成代码/HTML → AgentRun Sandbox Skill创建沙箱、执行代码/命令、生成预览 URL → 泛域名返回预览 URL → 用户浏览器访问对应端口AgentRun 为 OpenClaw 带来云上沙箱能力agentrun-aio-sandbox-skill是基于阿里云 AgentRun AIOAll-In-One沙箱封装的一套 OpenClaw Skill将沙箱的创建、代码执行、Shell 命令执行、多端口预览域名生成与沙箱销毁等能力以工具Tools形式暴露给 OpenClaw。接入该 Skill 后OpenClaw 无需在本地或自有服务器部署任何执行环境即可在对话中按需调用云上沙箱大模型根据用户意图自动完成「创建沙箱 → 写入文件 / 执行代码或命令 → 生成预览链接 → 适时释放资源」的完整链路用户获得真正的「对话即运行、即预览」体验。Skill 提供的主要能力包括能力说明创建沙箱create_sandbox在 AgentRun 上按已配置的 AIO 模板创建隔离沙箱实例返回沙箱 ID 与访问 base_url供后续调用使用。执行 Python 代码execute_python_code在指定沙箱内执行 Python 代码支持多轮对话下的上下文保持context_id适合数据分析、脚本运行等场景。执行 Shell 命令execute_shell_command在沙箱内执行 Shell 命令适合启动常驻服务如python3 -m http.server port配合多端口域名实现 Web 预览。生成预览域名generate_preview_domain按规则{port}-{sandbox_id}.{泛域名}生成指定端口的访问域名用户通过该链接即可在浏览器中访问沙箱内对应端口的服务。销毁沙箱destroy_sandbox释放云上沙箱实例停止计费并清理资源。通过这一 SkillOpenClaw 从「仅能生成代码」升级为「能生成并在云上运行代码、并返回可访问的预览链接」将 AgentRun Sandbox 的秒级冷启动、多端口路由与按量计费能力与对话式交互结合是构建 VibeCoding 与全栈预览场景的轻量级集成方式。实践前准备重要在 OpenClaw 中接入 AgentRun 能力前需要先完成以下准备1. 在 AgentRun 控制台创建 Sandbox 模板选择「AIO 沙箱」等类型创建模板并记录模板名称如your-aio-template。2. 配置 Sandbox 泛域名在 AgentRun 中创建并绑定泛域名如xxx.sandbox.example.com并确保 DNS 已正确 CNAME 到 AgentRun 网关。后续预览 URL 将按{port}-{sandboxID}.{domain}规则生成。3. 将 AgentRun Sandbox Skill 添加到 OpenClaw将 agentrun-aio-sandbox-skill[1]以 Skill 形式接入 OpenClaw使 LLM 可调用「创建沙箱」「执行 Python 代码」「执行 Shell 命令」「生成预览域名」「销毁沙箱」等能力。Skill 所需环境变量如阿里云 AK/SK、Region、模板名称、泛域名需在运行环境中正确配置。重要说明当前提供的agentrun-aio-sandbox-skill 仅用于测试与演示用于验证多端口预览链路与 OpenClaw 集成方式请勿直接用于生产环境。典型交互流程简述。1. 用户向 OpenClaw 发起请求「帮我写一个带按钮的 HTML 页面并给我预览链接。」OpenClaw 调用 LLM 生成 HTML 或简单前端代码。通过 AgentRun Sandbox Skill创建沙箱 → 在沙箱内写入文件并执行python3 -m http.server port --bind 0.0.0.0或等价命令→ 使用generate_preview_domain(wildcard_domain, port, sandbox_id)得到预览域名。将https://{port}-{sandbox_id}.{domain}返回给用户用户点击即可在浏览器中访问该沙箱内对应端口的服务实现「生成即运行、即预览」。示例效果展示对话记录预览链接效果架构揭秘基于 Nginx 网关的多端口路由实现本节从实现视角说明在 Serverless 场景下面对海量并发的动态沙箱实例请求如何精准、低延迟地被送到「指定沙箱的指定端口」。AgentRun Sandbox 镜像内采用OpenRestyNginx Lua作为统一网关实现单一入口、多端口动态路由。流量分发的核心问题平台对外只暴露一个入口端口如 5000而沙箱内部同时存在多个服务Code Interpreter 5001、Browser Tool 3000、用户自定义 5173/8080 等。网关必须回答两个问题当前请求要访问哪个端口以及如何把请求正确转发到该端口端口信息来自两种渠道Host 头中的泛域名如5173-xxx.sandbox.com或HTTP 头如X-Sandbox-Port: 5173。Nginx 网关规则引擎解析与派发网关由单一location /承接所有请求在 Lua 中分两阶段完成路由阶段一rewrite** _ by _ lua _ block路由派发先读取X-Sandbox-Port头若无再从Host中用正则提取子域名前缀端口如string.match(host, ^(%d)%-) 得到5173。若得到有效端口在 3000–65535 范围内不进行路径匹配直接进入下一阶段由proxy_pass动态转发到127.0.0.1:$target_port。若无端口信息则按请求路径派发到内置服务的命名 location如/health→health_aggregated/execute、/contexts等 → Code Interpreter/api/v1/→ Browser Tool通过ngx.exec(xxx)做内部重定向。阶段二access _ by _ lua _ block动态端口赋值当阶段一未做路径派发时根据 Header 或 Host 解析出的端口设置变量target_port、proxy_host等。最终执行proxy_pass http://127.0.0.1:$target\_port\将请求转发到沙箱内对应端口。这样设计保证了有端口信息时一律按端口转发无端口时才走路径匹配与默认后端如 5001 Code Interpreter。从而避免「用户访问 5173 上的 /health」被误匹配到网关自身的健康检查。为何不用 Nginx 自带的 location 匹配Nginx 的location规则中精确匹配如location /health会优先于通用location /。若直接写 location /health则像5173-xxx.sandbox.com/health的请求也会被命中无法转发到用户 5173 端口的服务。因此实现上采用所有面向「内置服务」的路径均改为命名 location如health_aggregated、path_ci、api_v1。命名 location 不参与外部请求的自动匹配只能通过 Lua 的ngx.exec()显式派发。唯一可被匹配的 location为location /在 Lua 中先判断「是否有端口」再决定「动态转发」或「按路径派发到命名 location」。这样就从机制上保证了端口优先于路径的语义。请求全链路简述用户请求 Sandbox 域名如 5173-xxx.sandbox.example.com → AgentRun 平台网关会话亲和、鉴权、路由到对应沙箱实例 → 沙箱实例内的 NginxOpenResty监听 5000 → Lua 解析 Host 得到端口 5173 → proxy_pass http://127.0.0.1:5173 → 沙箱内监听 5173 的用户进程如 Vite处理请求不同沙箱实例之间由 AgentRun 与函数计算做会话隔离与网络隔离同一沙箱内Nginx 仅转发到本机回环地址的指定端口不暴露内部服务到公网从而在支持多端口的同时保证安全与可观测性如自定义日志格式中记录target_port、port_source等。总结与展望AgentRun Sandbox 的多端口特性本质上是补齐了「AI 全栈开发」中最关键的一环把生成代码变成真正的生成应用——在隔离沙箱中运行、通过泛域名或 Header 按端口访问、秒级冷启动与按量计费让 VibeCoding 从「能写」走向「能跑、能看」。行动呼吁Call to Action若你正在构建 AI 编程助手、在线 IDE 或全栈预览能力欢迎将 AgentRun Sandbox 的多端口能力集成到自己的产品中。可从以下入口开始产品与文档函数计算 AgentRun[2]。控制台AgentRun 控制台[3]快速创建模板与沙箱、配置泛域名。演示与 Skillagentrun-sandbox-demos[4]含 agentrun-aio-sandbox-skill适用于测试与演示生产请基于官方 API/SDK 自建。欢迎加入「函数计算 AgentRun 客户群」交流多端口与沙箱实践钉钉群号134570017218。快速了解函数计算 AgentRun一句话介绍函数计算 AgentRun 是一个以高代码为核心的一站式 Agentic AI 基础设施平台。秉持生态开放和灵活组装的理念为企业级 Agent 应用提供从开发、部署到运维的全生命周期管理。函数计算 AgentRun 架构图AgentRun 运行时基于阿里云函数计算 FC 构建继承了 Serverless 计算极致弹性、按量付费、零运维的核心优势。通过深度集成 AgentScope、LangChain、RAGFlow、Mem0 等主流开源生态。函数计算AgentRun 将 Serverless 的极致弹性、零运维和按量付费的特性与 AI 原生应用场景深度融合助力企业实现成本与效率的极致优化平均 TCO 降低 60%。让开发者只需专注于 Agent 的业务逻辑创新无需关心底层基础设施让 Agentic AI 真正进入企业生产环境。相关链接[1] agentrun-aio-sandbox-skillhttps://github.com/devsapp/agentrun-sandbox-demos/tree/add-agentrun-aio-sandbox-skill/agentrun-aio-sandbox-skill[2] 函数计算 AgentRunhttps://www.aliyun.com/product/fc/agentrun[3] AgentRun 控制台https://functionai.console.aliyun.com/cn-hangzhou/agent/explore[4] agentrun-sandbox-demoshttps://github.com/devsapp/agentrun-sandbox-demos