TokenDance Gateway
统一模型 API 网关的公开接入说明、凭据边界和正在产品化的能力。
它是什么
TokenDance Gateway / 词元跳动 API 网关提供统一模型 API 入口。开发者和 Agent 可以把 OpenAI-compatible SDK 的 base URL 指向 Gateway,并使用 TokenDance API key 调用模型。
Gateway 的公开产品化目标是让密钥、额度、用量、模型列表、常见错误和 SDK 示例变成可读、可治理、可审计的产品体验。
凭据边界
| 凭据 | 用途 | 不能做什么 |
|---|---|---|
| TokenDance API key | 调用 https://api.vectorcontrol.tech/v1 模型 API | 不能登录 TokenDance ID 或管理后台 |
| TokenDance ID session | 浏览器登录、管理面身份、低风险个性化 | 不能直接当作模型 API bearer token |
| Provider upstream key | 仅在受控服务端使用 | 不能出现在公开文档、前端代码或卡片 payload |
实现名称不是公开产品名
公开页面统一使用 TokenDance Gateway / 词元跳动 API 网关。NewAPI、MetAPI、Codex2API、Portal、mihomo proxy-gateway 等名称只用于说明内部实现或运行组件,不能作为面向用户的产品品牌堆在公开导航、标题或营销文案里。
需要解释实现边界时,可以写“Gateway 由多个受控运行组件支撑”,但不要暴露私有部署路径、主机名、上游 key、管理 token、数据库路径或回滚命令。
OpenAI-compatible 调用
下面是公开安全示例。真实 key 只应来自受控密钥发放流程,模型名以当前可访问模型为准。
curl https://api.vectorcontrol.tech/v1/chat/completions \
-H "Authorization: Bearer $TOKENDANCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "your-model",
"messages": [{"role": "user", "content": "Hello"}]
}' 快速接入
- 确认你拿到的是 TokenDance API key,而不是 TokenDance ID access token。
- 把 SDK base URL 指向 https://api.vectorcontrol.tech/v1。
- 先调用 models 或最小 chat completions 请求确认 key、模型名和网络路径可用。
- 把 key 放在服务端 secret store、本地环境变量或受控 CI secret 中,不放前端 bundle。
- 记录 request id、模型名、状态码和错误码,便于支持排查。
环境变量约定
| 变量 | 用途 | 公开文档要求 |
|---|---|---|
| TOKENDANCE_API_KEY | TokenDance Gateway 模型 API 调用凭据 | 只展示变量名,不展示真实值 |
| TOKENDANCE_BASE_URL | OpenAI-compatible base URL,默认 https://api.vectorcontrol.tech/v1 | 可写默认 URL;不要写内部网关或管理面地址 |
| TOKENDANCE_MODEL | 调用时使用的模型名或别名 | 公开示例使用 your-model;真实模型清单以受控发布为准 |
| TOKENDANCE_REQUEST_ID | 支持排查时记录的请求 id | 可在 issue 中提供脱敏 request id,不贴完整 provider payload |
最小验证请求
接入时先跑只读或低成本请求,确认 key、base URL、模型名和网络路径正确,再接入 Agent、CI 或后端服务。
$env:TOKENDANCE_BASE_URL = "https://api.vectorcontrol.tech/v1"
curl.exe "$env:TOKENDANCE_BASE_URL/models" -H "Authorization: Bearer $env:TOKENDANCE_API_KEY" Node / TypeScript SDK 示例
Gateway 兼容 OpenAI SDK 的 baseURL 配置。公开文档只展示环境变量名,不展示真实 key 或组织内部模型名。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.TOKENDANCE_API_KEY,
baseURL: "https://api.vectorcontrol.tech/v1",
});
const result = await client.chat.completions.create({
model: process.env.TOKENDANCE_MODEL ?? "your-model",
messages: [{ role: "user", content: "Hello from TokenDance Gateway" }],
});
console.log(result.choices[0]?.message?.content); Python SDK 示例
Python 侧同样使用 OpenAI-compatible client。应用应在服务端读取环境变量,不要把 key 打包进前端或提交到仓库。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENDANCE_API_KEY"],
base_url="https://api.vectorcontrol.tech/v1",
)
response = client.chat.completions.create(
model=os.environ.get("TOKENDANCE_MODEL", "your-model"),
messages=[{"role": "user", "content": "Hello from TokenDance Gateway"}],
)
print(response.choices[0].message.content) 面向 Agent 工作负载的配置
| 客户端 | 建议配置 | 注意事项 |
|---|---|---|
| AgentHub | 在 Runtime adapter 或受控服务端配置 Gateway base URL 和 API key | Desktop/Web 不保存模型 key;Hub session 不是模型 API key |
| Codex / Claude Code 风格 CLI | 使用 OpenAI-compatible base URL 与本地环境变量 | 不要把 key 写进项目配置文件、issue、截图或日志 |
| TokenDanceCode | 优先通过环境变量连接 Gateway,作为实验性 CLI 验证入口 | OpenAI provider 映射已存在;CLI 自动选择仍不作为默认承诺 |
| CI / automation | 使用受控 CI secret 注入 `TOKENDANCE_API_KEY` | 不要把真实响应、prompt、文件路径原样复制到公开文档 |
模型、错误和状态
| 主题 | 公开文档当前承诺 | 正在完善 |
|---|---|---|
| Models | Gateway 以 OpenAI-compatible API 暴露模型调用入口 | 公开模型列表、模型别名、上下文长度和可用性说明 |
| Errors | 错误应包含稳定 code、message 和 request id | 常见 provider、额度、限流、鉴权错误码表 |
| Rate limits | 额度和限流由 Gateway 统一治理 | 每 key、每用户、每组织的可见额度和重置时间 |
| Status | API 已上线,产品化文档持续完善 | 公开状态页、provider 健康和降级语义 |
常见错误码方向
| 错误类型 | 读者应该先检查 | 文档状态 |
|---|---|---|
| 鉴权失败 | Authorization header、key 是否属于 TokenDance Gateway、是否误用了 TokenDance ID access token | 错误码表完善中 |
| 模型不存在 | model 名称、模型别名、是否对当前 key 开放 | 公开模型列表完善中 |
| 额度或限流 | key 所属团队、额度、重置窗口、并发请求 | 额度视图完善中 |
| Provider 降级 | request id、时间、模型名、是否有降级或重试 | 状态语义完善中 |
| 请求格式错误 | OpenAI-compatible payload、messages、tools、stream 参数 | SDK 示例持续补齐 |
支持排查时提供什么
- 请求时间、HTTP 状态码、错误 code、request id 和模型名。
- SDK 名称与版本、base URL 是否为 https://api.vectorcontrol.tech/v1。
- 是否使用 TokenDance API key;不要贴真实 key、完整 Authorization header 或 provider 原始响应。
- 如果来自 AgentHub、TokenDanceCode、CI 或自动化任务,说明客户端类型和脱敏任务场景。
Key 管理原则
- 每个 key 应有用途、owner、额度和轮换责任。
- 服务端应用使用 secret store;本地 CLI 使用本机环境变量;CI 使用受控 CI secret。
- 前端页面、浏览器 sessionStorage/localStorage、公开仓库、公开 issue 和截图都不能保存真实 key。
- 怀疑泄漏时先轮换 key,再清理日志和截图,不要只删除公开页面。
获取访问
公开站点不发放真实 API key。TokenDance API key 应通过受控发放流程获取,并按团队、用途和额度登记。TokenDance ID 登录只证明人或组织身份,不等于模型 API 调用凭据。
正在完善
- 公开 models、限流、常见错误和 SDK 示例。
- API key 发放、轮换、额度、用量查询和团队归属文档。
- 状态语义、管理入口和 TokenDance ID 登录边界说明。
- 面向 AgentHub、Codex、Claude Code 等 Agent 工作负载的推荐配置。