Project settings¶
Settings define what the agent optimizes and how an experiment runs. They're the project-level defaults the agent respects on every experiment.
View¶
Shows the current objective, constraints, run/setup commands, and the assigned LLM key.
Edit¶
Pass any flag to edit those fields, then it prints the updated settings:
autolab settings --objective "minimize validation bits-per-byte"
autolab settings --constraints "no extra params; train < 2h on 8xH100"
autolab settings --run "python train.py --config big.yaml" --prep "uv sync"
| Flag | Meaning |
|---|---|
--objective |
What to optimize — the research goal (your metric, in words). |
--constraints |
Rules the agent must respect. |
--run |
How one experiment runs. |
--prep |
Environment setup before the run (e.g. uv sync). |
--name |
Display name. |
--description |
Short project description. |
--source |
Source repo URL. |
--coding-timeout |
Coding-step time budget in seconds (120–7200; default 600). Retried attempts automatically get 2x. Pass 0 to restore the default. |
--watchdog |
Run watchdog on/off (default on): the agent reviews each running job every few minutes and decides keep-or-kill instead of hard-killing at a fixed timeout. |
--watchdog-interval |
Seconds between run watchdog check-ins (60–3600; default 300). Pass 0 to restore the default. |
Coding-step time budget¶
Each experiment starts with a coding step: the agent edits code on your node, sanity-checks it, and pushes a branch. That step has a wall-clock budget (default 10 minutes) which includes the time its shell commands take. If your project's environment setup or smoke tests are inherently slow — big datasets, cold caches, busy nodes — raise it instead of letting attempts time out:
Retried coding attempts automatically get 2x the configured budget.
Run watchdog (long jobs aren't hard-killed)¶
While an experiment is running, the agent checks in on it every ~5 minutes instead of killing it at a fixed timeout: it reads the recent logs (each line stamped with when Autolab received it), compares elapsed time against its own estimate, and explicitly decides keep running or kill now with a reason shown on the job page. A healthy training run that outlives its estimate keeps going; a crash-looping, diverged, or no-longer-useful run is stopped within minutes. Silent runs are still killed by the mechanical stall guard, and dead nodes still recover automatically.
autolab settings --watchdog off # legacy behavior: hard-kill at the estimate
autolab settings --watchdog-interval 600 # check every 10 minutes
Objective, metric & constraints¶
Autolab optimizes a single objective stated in plain language —
minimize val_loss, maximize MMLU, or even an LLM-as-judge comparison. The
agent reads the metric out of your run's logs and the objective text, so be
specific about the number you care about. Constraints are the guardrails:
parameter budgets, time limits, "don't touch the tokenizer", and so on.
Stop policy & cost cap¶
By default a project never stops — the agent keeps researching until you
intervene, pausing only for the spend cap, an objective that is truly complete
or impossible, or a hard blocker that needs you (no usable node, missing
credentials, repeated infrastructure failure). To stop earlier, set a
termination condition (--stop-policy) and/or a hard spend cap
(--max-cost) when you create the project:
autolab init -y --name nanochat --objective "min val loss" \
--stop-policy "stop when val loss reaches 3.0" \
--max-cost 100
Adjust them later from the dashboard project settings.
Collaborators¶
Managing who can access the project has its own subcommand — see Collaborators:
Delete a project¶
Owners only, and permanent:
Changing the objective or constraints steers the live agent on its next experiment. To pause it first, see Drive the agent.
Appearance (web dashboard)¶
The dashboard has dark and light themes and follows your OS preference by default. The small toggle at the bottom of the sidebar cycles System -> Dark -> Light. The choice applies instantly, is saved per browser, and covers every page including sign-in.