A3S Docs
A3S Code

Providers

ACL provider configuration and environment injection

Providers

A3S Code reads runtime configuration from ACL. A config source can be a path to an .acl file or an inline ACL string. JSON and legacy HCL configs are intentionally not supported.

Basic Shape

default_model = "provider/model-id"
max_parallel_tasks = 8
auto_parallel = false

providers "provider" {
  apiKey = env("PROVIDER_API_KEY")
  baseUrl = env("PROVIDER_BASE_URL")

  models "model-id" {
    name = "Human readable model name"
    tool_call = true
  }
}

storage_backend = "file"

apiKey and api_key are accepted aliases. baseUrl and base_url are accepted aliases. Prefer environment variables for secrets and commit only templates or non-secret defaults.

Delegation Controls

agent_dirs = ["./.a3s/agents"]

auto_delegation {
  enabled        = true
  auto_parallel  = false
  min_confidence = 0.72
  max_tasks      = 4
}

max_parallel_tasks limits bounded sibling fan-out. auto_delegation.enabled turns on automatic subagent delegation. The top-level auto_parallel = false overrides auto_delegation.auto_parallel and disables only automatic parallel child-agent fan-out; manual parallel_task remains available.

Anthropic

default_model = "anthropic/claude-sonnet-4-20250514"

providers "anthropic" {
  apiKey = env("ANTHROPIC_API_KEY")
}

OpenAI-Compatible

Any service compatible with OpenAI Chat Completions can be configured through the openai provider:

default_model = "openai/gpt-4o"

providers "openai" {
  apiKey = env("A3S_OPENAI_API_KEY")
  baseUrl = env("A3S_OPENAI_BASE_URL")
}

For MiniMax, use the same provider block:

default_model = "openai/MiniMax-M2.7-highspeed"

providers "openai" {
  apiKey = env("A3S_OPENAI_API_KEY")
  baseUrl = env("A3S_OPENAI_BASE_URL")

  models "MiniMax-M2.7-highspeed" {
    name = "MiniMax M2.7 Highspeed"
    tool_call = true
  }
}

Test scripts map MINIMAX_API_KEY and MINIMAX_BASE_URL to A3S_OPENAI_API_KEY and A3S_OPENAI_BASE_URL when the latter are not set.

Storage

storage_backend = "memory"
storage_backend = "file"
storage_url = ".a3s/sessions"

Use memory storage for short-lived tests. Use file storage with storage_url for resumable local sessions.

Private Provider Check

Use a temporary environment-injected ACL when validating a private provider. The release scripts are designed to avoid mutating the real .a3s/config.acl: they extract provider values, write a temporary ACL that uses env(...), and inject those values into the process environment.

Use this pattern for private provider checks:

A3S_CONFIG_FILE=/path/to/.a3s/config.acl \
  A3S_OPENAI_API_KEY="$A3S_OPENAI_API_KEY" \
  A3S_OPENAI_BASE_URL="$A3S_OPENAI_BASE_URL" \
  scripts/real_config_env_integration.sh

SDK parity is covered by a separate real-provider check:

A3S_CONFIG_FILE=/path/to/.a3s/config.acl \
  scripts/sdk_real_config_env_integration.sh

Keep the resulting provider evidence with the release. For the complete local API surface, see API Contract.

On this page