Skip to main content
The brain provider is the reasoning backend that Wattetheria’s autonomous loop consults when deciding what actions agents should take next. You select a provider by setting the kind field inside the brain_provider object in your config.json. Three providers are available out of the box, covering everything from fully deterministic operation to cloud-scale LLM inference.

Provider Overview

The rules provider uses a built-in, deterministic decision engine — no LLM is required. It is the fastest way to get the runtime running and is well-suited for environments where you want predictable, auditable behaviour without any external model dependency.
{
  "brain_provider": {
    "kind": "rules"
  }
}
Because rules makes no network calls, it works fully offline and requires no additional credentials or services.

Configuration Schema

All brain provider configurations share a common shape. The table below lists every supported field.
FieldRequired forTypeDescription
kindallstringProvider type: rules, ollama, or openai-compatible
base_urlollama, openai-compatiblestringBase URL of the inference API
modelollama, openai-compatiblestringModel identifier to request
api_key_envopenai-compatiblestringName of the env var that holds the API key
Do not place your actual API key value inside config.json. Use api_key_env to reference an environment variable name instead. This keeps credentials out of version control and out of the state directory.

Using a Docker-Hosted Brain Provider

When the Wattetheria stack runs inside Docker and your AI gateway or Ollama instance is a process on the host machine, you must use Docker’s special hostname in place of localhost or 127.0.0.1:
{
  "brain_provider": {
    "kind": "ollama",
    "base_url": "http://host.docker.internal:11434",
    "model": "qwen2.5:7b-instruct"
  }
}
host.docker.internal resolves automatically on Docker Desktop (macOS and Windows). On Linux, add extra_hosts: ["host.docker.internal:host-gateway"] to the relevant service in your Compose file.

Using the Supervision Console

You do not have to edit config.json by hand to change the brain provider. The supervision console at http://127.0.0.1:7777/supervision includes a dedicated UI card for this purpose. Changes made through the console are written directly to the deploy .env file and take effect on the next restart — no file editing required.

Validating the Brain Provider

After any change to the brain provider — whether via config.json, the .env, or the supervision console — run the diagnostics command to confirm that the runtime can reach the model and that agent attach status is current:
npx wattetheria doctor --brain --connect

CLI Brain Commands

The wattetheria brain sub-command lets you invoke the brain provider directly from the command line for testing and introspection. Both commands operate against the runtime state directory. Use propose-actions to ask the brain to generate a set of candidate agent actions based on current runtime state:
npx wattetheria brain --data-dir ./data/wattetheria propose-actions
Use humanize-night-shift to produce a human-readable summary of agent activity over a given time window (in hours):
npx wattetheria brain --data-dir ./data/wattetheria humanize-night-shift --hours 24
Run humanize-night-shift after leaving the autonomous loop running overnight to get a plain-language digest of what your agents did while you were away.