用途:该能力用于配置和读取 ibl.ai 组织的 LLM 花费上限(spend cap)。上限是管理员设定的 LLM 最高成本,作用于三个范围:tenant(整个组织,每组织一个)、agent(每个 Agent 一个)、user_agent(某用户在某 Agent 上的显式上限)。
主要能力:每个上限包含滚动周期(day/week/month/year,按日历对齐)、美元限额 max_cost_usd、执行模式(block 超限后拒绝后续对话;alert_only 只通知不阻止)以及告警阈值(限额的比例,触发接近上限的告警)。被 block 时对话请求返回 HTTP 429,响应体标明命中的周期,但不含具体金额。计数由 ClickHouse 定期对账,只读展示,可用于 UI 渲染进度条。
使用方式:基础地址为 https://api.iblai.app/dm,须保留 /dm 前缀;每个请求带 Authorization: Api-Token $IBLAI_API_KEY。api/ai-mentor/ 与 api/ai-agent/ 为别名前缀,任选其一并保持一致。配置类端点需平台管理员权限(RBAC 动作前缀 Ibl.Mentor/SpendCaps/*),状态端点允许任何已验证成员读取自己的状态、管理员读取任意用户。PUT 为 upsert:新建返回 201,覆盖返回 200;DELETE 和 PUT 属破坏性/改预算操作,需先与用户确认。示例:curl -X PUT "$dm/api/ai-mentor/orgs/$IBLAI_ORG/spend-caps/tenant/" -H "$auth" -H 'Content-Type: application/json' -d '{"max_cost_usd": "200.00", "interval_type": "month", "enforcement": "block", "alert_thresholds": [0.75, 0.9]}'。读端点包括组织上限、Agent 上限列表与单个 Agent 上限、单 Agent 下的按用户上限及单个用户上限,以及面向终端用户的状态端点 GET /api/ai-mentor/orgs/{org}/spend-caps/status/{user_id}/[?mentor={mentor}]。
适用场景:为组织或具体 Agent、用户限制 LLM 消费,并在接近限额时通知管理员;向终端用户展示粗粒度额度状态。
限制:计数最终一致,可能略滞后于实时消费,执行读取缓存值。状态端点仅返回 zone 与百分比,不暴露美元金额。唯一约束下每个(scope, agent, user)只能有一个上限,PUT 即覆写该行。scope、Agent 与用户由 URL 推断,不写在请求体中;写入请求体中的计数字段会被忽略。block 与积分耗尽的 402 不同,前者针对管理员设定的 LLM 成本上限。可用 enabled:false 暂停而不删除。未连接时先运行 /iblai-api-login 填充 IBLAI_ORG、IBLAI_USERNAME、IBLAI_API_KEY。