Skip to main content
Agent() picks a model from your environment when you don’t pass llm=, then routes provider-prefixed defaults through litellm so a single provider key is enough to start. As of PR #4795, the SDK Agent() constructor uses the same resolver as praisonai run — set one provider key and the Agent works with no llm=.

Quick Start

1

Simplest — one provider key

Set a single provider credential and construct an Agent with no llm=:
2

Explicit provider-prefixed

Pass a provider/model string to route through litellm:
3

Bare OpenAI model

A bare model name uses the native OpenAI client:

How It Works

The Agent scans your environment for a credential when llm= is omitted, then forks on whether the resolved model carries a provider/ prefix. The first provider whose credential is present wins, in the order below. OpenAI is first so existing OpenAI users keep their default. The actual id is the capability-ranked best-available model for that provider at run time; the models below are shown as representatives — check praisonai models list --provider <p> for the current pick.

Resolution Table

The class an Agent uses depends on the shape of the resolved model — a provider/ prefix routes through litellm, a bare name uses the native OpenAI client. Before PR #4795, six of the seven env-var defaults resolved the right model name but were then sent to the native OpenAI client — the Agent raised ValueError: OPENAI_API_KEY environment variable is required. Only the bare OpenAI default worked. The fix routes any provider-prefixed default through litellm, matching praisonai run.
Since PR #5412, the resolved model for a credential-only run is the capability-ranked best-available model for that provider, not a fixed cheap representative. The provider/ prefix is preserved so routing through litellm is unchanged.

Common Patterns

I only have a Groq key

I have an Ollama server running


Best Practices

Auto-detection is ideal for a first run. In production, pass llm="provider/model" so the model can’t change when you add or remove a provider key.
OPENAI_MODEL_NAME wins over credential detection. A bare value like gpt-4o uses the OpenAI client; a provider/model value like ollama/llama3.2 now routes through litellm instead.
Agent() and praisonai run share one resolver. A single provider key gives a working Agent in Python and a working command on the CLI.

Provider Auto-Detection

How credentials pick a default model

Default Model Selection

Resolution order and MRU state

Local-First Run

Zero-config first run from your credentials

LLM Config

Set model, endpoint, and fallback chain