config.toml Reference
The project-levelconfig.toml lives at the root of your Action Llama project. All sections and fields are optional — sensible defaults are used for anything you omit. If the file doesn’t exist at all, an empty config is assumed.
Full Annotated Example
Field Reference
Top-level fields
| Field | Type | Default | Description |
|---|---|---|---|
maxReruns | number | 10 | Maximum consecutive reruns when an agent requests a rerun via al-rerun before stopping |
maxCallDepth | number | 3 | Maximum depth for agent-to-agent call chains (A calls B calls C = depth 2) |
workQueueSize | number | 100 | Maximum queued work items (webhook events + agent calls) per agent when all runners are busy |
[model] — Default LLM
Default model configuration inherited by all agents that don’t define their own [model] section in agent-config.toml.
| Field | Type | Required | Description |
|---|---|---|---|
provider | string | Yes | LLM provider: "anthropic", "openai", "groq", "google", "xai", "mistral", "openrouter", or "custom" |
model | string | Yes | Model ID (e.g. "claude-sonnet-4-20250514", "gpt-4o", "gemini-2.0-flash-exp") |
authType | string | Yes | Auth method: "api_key", "oauth_token", or "pi_auth" |
thinkingLevel | string | No | Thinking budget: "off", "minimal", "low", "medium", "high", "xhigh". Only applies to Anthropic models with reasoning support. Ignored for other providers. |
[local] — Docker Container Settings
Controls local Docker container isolation. These settings also apply as resource limits for Cloud Run jobs and ECS Fargate tasks.
| Field | Type | Default | Description |
|---|---|---|---|
image | string | "al-agent:latest" | Base Docker image name |
memory | string | "4g" | Memory limit per container (e.g. "4g", "8g", "4096" for ECS in MiB) |
cpus | number | 2 | CPU limit per container |
timeout | number | 900 | Default max container runtime in seconds. Individual agents can override this with timeout in their agent-config.toml. See agent timeout docs. |
[cloud] — Cloud Provider
Only needed when running agents on VPS infrastructure. Configure manually or use deployment tools.
| Field | Type | Required | Description |
|---|---|---|---|
provider | string | Yes | "vps" (SSH + Docker) |
VPS fields (provider = "vps")
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
host | string | Yes | — | Server IP address or hostname |
sshUser | string | No | "root" | SSH username |
sshPort | number | No | 22 | SSH port |
sshKeyPath | string | No | "~/.ssh/id_rsa" | Path to SSH private key |
vultrInstanceId | string | No | — | Vultr instance ID (set automatically if provisioned) |
vultrRegion | string | No | — | Vultr region (set automatically if provisioned) |
[gateway] — HTTP Server
The gateway starts automatically when Docker mode or webhooks are enabled. It handles health checks, webhook reception, credential serving (local Docker only), resource locking, and the shutdown kill switch.
| Field | Type | Default | Description |
|---|---|---|---|
port | number | 8080 | Port for the gateway HTTP server |
lockTimeout | number | 1800 | Default lock TTL in seconds. Locks expire automatically after this duration unless refreshed via heartbeat. |
[webhooks.*] — Webhook Sources
Named webhook sources that agents can reference in their [[webhooks]] triggers. Each source defines a provider type and an optional credential for signature validation.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Provider type: "github" or "sentry" |
credential | string | No | Credential instance name for HMAC signature validation (e.g. "MyOrg" maps to github_webhook_secret:MyOrg). Omit for unsigned webhooks. |
agent-config.toml: