跳到主要内容
返回时间线
OpenRouter Blog来源发表:

OpenRouter把代码沙箱搬进API请求:任意模型都能在服务端跑shell,网络默认关闭

核心概要

OpenRouter 上线 openrouter:shell 与 openrouter:bash 两个服务端代码执行工具,让模型在 API 请求内直接调用由平台托管的隔离容器执行命令,而不必由开发者自建沙箱。此前 OpenAI、Anthropic、Google 各自只为自家模型提供这类能力,自建则要自己选镜像、配算力并守住安全边界。两个工具均处于 beta,沙箱出网默认关闭,按每秒 0.0001 美元计费,新容器或休眠容器有 30 秒最低计费。

AI-generated editorial illustration: Server-Side Code Execution Tools for AI Agents, Compared

深度剖析

模型执行代码这件事从开发者自建沙箱变成请求里的一个工具条目:把工具写进 tools 数组,模型自行决定何时运行命令,平台在自己的隔离容器里执行并把输出在同一次请求中交回模型。 此前要跑代码,要么用 E2B、Modal 这类沙箱平台或自己的 Docker 容器,并自行隔离数据库与互联网、限制运行时长、维护镜像;要么依赖模型厂商自带的托管工具,而 OpenAI、Anthropic、Google 的工具只服务各自模型。 同一份请求体只改 model 字段连发六次,要求各模型在沙箱里执行 python3 -c "print(sum(range(1, 101)))",openai/gpt-5.4-mini、google/gemini-3.5-flash、anthropic/claude-haiku-4.5、deepseek/deepseek-v3.2、moonshotai/kimi-k2.6、qwen/qwen3-coder 各发起一次 shell 调用并都返回 5050。

沙箱是一个按账户与工作区划分的隔离 Linux 容器,命令在其中按顺序执行,每条命令的标准输出、标准错误和退出码或超时结果回传给模型,模型据此决定继续执行还是作答。 openrouter:shell 沿用 OpenAI 托管 shell 工具的形状并同时支持 Responses 与 Messages API,openrouter:bash 沿用 Anthropic bash 工具的形状且仅支持 Messages API;把 engine 设为 openrouter 时命令在平台沙箱内运行,默认的 auto 对 shell 会优先保留厂商原生托管 shell。 2026 年 9 月 22 日的一次请求中,模型在同一个 shell 调用里发出 cat /etc/os-release 与 python3 --version,容器报告 Ubuntu 22.04.5 LTS 与 Python 3.11.14,两条命令各自返回退出码 0。

启示与展望

演示范围限于单次请求内的短命令与有界任务,例如运行脚本、转换文件或核对结果;需要特定基础镜像、GPU 或运行数小时会话的工作,仍要使用自行运维的沙箱平台。工具目前为 beta,仅在全球 openrouter.ai 端点提供,区域内端点不提供 shell 工具,Chat Completions 会以 400 拒绝这两个工具。

延迟数字来自 2026 年 9 月 22 日一组单次请求,无 shell 工具约 2 秒返回,发起一次 shell 调用则依模型不同为 8 至 21 秒,原文明确说明这是单次采样而非基准测试。提示注入检测只检查请求中用户提供的消息内容,不检查之后工具抓取的页面、文件或命令输出,且检测并不穷尽、可能误报,原文建议先在 flag 模式测量匹配率再启用 redact 或 block。两个工具处于 beta,API 可能变化。