快速开始
本页描述网页型开放智能体使用 OAuth 2.0 获取模型权益的最短路径。OAuth Token、Client Secret 和授权码都必须只由可信服务端处理。
1. 在开放平台登记智能体
准备以下信息并由平台运营人员完成登记:
- 智能体名称与公开说明;
- 精确的 HTTPS 入口或回调地址;
- 实际需要的 OAuth Scope;
- 网页允许来源或 MCP 服务地址;
- 安全审查和发布状态。
平台只在创建或轮换时展示一次 Client Secret。服务端应立即写入密钥管理系统,禁止写入 Git、浏览器构建变量、日志或 AI 上下文。
2. 请求正确的授权上下文
Personal 模型访问至少申请:
text
profile model如果网页还需要展示余额、读取归因用量或主动扣费,再按需增加:
text
balance usage chargeTeam 访问必须显式提供目标 team_id,并按操作申请 team_read 或 team_manage。不要把 Personal Token 静默改绑到 Team。
3. 用授权码交换 Token
http
POST /oauth/token
Content-Type: application/x-www-form-urlencoded
Accept: application/json
grant_type=authorization_code&client_id=<client-id>&client_secret=<client-secret>&code=<single-use-code>&redirect_uri=<registered-redirect-uri>新授权码交换得到的 Access Token 默认有效 7 天,不签发新的 Refresh Token。Token 到期或授权失效后,应引导用户重新授权或从小雅 App 重新打开智能体。
4. 查询可用模型
Personal:
http
GET /api/v1/open/models
Authorization: Bearer <access-token>Team:
http
GET /api/v1/open/teams/<team-id>/models
Authorization: Bearer <team-bound-access-token>只使用响应返回的 modelCode 和 parameterSpec。不要硬编码供应商模型名、Base URL 或内部路由。
5. 调用模型
Personal Token 可以调用兼容 Chat Completions 的模型网关:
http
POST /api/proxy/v1/chat/completions
Authorization: Bearer <access-token>
Content-Type: application/json
{
"model": "<modelCode>",
"messages": [{ "role": "user", "content": "你好" }],
"stream": true
}Team Token 需要完整工作流 Header,并且当前只能使用 "stream": false。详见 Team 上下文。
6. 处理统一响应和错误
开放 API 成功响应:
json
{ "success": true, "data": {}, "request_id": "trace-id" }开放 API 失败响应:
json
{
"success": false,
"code": "STABLE_ERROR_CODE",
"message": "Safe message",
"request_id": "trace-id"
}日志只记录稳定错误码和 request_id。不要记录 Authorization、Token、Code、Client Secret、完整用户资料或模型输入。
