計價與以 USD 為單位的預算
Agentic SpendGuard 的 tenant 可以拿同一筆 USD 預算,跨多家 LLM provider(OpenAI、Anthropic、Bedrock、Azure OpenAI、Gemini)一起花。 流程是這樣:
- 計價表(Pricing table) — canonical DB 裡的
pricing_table存的是(provider, model, token_kind) → $/1M tokens。compose-up 的時候從deploy/demo/init/pricing/seed.yaml載進來。 - 計價凍結(Pricing freeze) — build bundle 時會挑最新的
pricing_version, 再把那份 snapshot hash 嵌進contract_bundle.metadata.json。 sidecar 啟動時讀它;production 部署則透過 cosign 驗章。 - Adapter 換算 — adapter 算出每次呼叫的 µUSD:
(input_tokens × $/1M_input + output_tokens × $/1M_output) × 10^6。 - Sidecar reserve — adapter 送出
BudgetClaim(amount_atomic=N µUSD), sidecar 就用usd_micros這個 unit(scale=6)做預扣。 - Sidecar commit — adapter 拿到 provider 真正的回應後,重算一次 µUSD, sidecar 再透過 CommitEstimated 把帳結掉。
multi_provider_usd 這個 demo 模式會把整段 end-to-end 跑給你看 —— 在同一個
session 裡,用真的 OpenAI + Anthropic 一起花同一筆共用 USD 預算。
做換算的 helper 可以看 pricing.py。