Budget & Rate Limiting
Budget & Rate Limiting
Kernova enforces spending and rate limits to prevent runaway costs.
Setting Budgets
// Global limitskernel.budget.setGlobalBudget({ maxTokens: 1_000_000, // Total token limit maxCostUsd: 50.00, // USD spending cap maxTokensPerIntent: 10_000, // Single intent limit requestsPerMinute: 60, // Rate limit});
// Per-identity limitskernel.budget.setIdentityBudget(userId, { maxTokensPerDay: 100_000, maxTokensPerHour: 20_000, requestsPerMinute: 10, maxCostPerDayUsd: 5.00,});How It Works
- Before every
kernel.submit(), the budget is checked - If over limit, the request is rejected with a clear error message
- After execution, actual token usage is recorded
- Events are emitted on budget exceeded (
governance.budget.exceeded)
Monitoring Usage
const usage = kernel.budget.getUsage(userId);console.log(`Today: ${usage.tokensToday} tokens, $${usage.estimatedCostUsd.toFixed(2)}`);
const global = kernel.budget.getGlobalUsage();console.log(`Total: ${global.totalTokens} tokens across ${global.totalRequests} requests`);Resetting Counters
Call on a schedule (cron):
// Reset hourly counterskernel.budget.resetHourly();
// Reset daily counterskernel.budget.resetDaily();Cost Estimation
Kernova estimates cost at ~$3 per million tokens (average across providers). This is a rough estimate for budgeting — actual costs depend on your provider and model.