Projects and budgets
Projects isolate applications, environments, member access, team keys, model policies and costs. Project names should state the business and the environment; avoid names that are hard to recognize later, such as test1 or new-project.
Create a project
Open “Team members → Projects & budgets” in the console and create a project with:
- Name: for example
support-agent-production. - Budget: the total spending boundary the project can allocate to team keys.
- Status: disabling a project blocks its keys from further calls.
- Models and routing: configured in the team keys under the project according to business needs.
Separate at least development, staging and production. When a budget runs short, raise the budget or reduce consumption; do not point production traffic at a development key as a temporary fix.
Budget allocation
The project budget is the upper boundary; a team key can carry a smaller budget. A typical split:
Project budget
├─ Online service key
├─ Background job key
├─ Agent key
└─ Reserved headroom
Do not plan keys that consume the entire project budget; leave room for traffic bursts and manual troubleshooting. Budget values and recharge amounts are managed in USD, with no automatic currency conversion.
Model and routing boundaries
Production projects expose only the models the business actually uses. The same public model can be offered by multiple providers; smart routing only selects among the available providers for that model and never substitutes another model to lower the price.
Recommended routing modes:
- Interactive applications: Balanced or Fastest.
- Batch processing: Lowest cost.
- Long-running core tasks: Balanced, plus client-side idempotency, timeouts and recovery handling.
Changes and decommissioning
Before changing a budget or routing mode, review recent usage and traces. To retire a project:
- Stop service traffic.
- Revoke every team key under the project.
- Confirm there are no recent calls.
- Remove memberships.
- Delete or archive the project last.
Deleting a project does not recall requests already sent upstream and does not change historical billing records.