Skip to main content
PraisonAI raises clear errors instead of silently picking a default when configuration is ambiguous.
The user passes ambiguous configuration; PraisonAI raises an explicit error with a fix hint instead of silently falling back.

How It Works

Behaviour change (PR #2122): Several subsystems that previously fell back silently now raise explicit errors. Review the table below when upgrading.
Also fixed in PR #4128: Seven Agent(...) preset params — output, execution, context, autonomy, approval, learn, self_improve — now raise ValueError on a typo instead of silently using defaults. The worst case was security-relevant: approval="read_onl" produced an empty deny set, leaving all 17 dangerous tools callable. If you rely on the previous silent-default behaviour, pass the default explicitly: approval=False, execution="balanced", etc.Completed by PraisonAI PR #4186 (issue #4182): the same four params also silently disabled themselves when the validator accepted a spelling the resolver did not (autonomy="full-auto", context="sliding-window", "FULL_AUTO", " thorough ", …). Validation and resolution now share one canonical spelling rule (canonical_preset_key() in praisonaiagents/config/parse_utils.py), so any spelling the validator accepts also resolves to the intended preset. approval, learn, and self_improve were already correct; this closes the gap for the remaining four (output, execution, context, autonomy).
A broken optional dependency that failed with anything other than ImportError used to re-probe on every hot-path access; now the first failure is cached and re-raised fast (PR #4205).

What Changed

Quick Start

1

Grep your logs for new errors

2

Fix database URLs explicitly

3

Use provider/model form

Migrating

Best Practices

When in doubt, spell out schemes, provider prefixes, and backend names — silent fallbacks are gone.
Approval is on by default (PR #2122). Use approval=False for fully autonomous runs.
Claude Code bypass requires unsafe=True and PRAISONAI_CLAUDE_BYPASS_PERMISSIONS=1.
Do not rely on implicit fallbacks — set sandbox_type to a supported backend (subprocess, docker, or e2b).

Approval

Safe-by-default approval gates

Cloud Databases

Supported DB URL schemes