feat: Add optional setup command to helix.yaml
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- cli, documentation
Línea de trabajo
Empieza leyendo config.py y runner.py, especialmente _preflight() y el punto justo antes de que se inicie el agente. Sigue cómo helix run ejecuta los comandos y gestiona los fallos; después añade la configuración opcional de setup y actualiza la documentación o plantilla mencionada en la issue. Se considera terminado cuando setup se ejecuta una vez con la salida transmitida en tiempo real, se aborta claramente si falla y las configuraciones existentes permanecen sin cambios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 24
- Forks
- 2
- Merge medio
- 13 h 4 min
- PR fusionados (30 d)
- 27
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de VectorInstitute/helix
-
enhancement good first issue
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
VectorInstitute/helix#86 ·
Los mantenedores suelen responder en 1 día
Todos los issues de VectorInstitute/helix
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
FAIRmat-NFDI/pynxtools#861 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
NVIDIA/nsight-python#88 ·
Los mantenedores suelen responder en 1 día
-
Criteria can pass when the deliverable is missingPosiblemente ocupada @clementtisseau la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
harveyai/harvey-labs#217 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
priority/medium roadmap/v1.1.1 stakeholder/rapr type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
databrickslabs/ontos#1420 ·
Los mantenedores suelen responder en 3 días