feat: Add optional setup command to helix.yaml
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- cli, documentation
Direzione di ricerca
Inizia leggendo config.py e runner.py, in particolare _preflight() e il punto immediatamente precedente all’avvio dell’agente. Traccia il modo in cui helix run esegue i comandi e gestisce gli errori, quindi aggiungi la configurazione opzionale di setup e aggiorna la documentazione o il template menzionato nell’issue. Il lavoro è completato quando setup viene eseguito una sola volta con output trasmesso in streaming, si interrompe chiaramente in caso di errore e le configurazioni esistenti rimangono invariate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Add support for an optional setup command in helix.yaml that runs once before the first experiment in a session. This allows helices to declare one-time setup steps (e.g. downloading model weights, caching datasets) as part of their configuration, making helix run fully self-contained without requiring manual pre-run steps.
Motivation
Currently, some helices require a one-time setup step to be run manually before helix run can work — for example, uv run prepare.py in helix-inference-opt downloads model weights and caches datasets. There is no way to declare this in helix.yaml, so users must remember to run it themselves on each new machine. This is a poor experience and easy to forget.
Proposed Change
Add an optional setup section to helix.yaml:
setup:
command: uv run prepare.py
Behaviour
- If
setup.commandis provided, the runner executes it once at the start ofhelix run, before the agent is invoked or any experiments are run. - If
setup.commandis absent, the runner proceeds as today (no change in behaviour). - The command runs in the repo root, inheriting the same environment as the evaluate command.
- If the setup command exits non-zero,
helix runshould abort with a clear error message.
Schema Changes
In config.py, add a new optional SetupConfig model and field on HelixConfig:
class SetupConfig(BaseModel):
command: str
class HelixConfig(BaseModel):
...
setup: Optional[SetupConfig] = None
Runner Changes
In runner.py, after _preflight() and before launching the agent, add a setup step:
if self.config.setup:
# run setup.command, stream output, abort on non-zero exit
Example helix.yaml
name: inference-opt
setup:
command: uv run prepare.py
metrics:
primary:
name: tokens_per_sec
optimize: maximize
evaluate:
command: uv run infer.py
Acceptance Criteria
-
SetupConfigadded toconfig.pywithcommandfield -
HelixConfig.setupis optional (existing helices without it are unaffected) - Runner executes setup command once per
helix runsession before the agent starts - Setup output is streamed to the terminal so the user can see progress
- Non-zero exit aborts the session with a clear error
- Docs/template updated to show the new field
- Lingua principale
- Python
- Stelle
- 24
- Fork
- 2
- Merge medio
- 13h 20m
- PR unite (30g)
- 20
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di VectorInstitute/helix
-
enhancement good first issue
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
VectorInstitute/helix#86 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di VectorInstitute/helix
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
huggingface/deep-rl-class#723 ·
-
[tool] bug: Qwen3 XML tool parser raises on `...` argument values (Ellipsis is not JSON serializable)Forse già presa @super-yuki l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
verl-project/verl#8559 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TencentCloud/octop-harness#228 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
google/osv-scalibr#2585 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
NousResearch/hermes-agent#149323 ·
I maintainer di solito rispondono entro 1 giorno