Skip to main content

Appendix B: Settings Reference

The settings.json file controls all framework-level configuration. It is loaded by ABMSettings.from_file() and injected into the runtime by ABMRuntime. All fields have sensible defaults; an empty {} produces a working local-mode configuration.

Complete Schema​

{
"orchestration": {
"mode": "local",
"max_workers": 4,
"async_semaphore_limit": 128,
"pregel_mode": false,
"mcp_config": {
"endpoints": {},
"a2a_protocol": "http",
"timeout_seconds": 30.0,
"retry_count": 3,
"partition_strategy": "type_based",
"manual_partition": null,
"emulate_locally": true
}
},
"output": {
"dir": "output/",
"levels": ["model", "agent_group"],
"format": "csv.gz",
"plots": true,
"plot_style": "seaborn",
"plot_dpi": 200,
"agent_sample_rate": 1.0
},
"llm": {
"default_model": "claude-sonnet-4-6",
"default_max_tokens": 200,
"default_temperature": 0.0,
"cache_identical_prompts": true,
"cost_budget_per_step": 0.01,
"cost_budget_total": 10.0,
"api_key_env": "ANTHROPIC_API_KEY",
"agent_overrides": {},
"cache": {
"enabled": false,
"backend": "memory",
"path": ".cache/llm_responses.db"
}
},
"logging": {
"level": "INFO",
"log_llm_calls": true,
"log_messages": false,
"log_state_changes": false
},
"mc": {
"default_seeds": 100,
"default_steps": 100,
"default_burn_in": 10,
"parallel_seeds": true,
"max_workers": 0,
"batch_size": 0,
"global_seed": 42
},
"checkpoint": {
"enabled": false,
"interval": 0,
"directory": "checkpoints/",
"max_kept": 5
},
"telemetry": {
"otel_enabled": false,
"service_name": "abm-lab",
"endpoint": "http://localhost:4317",
"export_protocol": "grpc",
"export_interval_ms": 60000,
"trace_sample_rate": 1.0,
"trace_llm_calls": true,
"trace_messages": false,
"trace_actions": true,
"collect_agent_counts": true,
"collect_message_counts": true,
"collect_step_timing": true,
"collect_llm_metrics": true
},
"api": {
"host": "0.0.0.0",
"port": 8000,
"cors_origins": ["*"]
}
}

Field Descriptions​

orchestration​

Controls the execution backend and distributed computation.

FieldTypeDefaultDescription
modestr"local"Backend selection: "local", "threaded", "multiprocess", "async", "mcp", "dask"
max_workersint4Thread/process count for parallel backends. 0 = auto-detect CPU count.
async_semaphore_limitint128Maximum concurrent LLM calls in async mode. Prevents API rate limiting.
pregel_modeboolfalseEnable Pregel BSP execution with vote-to-halt convergence.
mcp_config.endpointsDict{}Map of partition index to MCP server URL for distributed mode.
mcp_config.a2a_protocolstr"http"Transport for agent-to-agent cross-partition messages.
mcp_config.timeout_secondsfloat30.0HTTP timeout for cross-partition calls.
mcp_config.retry_countint3Retry count for failed cross-partition calls.
mcp_config.partition_strategystr"type_based"Partition strategy: "type_based", "topology_aware", "manual".
mcp_config.emulate_locallybooltrueRun distributed mode in-process for testing.

output​

Controls the SimulationRecorder and output formatting.

FieldTypeDefaultDescription
dirstr"output/"Output directory for CSV, plots, and recordings.
levelsList[str]["model", "agent_group"]Recording levels: "model", "agent_group", "agent", "environment".
formatstr"csv.gz"Output format: "csv", "csv.gz", "parquet", "json".
plotsbooltrueGenerate PNG time series plots automatically.
plot_stylestr"seaborn"Matplotlib style for plots.
plot_dpiint200Plot resolution in dots per inch.
agent_sample_ratefloat1.0Fraction of agents to record at AGENT level. 1.0 = all, 0.1 = 10% sample.

llm​

Controls LLM agent configuration and cost management.

FieldTypeDefaultDescription
default_modelstr"claude-sonnet-4-6"Default LLM model identifier for all LLMAgent/HybridAgent instances.
default_max_tokensint200Maximum response tokens.
default_temperaturefloat0.0Sampling temperature. 0.0 = deterministic (for reproducibility).
cache_identical_promptsbooltrueEnable ResponseCache for deterministic LLM replay.
cost_budget_per_stepfloat0.01Maximum USD spend per simulation step.
cost_budget_totalfloat10.0Maximum USD spend for entire simulation.
api_key_envstr"ANTHROPIC_API_KEY"Environment variable containing the API key.
agent_overridesDict{}Per-agent-type LLM config overrides (e.g., different model for specific types).
cache.enabledboolfalseEnable persistent response cache.
cache.backendstr"memory"Cache backend: "memory" (in-process) or "sqlite" (persistent).
cache.pathstr".cache/llm_responses.db"SQLite database path for persistent cache.

logging​

Controls structured logging output.

FieldTypeDefaultDescription
levelstr"INFO"Log level: "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL".
log_llm_callsbooltrueLog every LLM API call (prompt, response, cost, latency).
log_messagesboolfalseLog every agent-to-agent message send/receive. High volume.
log_state_changesboolfalseLog every agent state field change. Very high volume.

mc​

Controls Monte Carlo evaluation defaults (used by MCRunner and CLI evaluate).

FieldTypeDefaultDescription
default_seedsint100Default number of independent seeds per MC evaluation.
default_stepsint100Default steps per seed.
default_burn_inint10Steps to discard as burn-in before recording.
parallel_seedsbooltrueRun seeds in parallel (using process pool).
max_workersint0Workers for parallel MC. 0 = auto-detect CPU count.
batch_sizeint0Batch size for distributed MC. 0 = all seeds in one batch.
global_seedint42Global seed for the SeedManager hierarchy.

checkpoint​

Controls automatic state checkpointing.

FieldTypeDefaultDescription
enabledboolfalseEnable checkpointing.
intervalint0Auto-checkpoint every N steps. 0 = disabled (manual only).
directorystr"checkpoints/"Directory for checkpoint files.
max_keptint5Maximum checkpoints to retain. Oldest deleted when exceeded. 0 = unlimited.

telemetry​

Controls OpenTelemetry distributed tracing and metrics.

FieldTypeDefaultDescription
otel_enabledboolfalseEnable OpenTelemetry instrumentation.
service_namestr"abm-lab"Service name for traces and metrics.
endpointstr"http://localhost:4317"OTLP collector endpoint.
export_protocolstr"grpc"Export protocol: "grpc", "http", "console".
export_interval_msint60000Metric export interval in milliseconds.
trace_sample_ratefloat1.0Trace sampling rate (0.0 = none, 1.0 = all).
trace_llm_callsbooltrueCreate spans for LLM API calls.
trace_messagesboolfalseCreate spans for message sends. High volume.
trace_actionsbooltrueCreate spans for action executions.
collect_agent_countsbooltrueEmit agent count gauge metric.
collect_message_countsbooltrueEmit message count metric.
collect_step_timingbooltrueEmit step duration histogram.
collect_llm_metricsbooltrueEmit LLM call count, latency, and cost metrics.

api​

Controls the FastAPI REST server.

FieldTypeDefaultDescription
hoststr"0.0.0.0"Server bind address.
portint8000Server port.
cors_originsList[str]["*"]CORS allowed origins. Restrict in production.