Skip to main content
When a praisonai CLI run goes over its budget, you get a clean error message and exit-code 1 — no Python traceback.
The user runs praisonai from the terminal; when the agent exceeds its budget cap, the CLI exits with a clean message instead of a traceback.

Quick Start

1

Set a Budget in Your Agent

2

Run via CLI

If the run goes over $1.00, the CLI prints (in red):
…and exits with code 1.
3

Or set the cap on praisonai loop

Skip the Python and pass the cap as a flag:
This maps to ExecutionConfig(max_budget=0.50, on_budget_exceeded="stop"), so a budget trip exits with code 1. Add --on-budget-exceeded warn to log and continue instead.
The cap is cumulative across loop iterations. A --max-budget 1.00 run that spans 20 iterations stops once total spend hits $1.00 — it is **not** $1.00 per iteration.

How It Works

The praisonai CLI wraps every agent.start(...) / agent.chat(...) call in a budget handler. When the agent raises BudgetExceededError, the CLI:
  1. Prints a single-line, red, rich-formatted message including the actionable hint.
  2. Exits with code 1 so shell scripts and CI can detect the failure.
  • The same handler covers async (agent.astart()) and streaming paths — bots and gateway deployments route through here and respect max_budget identically.
The sync OpenAI chat path (agent.chat(), agent.start()) raises BudgetExceededError on a budget trip, matching the async and custom-LLM paths. Older versions could return None here instead of raising.
This works across every CLI display mode: silent (-qq), quiet (-q), verbose (-v), debug (-vv), --output jsonl, --output json, --output flow, --output editor, and default.

Using the Exit Code in CI / Scripts

Exit code reference:

Why isn’t there a max_budget= shortcut on Agent?

By design. Per AGENTS.md §5.3 (Parameter Consolidation), execution-related knobs live on ExecutionConfig, not as new top-level Agent.__init__ parameters. This keeps the Agent constructor small and discoverable. The CLI’s error message points users to the one correct place to set a budget:
There isn’t one on Agent(...). Use execution=ExecutionConfig(max_budget=...) in Python, --max-budget on praisonai loop, or an execution: block in agents.yaml — those are the three supported entry points.

Catching the error in your own code

If you embed praisonaiagents directly (not via the CLI), you can catch the same exception:

Best Practices

Without max_budget, a runaway agent can rack up costs unbounded. Pick a cap based on a few un-budgeted dev runs.
The graceful exit means CI detects the failure cleanly — no need to grep tracebacks.
There isn’t one. Use execution=ExecutionConfig(max_budget=...) — that’s the only supported pattern.

Budget Management

Full SDK API for budgets, cost tracking, and on_budget_exceeded actions

Execution Configuration

All execution settings including retries, timeouts, and rate limits