Skip to main content
Admins can choose which models run nao’s background work, tune how the agent calls each model, and cap how long it is allowed to run Python. All three live in the admin panel under Settings -> Project.

Default models

Beyond answering chats, nao calls an LLM for a handful of background tasks that have no model picker of their own. The Default models card on Settings -> Project -> Models decides which model each of them uses. Two modes:
  • One default for everything - pick a single model for every background task.
  • A model per task - pick a model per task, so you can send cheap work to a small model and keep a capable one where accuracy matters.
Leave a task on nao default to use the built-in choice. Title generation and compaction run on almost every conversation, so they are the two worth pointing at a cheap model first.
If you later remove the provider or the model, the card flags the selection with a warning icon and nao falls back to another available model until you pick a new one.

Model parameters

Each enabled model can carry its own inference settings, stored per project and per provider. Models without overrides use the provider’s defaults.
  1. Go to Settings -> Project -> Models.
  2. Add or edit a provider.
  3. In Enabled Models, click the button on an enabled model to open the Model parameters dialog.
  4. Set the parameters you want and click Save.
Custom models you added yourself have the same edit button. Clearing every field removes the overrides for that model.

Available parameters

The dialog only shows the controls the selected model actually accepts, so the list changes from model to model:
On Claude models (direct, or through Vertex or Bedrock), Top P and Temperature are mutually exclusive - when both are set, nao sends only the temperature. Values outside a model’s accepted range are clamped before the call.
Thinking effort and max output tokens directly change token spend. See Budgets to cap that spend per provider.

Python execution duration

When the Python sandbox is enabled, you can cap how long a single Python execution may run.
  1. Go to Settings -> Project -> Agent.
  2. In the Experimental card, set Python execution duration.
The value is in seconds, defaults to 30, and must be between 1 and 600. Code that runs longer is stopped.