# 绑定配额策略

`POST` `/api/tokenBudget/bindPolicy`

为指定身份主体绑定配额策略并开启Token额度管控，绑定后该主体的消耗会按策略周期额度计量与拦截。

- 不传 scopeAgentIds 绑定全局账户（在全部智能体上生效）；传一个或多个智能体ID则为这组智能体绑定一个智能体组账户，组内智能体共享同一份额度。
- 智能体组账户与全局账户叠加扣减、任一耗尽即拦截，适合「同一用户在不同智能体上限额不同」的场景。
- 同一主体只能绑定一个全局账户，且同一智能体只能属于主体的一个智能体组账户；重复绑定或所传智能体已在其他组中会返回错误，如需更换策略请先解绑。
- 所有智能体必须归属当前应用空间，否则返回 400。
- scopeAgentId（已废弃）与 scopeAgentIds 互斥，不能同时传。
- 仅能绑定已分配给当前应用的策略，绑定未分配的策略会返回 403 错误。
- policyId 可通过「查询配额策略列表」接口查询获取，或由租户管理员提供。
- 本接口仅支持通过API调用。

## 请求参数

### 请求头参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| X-Principal-Id | integer | 否 | 身份主体ID（Long类型）。通过API访问时必须传递以标识操作主体；通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。 |

### 请求体（JSON）

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| policyId | integer | 是 | 配额策略ID，由租户管理员在租户控制台创建后提供 |
| scopeAgentId | integer | 否 | （已废弃，请使用 scopeAgentIds）共享配额的一组智能体中任意一个智能体的ID，选填。不传或 0 表示为主体绑定全局账户（在全部智能体上生效）；传智能体ID则为主体绑定仅在该智能体上生效的单成员智能体组账户，与全局账户叠加扣减、任一耗尽即拦截。与 scopeAgentIds 互斥，不能同时传 |
| scopeAgentIds | array | 否 | 共享配额的智能体ID列表，选填。不传表示为主体绑定全局账户（在全部智能体上生效）；传一个或多个智能体ID则为这组智能体绑定一个智能体组账户，组内智能体共享同一份额度，与全局账户叠加扣减、任一耗尽即拦截。列表中每项须为正整数，所有智能体必须归属当前应用空间。与 scopeAgentId 互斥，不能同时传 |

## 响应

### 200

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

### 400

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

### 500

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

