Configuration
All configuration is done via environment variables in your root .env file. See .env.example for the full list.
Required
| Variable | Description |
|---|---|
OPENAI_API_KEY |
OpenAI (or compatible) API key |
DATABASE_URL |
Postgres connection string (set automatically by Docker Compose) |
For browser-based runs, you also need BROWSER_USE_API_KEY.
LLM Settings
| Variable | Default | Description |
|---|---|---|
OPENAI_BASE_URL |
https://api.openai.com/v1 |
Override for compatible providers |
ANTHROPIC_API_KEY |
-- | For Claude models |
TESTER_MODEL |
gpt-4o-mini |
Model for simulated patient |
TESTER_TEMPERATURE |
0.2 |
Temperature for tester |
GRADER_MODEL |
gpt-4o-mini |
Model for transcript grading |
GRADER_TEMPERATURE |
0.1 |
Temperature for grader |
Server
| Variable | Default | Description |
|---|---|---|
PORT |
8000 |
API server port (Docker Compose maps this to 3000 externally) |
NODE_ENV |
development |
Environment mode |
WORKER_CONCURRENCY |
5 |
Parallel scenario execution limit |
DEFAULT_MAX_TURNS |
11 |
Default number of conversation turns per scenario |
MIN_MAX_TURNS |
5 |
Minimum allowed value for max_turns |
MAX_MAX_TURNS |
15 |
Maximum allowed value for max_turns |
Provider Keys
Set these based on which integrations you use:
| Variable | Provider |
|---|---|
BROWSER_USE_API_KEY |
Browser Use Cloud browser testing |
Per-Agent Configuration
Provider credentials like Vapi API keys, LiveKit credentials, and Pipecat API keys are configured per-agent in the agent's config object — not as server environment variables. Browser Use Cloud auth is configured with BROWSER_USE_API_KEY, while browser behavior and target URL live on the browser agent itself. See Integrations for details on each provider's config fields.
Docker Compose
These variables are used by Docker Compose but are not part of the server application config:
| Variable | Default | Description |
|---|---|---|
DB_PASSWORD |
preclinical |
Postgres password |