Rate Limits — 500 円 / user モデルと API units
設計の基本方針
TAS-CHA は 個人 500 円 / 組織 500 円 × user を共通の単価としており、 API 連携でも別 Tier を切らない。
代わりに以下で公平利用を担保する:
- API units (月次): 全リソースを共通の "重み付け" 単位で計測
- 短期 burst (60 秒固定 window): 同時並行の濫用を抑制
- どちらも paid seats に比例して増える
quota / burst の既定値はプランごとに定義され、 paid seats に応じて評価される。
推奨既定値
| 制御対象 | 値 | 備考 |
|---|---|---|
| 月次 API units | 20,000 units × paid seats | 個人 1 seat でも 20,000 |
| 月次 minimum | 20,000 units | 組織 1 名でも同じ |
| billing entity burst | max(300, 60 × seats) req/min | 上限 cap 3,000 req/min |
| API key burst | 120 req/min | key 単位の隔離 |
| Actor burst | 120 req/min | user/app/agent ごと |
| Write burst | 30 req/min | 高コスト操作向け |
| Webhook delivery | 600 deliveries/min | 超過は queue で遅延、 破棄しない |
| OpenClaw agent run | 10 runs/min, 3 concurrent/entity | queue 化前提 |
| MCP tool call | 120 req/min | - |
組織は apiUnitsPerSeatPerMonth × paid seats を最小保証 (apiUnitsMonthlyMinimum) と比較し、 大きい方を採用する。
API unit weight
| 操作 | units |
|---|---|
REST read (例: GET /v1/rooms) | 1 |
| REST write | 3 |
| File metadata / list | 1 |
| File download / upload initiation | 5 |
| Webhook delivery attempt | 1 |
| MCP read tool | 2 |
| MCP write tool | 5 |
| Connector action run | 10 |
| OpenClaw agent run | 20 |
高コスト操作だけ重みを大きくして原価と濫用リスクを吸収する。
評価順
すべての /v1/... リクエストは以下の順で評価される:
- 認証 (API key or OAuth bearer)
- actor 解決 (user / app / agent)
- scope 検査
- ドメイン権限 (org / room / RBAC / room type)
- 短期 burst limit (entity / api_key / actor / write group)
- 月次 API units reservation
- idempotency 検査 (write のみ)
- ドメイン処理
- 成功時 confirm / 失敗時 release
monthly quota は 予約パターン: 処理前に units を reserve し、 処理失敗時には release する。 確定後 confirmed_units に積まれる。