Providers
A3S Code reads runtime configuration from ACL. A config source can be an
.acl file path or an inline ACL string. JSON and legacy HCL configs are not
part of the current config surface.
Basic Shape
apiKey and api_key are accepted aliases. baseUrl and base_url are
accepted aliases. Commit templates and non-secret defaults only; keep real API
keys, private endpoints, and account-specific model names in the environment or
in a secret manager.
Provider Families
The built-in factory covers three paths:
The runtime does not hard-code model names. default_model and per-session
model values are identifiers in the provider/model-id form that must match
the provider blocks you define.
Delegation Controls
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 task fan-out remains available. When
allow_manual_delegation = false, the model-visible task tool is not
registered.
Storage
Use memory storage for short-lived tests. Use storage_backend = "file" plus
sessions_dir for resumable local sessions loaded from ACL. storage_url is
parsed for custom storage metadata, but it does not create a file-backed
session store by itself. SDK hosts can always pass
sessionStore: new FileSessionStore(...) /
opts.session_store = FileSessionStore(...) directly.
Private Provider Checks
Real-provider smoke tests should point at a local, git-ignored ACL file through
A3S_CONFIG_FILE. Do not copy provider values into commands, logs, docs, pull
requests, or committed fixtures.
SDK parity is covered by a separate real-provider check:
These two wrappers deliberately rewrite credentials only inside a
providers "openai" block. For a native OpenAI-compatible provider name such
as providers "deepseek", load the ACL directly through the provider-specific
runner instead of using the wrappers:
The complete Node.js, Python, and Go DeepSeek retrieval matrix uses
A3S_REAL_EVAL_ROOT=/absolute/path/to/a3s; see the
cross-SDK evaluation contract
for platform-specific commands and gates.
Keep secret-bearing raw provider evidence with the release or CI artifact, not in public documentation. Aggregate redacted metrics may be published when they contain no endpoint, header, environment-variable name, credential, prompt, or source text. For the complete local API surface, see API Contract.