Technical reference / System & configuration
Configuration reference
File precedence, field definitions and the effective configuration preserved in each trace.
The execution loader chooses one base entry point in this order: CLI --base, task base, slow-thinker.base.json beside the task, config/slow-thinker.base.json in the working directory, then slow-thinker.base.json in the working directory. With none found, only internal defaults and task fields apply.
A base may reference another base, resolving relative to the referring file; absolute paths and ~ are supported. At most five base files are loaded. Cycles, missing files, invalid JSON and a non-object root cause ConfigurationError. JSON comments are not accepted.
Merge order is internal defaults → deepest base → each outer base → task. Each key replaces its predecessor wholesale. An explicit CLI base overrides the task's choice of base file, not the task's own settings.
{
"base": "slow-thinker.base.json",
"label": "same council, one refinement",
"num_refinement_rounds": 1
}
By contrast, setting llm_configs here replaces the entire model list, and setting api_keys replaces the whole provider-key dictionary. Put shared keys at a suitable inherited level or use environment variables.
| Field | Internal default and behavior |
|---|---|
promptReviewed E 0.1.5 · R 0.1.16 |
Required for execution. No default task statement. |
input_elementsReviewed E 0.1.5 · R 0.1.16 |
{}. Saved structured context; not separately inserted into current execution/analysis prompts. |
aboutReviewed E 0.1.5 · R 0.1.16 |
Optional catalogue metadata: title, domain, kind, setting, summary. It is carried from the task, not a model-control schema. |
labelReviewed E 0.1.5 · R 0.1.16 |
Empty string. Included in stored configuration identity. |
api_keysReviewed E 0.1.5 · R 0.1.16 |
{}. Provider-name to key mapping, resolved after any explicit model-level key and before environment fallback. |
llm_configsReviewed E 0.1.5 · R 0.1.16 |
Required nonempty ordered list for execution. Defines the available model entries used cyclically by proposer and voter slots. |
num_proposing_agentsReviewed E 0.1.5 · R 0.1.16 |
4. Proposer slots per round. Shipped profiles override this internal default. |
num_refinement_roundsReviewed E 0.1.5 · R 0.1.16 |
2. Additional rounds after round 0. |
num_voting_agentsReviewed E 0.1.5 · R 0.1.16 |
4. Voter slots after the last proposal round. |
max_steps_in_summariesReviewed E 0.1.5 · R 0.1.16 |
0: all steps. Positive values limit the first steps shown to refiners and voters, with a count of omitted steps. |
db_configReviewed E 0.1.5 · R 0.1.16 |
{}. Nonempty selects PostgreSQL and passes its keyword arguments to psycopg2.connect. |
runs_dirReviewed E 0.1.5 · R 0.1.16 |
"runs". JSON root and default HTML output location; relative to working directory. |
reportReviewed E 0.1.5 · R 0.1.16 |
true. Attempt automatic HTML generation after execution if report dependencies are installed. |
analysis_llmReviewed E 0.1.5 · R 0.1.16 |
{}. Report analysis falls back to the first council entry when none is configured. Configuring an analyst does not run it automatically. |
pricesReviewed E 0.1.5 · R 0.1.16 |
{}. Per-model price entries override the loaded price file; see pricing. |
baseReviewed E 0.1.5 · R 0.1.16 |
File-selection directive consumed during loading; removed from the effective merged result. |
base_filesReviewed E 0.1.5 · R 0.1.16 |
Derived provenance: basenames of loaded bases, deepest first. Stored on the task, excluded from configuration content identity. |
The loader is not a full typed JSON configuration schema. It checks required values, a nonempty model list, model names, keys and adapter-specific checks; it does not comprehensively validate every count or unknown key. Use integers for counts, positive proposer counts and nonnegative refinement counts. An accepted JSON object does not guarantee a provider will accept all model settings.
| Field | Meaning |
|---|---|
providerReviewed E 0.1.5 · R 0.1.16 |
One of google, anthropic, openai, xai, alibaba, deepseek. Unknown providers are rejected. |
modelReviewed E 0.1.5 · R 0.1.16 |
Provider's model identifier, passed to the adapter. There is no local model catalogue enforcing availability. |
nameReviewed E 0.1.5 · R 0.1.16 |
Optional label matching ^[A-Za-z][A-Za-z0-9._-]*$. Unique among council entries. The analyst may reuse a council name. |
api_keyReviewed E 0.1.5 · R 0.1.16 |
Optional entry-specific credential with highest precedence. Omitted from saved descriptions. |
temperatureReviewed E 0.1.5 · R 0.1.16 |
Sampling control only for adapters/modes that use it. |
max_tokensReviewed E 0.1.5 · R 0.1.16 |
Provider output cap. Recorded when explicitly supplied; adapter defaults may also apply. |
thinking_budgetReviewed E 0.1.5 · R 0.1.16 |
Provider-specific budget/switch. See provider behavior, especially Anthropic adaptive vs extended modes. |
reasoning_effortReviewed E 0.1.5 · R 0.1.16 |
Provider-specific effort level. The code forwards it rather than proving identical semantics across models. |
The saved description contains label, proposer/refinement/voter counts, summary-step cap, sanitized model descriptions and the analyst description. It does not copy API keys, database credentials, price tables or every source-file field. Effective adapter defaults such as reasoning effort are included where describe() reports them.
Configuration keys are derived from this description excluding base_files. Keep source revisions and price files separately when you need to reproduce the full experiment context.
slow-thinker-report loads a base chain and resolves names and configured provider keys, but does not load a task file or apply the executor's full default dictionary. It chooses storage from that configuration. --runs-dir overrides only the HTML destination; choose JSON input through configuration runs_dir. --analyze is the only flag that requests model evaluation.
The CLI option reference is in Report generation.
Source files used for this reference
Reviewed at 7361ea0b71a5.