Agent Sandbox Registry

python-sdk

Decision: Layered Configuration Loading

无中文版

.agents/notes/implemented/feature/2026-09-02-transport-config.md

Decision: Layered Configuration Loading

Status: implemented Implemented: 2026-09-02

Problem

Configuration comes from multiple sources with different priorities. Need a clean, lazy-loaded config system.

Decision

Pydantic BaseSettings in transport/config.py. Priority (highest to lowest): 1. Code parameters (passed directly to constructors) 2. Environment variables (SANDBOX_* prefix) 3. .env file in project root 4. ~/.abx/config.toml user config file 5. Built-in defaults

Lazy loading: file I/O (.env, config.toml) only performed on first access, not at import time.

API Design

class SandboxSettings(BaseSettings):
    model_config = SettingsConfigDict(env_prefix="SANDBOX_", env_file=".env")
    # Fields resolved with priority: code params > env vars > .env > ~/.abx/config.toml > defaults

def load_config(**overrides) -> SandboxSettings: ...  # lazy: file I/O only on first access

Implementation

Alternatives considered

Dependencies

Test Strategy

Acceptance criteria