三套账号能不能收成一套 API 密钥:模型、数据接口和代码沙箱

模型走 OpenRouter,代码沙箱走 E2B,数据接口再单开一家。本文说明什么时候改成一套 SandBase API 密钥,以及什么时候这三家仍该分开。

One-Key Agent Stack: An OpenRouter Alternative with a Sandbox

做研究 Agent,往往还没写出有用结果,账号已经开了三个。模型走 OpenRouter 这类网关,帖子搜索再向数据供应商另办一套 API 密钥,清理脚本则丢进 E2B 这类代码沙箱。OpenRouter 和 E2B 不是二选一,它们本来就不是同一层。该问的是:模型服务、数据接口、代码沙箱能不能共用一套 API 密钥,以及什么时候不该并。

SandBase 针对的就是这件事。一套 API 密钥调用模型目录和数据接口,并打开兼容 E2B SDK 的代码沙箱。托管 Agent 走 OpenAI Agents API,但只覆盖文档写明的那些资源。自托管网关、GPU 沙箱,或者 E2B 价目表上的并发和时长,不会因为换了 SDK 地址就跟着过来。

先说结论

  • OpenRouter 管模型,E2B 管代码沙箱,数据市场是第三张账单。把前两个拿来对打,漏掉的是你还得自己维护的衔接代码。
  • 2026-11-07,一套 SandBase API 密钥可以调模型服务、数据接口和代码沙箱。沙箱暂时 $0。符合条件的数据接口,每个组织每天共享 100 次免费调用。Build 按次计费,没有订阅。
  • 只要模型市场,留 OpenRouter。要 E2B Pro 或 Enterprise 的限额,留 E2B。这边的代码沙箱是接到某个提供方和模板上的网关。
  • 下面的代码来自当时的文档。本文没有实际执行,也不写延迟、账单或成功率。

这三层分别是谁的活

工具型 Agent 上线前,依赖几乎总是这三层:

层在循环里干什么团队通常买什么
模型网关一个 OpenAI 形态的客户端,很多模型 ID,一份额度OpenRouter,或自托管的 LiteLLM
数据接口搜帖子、查目录、读网页,带 schema 和单价市场,或一堆厂商 API 密钥
代码沙箱建工作区、跑命令、读文件、再关掉E2B,或其他 Agent 沙箱

2026-11-07 读到的 OpenRouter FAQ 把第一层说清楚了:统一的 LLM API,推理价格按供应商原价透传,账单收在一处。它没有把自己写成代码沙箱,也没有写成通用数据接口目录。E2B 的计费文档写的是第三层:沙箱在跑的时候按秒收 CPU 和内存。标题如果写成「OpenRouter 还是 E2B」,通常只说明一件事:两家都可能要买,数据接口还得另找。

只选网关,看 OpenRouter 替代方案怎么选(2026)。只选代码沙箱,看 2026 最好的 AI Agent Sandbox。这篇要补的是那两篇没展开的决定:这三层还要不要继续拆开。

三套账号会在哪翻车

第一天很少缺功能。先出问题的是衔接。

三套 API 密钥,三种故障。 OpenRouter 额度用完返回 402,CI 里放错了 E2B 的密钥返回 401,数据供应商报错又被 Agent 当成「没搜到」。三家都按自己的规则在工作。你的循环分不清是没钱了,还是这个话题真的没有帖子。

一张账单对不上一次运行。 同一天的公开价格:OpenRouter 购买额度收 5.5%(最低 $0.80),推理不加价,加密货币支付是 5%。E2B Hobby 月费 $0,一次性 $100 额度,20 个并发,单次连续运行 1 小时。Pro 是每月 $150 再加用量,100 个并发,连续运行 24 小时。定价页上,运行中的沙箱是每 vCPU 秒 $0.000014、每 GiB 秒 $0.0000045。数据厂商再来一张发票。单位不一样。本文没有测 token 数和沙箱秒数,所以不会合成一个「每月省多少」。

循环还是你在维护。 工具 schema、沙箱的创建和销毁、模型的 base URL,都在你的仓库里。容易放烂的是写死的 E2B 域名、另一个账号里的模板名,以及把数据请求重试了两次的逻辑。换 base URL 删不掉这段代码,只是不用再把三个账号对在一起。

一套 SandBase API 密钥实际能调什么

2026-11-07,首页、文档、定价页和沙箱文档对四块能力是对齐的。价格以各自页面为准,下面不收成一句广告。

模型服务。 首页和当天的 SKILL.md(版本 0.3.9)都写着「2,000+ models and APIs across 100+ platforms」。这是站点自己的说法,不是我们清点的。翻目录、看 schema 和单价不扣余额。卡片上的价格就是成交价,部分卡片有折扣,定价页写的上限是 35%。抽查的 Claude Sonnet 5.5 是每百万 token 输入 $1.70、输出 $8.50,相对 $2 / $10 的标价打了 15% 折,上下文 1M。下单前再看卡片,折扣会变。

数据接口,带每日免费额度。 符合条件的数据接口,每个组织每天共享 100 次,00:00 UTC 重置。超出按标价计费。模型调用不占这 100 次。首页举例是用同一套 API 密钥 POST /v1/api/twitter/web/search-timeline。字段和价格以 Twitter/X API 目录 为准。这里不放响应 JSON:这次没有真实调用,编一份比空着更糟。

代码沙箱,E2B SDK,同一套 API 密钥。 沙箱页 把它写成兼容 E2B 的网关:创建工作区、跑命令、取回文件、再停止。创建、运行、停止目前不扣余额。可能有公平使用上限,改价前会先公告。模型调用和数据接口照常计费。隔离、网络、暂停和恢复,取决于所选提供方和模板。工作目录不是安全边界。快速开始 针对 E2B SDK 2.51.0,要求同时设置 E2B_API_URL 和 E2B_DOMAIN。只设域名的话,2.51.0 会多拼一个 api. 主机。不要假设上游默认模板名 base 在你的组织里存在。先列出模板,选 buildStatus 为 ready 的。

SandBase 沙箱页上的创建、运行、收集、停止流程 SandBase 沙箱页:兼容 E2B,同一套 API 密钥,以及示意性的创建、运行、收集、停止。

托管 Agent,以及明确不支持的调用。 Build Agent 存的是带版本的配置:模型、说明、Skills、MCP 连接。Session 跑其中一个版本。OpenAI 兼容说明 写明:Agents、Sessions、事件、items、turns 和 Skills 遵循 OpenAI Agents API,官方 SDK 把 base_url 指到 https://api.sandbase.ai/v1 即可。内联 MCP 工具会返回 400。environment 必须是 openai_hosted。multi_agent、computer use、vaults 会被拒绝。MCP 连接和 Secrets 走 HTTP,不是 SDK 方法。首页说 SandBase 托管 OpenAgentCore 运行时。这是 Agent 服务,不是说 SandBase 训练了别人的模型。

另一条路是 在 AI 工具里使用,面向 Claude Code、Codex 和 Cursor。开源页 是 SDK、CLI 和示例。想在助手里发现工具,走这两处。循环在你自己的服务里,用下面的片段。

和「OpenRouter + E2B + 数据厂商」并排看

表里的价格是 2026-11-07 各家公开页面上的,会变。这不是排行。

需求OpenRouter + E2B + 数据厂商SandBase(2026-11-07 公开说法)
模型OpenRouter 统一 LLM API,推理按供应商价,买额度收 5.5%(最低 $0.80)一套 API 密钥,卡片价,部分折扣最高 35%。Sonnet 5.5:$1.70 / $8.50 每百万 token
数据接口另办市场或厂商密钥。这里不替他们声称有每日免费额度同一套 API 密钥。每组织每天 100 次符合条件的免费调用,00:00 UTC 重置。模型另计
跑代码E2B。Hobby 月费 $0、一次性 $100、20 并发、连续 1 小时。Pro 每月 $150 加按秒 CPU/内存。定价页:只有 CPU,没有 GPU 沙箱兼容 E2B 的网关。沙箱暂时 $0,可能有公平使用上限,改价前公告。隔离看提供方和模板
托管 Agent自己写循环,或再买一个宿主上文列出的 Agents API 资源。没有自托管 Session 环境
账单OpenRouter 额度、E2B 套餐加用量、数据厂商发票一个余额。Build 按次、无订阅。Start 为 $0 并带试用额度。Scale 为定制

什么时候继续用 OpenRouter 或 E2B

只要模型市场,就留 OpenRouter。要 E2B 自己的限额,就留 E2B:Pro 的 100 并发和 24 小时连续运行写在 计费文档 上,SandBase 沙箱页没有照抄。E2B 定价页 写沙箱只有 CPU,Enterprise 用量有每月 $3,000 的最低承诺;计费文档把 Enterprise 写成定制,没有重复这个最低额。2026-11-07 两页都没有提供 GPU 沙箱。网关进程、供应商密钥和日志必须留在自己网络里,就继续用自托管 LiteLLM。托管 API 密钥是这次合并的理由,也是报文不能出网时不该合并的理由。

这些情况也先别迁,依据是沙箱快速开始和 Agents 兼容说明:组织的模板列表里没有你要的模板;你需要提供方不支持的暂停、网络策略或端口;你需要 self_hosted Session、内联 MCP、computer use、multi-agent、vaults、模板构建或快照。其中好几项会直接返回 400。装上 SDK 不等于提供方的能力都对齐。

文档里的第一次调用,不是压测

首页的示例是搜帖、在沙箱里去重、再让模型写简报,并标明输出是示意。这里也一样。2026-11-07 核对的是文档和目录,不是一次计时运行。

API 密钥放在服务端。先读数据接口的 schema。X 的例子用 SandBase API 密钥发 POST,业务数据只从 outputs[0].data 读,缺了就让这一步失败。别发明响应里没出现过的分页参数。E2B SDK 指到 SandBase,跑一条能核对的命令,在 finally 里关掉沙箱。创建超时仍可能留下实例。托管循环用 openai-python 3.13.0 或 3.24.0,或 openai-node 7.28.0。先打开事件流再发输入。Node 上要强制 HTTP/1.1,否则同一条 HTTP/2 连接上的流和 POST 可能互相卡住。

下面是这些页面当时公布的接法。

Shell
export E2B_API_URL="https://sandbox.sandbase.ai"
export E2B_DOMAIN="sandbox.sandbase.ai"
export E2B_DEBUG="false"
unset E2B_SANDBOX_URL
export E2B_API_KEY="$SANDBASE_API_KEY"

按快速开始安装 e2b==2.51.0,列出模板,再导出 SANDBASE_TEMPLATE_ID。这段 Python 跟快速开始一致:两分钟寿命,显式销毁,不打印 SDK 对象。

Python
import os
import sys
import uuid
from e2b import Sandbox

options = {"request_timeout": 30}
template = os.environ["SANDBASE_TEMPLATE_ID"]
run_id = str(uuid.uuid4())
sandbox = None
failed = False

print("Run ID:", run_id)
try:
    sandbox = Sandbox.create(
        template,
        timeout=120,
        metadata={"quickstartRunId": run_id},
        **options,
    )
    result = sandbox.commands.run("printf hello-sandbase", timeout=15)
    if result.exit_code != 0 or result.stdout != "hello-sandbase":
        raise RuntimeError("Command verification failed")
    print("Sandbox ID:", sandbox.sandbox_id)
except Exception:
    print("Sandbox example failed; retain the run ID")
    failed = True
finally:
    if sandbox is not None:
        try:
            Sandbox.kill(sandbox.sandbox_id, **options)
        except Exception:
            print("Cleanup failed; delete the recorded Sandbox ID")
            failed = True

sys.exit(1 if failed else 0)

Agent 客户端用的是兼容说明里的写法。模型 ID 也是那一页上的 DeepSeek V4 Flash。创建 Agent 不会自动跑起来。还要开 Session,而且 SDK 要求 environment={"type": "openai_hosted"},尽管 SandBase 只在自己的托管云里运行。

SandBase 上的 DeepSeek V4 Flash 模型卡 SandBase 上的 DeepSeek V4 Flash 模型卡,也就是本文 Agents API 示例链接的那个模型。

Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["SANDBASE_API_KEY"],
    base_url="https://api.sandbase.ai/v1",
)

agent = client.beta.agents.create(
    model="deepseek/deepseek-v4-flash",
    name="Research assistant",
    instructions="Keep output brief.",
)
print(agent.id)

首页给出的示意数据请求是:

Shell
curl --fail-with-body \
  -X POST "https://api.sandbase.ai/v1/api/twitter/web/search-timeline" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword": "AI agents", "search_type": "Top"}'

上线当天再对一下 API 页上的 keyword 和 search_type。不想自己养这条循环,就把 set up 和 SKILL.md 的地址贴进 Claude Code、Codex 或 Cursor,并在浏览器里确认登录。那条路是给编码工具里发现接口用的,代替不了服务端的 API 密钥。

带真实调用记录的另一篇是 用 X、YouTube、Exa 和 Firecrawl 做个人研究助手。

Build 怎么计费

定价页 在 2026-11-07 分成三种:Start 为 $0,带试用额度;Build 按次计费,没有订阅;Scale 为定制。「没有订阅」只说 Build,不包括 Scale。

SandBase 定价页上的 Start、Build 和 Scale 2026-11-08 的 SandBase 定价页:Start、Build、Scale。符合条件的数据接口每天 100 次免费调用,代码沙箱标为暂时免费。

当天每个方案都包括:部分模型最高 35% 折扣,卡片价即成交价;每个组织每天 100 次符合条件的数据接口免费调用,00:00 UTC 重置;浏览目录 $0;代码沙箱暂时 $0;失败的模型或数据接口调用不收费。Activities 里能看到状态和费用。一次 Agent 运行是把这些调用收进一条轨迹,不是另有单价的计量项。没有你自己的 token 和沙箱秒数,就不要用 OpenRouter 的 5.5% 和 E2B 的 $150 去减出一个「每月胜出金额」。

常见问题

怎样用一套 API 密钥同时拿到模型、数据接口和代码沙箱?

选一个用同一套 API 密钥提供这三层的平台。在 SandBase,这套密钥调目录,用指向 sandbox.sandbase.ai 的 E2B SDK 开代码沙箱,并在上面的兼容范围内创建 Agents API 的 Agent。Build 按次计费,没有订阅。跑之前先看卡片价。

它算 OpenRouter 的替代,还是 E2B 的替代?

两层都沾,再加上数据接口。只要模型市场,买 OpenRouter。只要带 E2B 限额的代码沙箱,买 E2B。烦的是三家一起养,再考虑并到一处。

和分开买网关、沙箱比,价格差在哪?

Build 没有订阅。2026-11-07 代码沙箱暂时 $0,符合条件的数据接口每个组织每天 100 次免费,失败调用不收费,浏览目录免费。OpenRouter 公开的费用在买额度,不在推理加价。E2B 是套餐加上按秒的 CPU 和内存。决定那一周再看 定价页 和对方页面,不要把本文的数字当成长期价目。

原来的 E2B 代码能留着吗?

快速开始覆盖的操作,而且程序已经从环境变量读地址、模板在 SandBase 上可见,通常可以。换成 SandBase API 密钥,改 E2B_API_URL 和 E2B_DOMAIN,删掉写死的主机,用列表代替对 base 的假设。控制面创建成功,不能证明每个提供方功能都可用。

一套 API 密钥能代替 Anthropic 或 OpenAI 账号吗?

目录里列出的模型,页面的说法是用 SandBase API 密钥调用,不必再去模型厂商单独注册。你走的仍是 SandBase 的托管路径。你拿不到那个厂商的控制台,也拿不到兼容表里标明不支持的 OpenAI 功能。

三套账号和三张发票已经比功能本身更烦,而且 SandBase 公布的范围够用,再考虑收成一套 API 密钥。2026-11-07 这意味着:卡片价的模型、每组织每天 100 次符合条件的数据接口、对着 sandbox.sandbase.ai 的 E2B SDK 2.51.0,以及一份写明拒绝项的 Agents API。只要模型市场,留 OpenRouter。要 Pro 或 Enterprise 限额,留 E2B。报文不能出网,留自托管网关。

从 SandBase 登录 创建 API 密钥,先跑通快速开始,再搬生产循环。上面的片段是文档,不是一次测出来的运行。