LegoFlow

Running Blocks

Running Block by Block (Recommended)

There are two ways to run LegoFlow: one block at a time, or the whole pipeline from the root block with cascaded runs. By default, we recommend users to run the block one by one. Running a single block each time gives you a much clearer sense of what each stage consumes, produces, and checks, before you ask the root block to run everything.

Every block follows the same lifecycle: setup prepares dependencies, check validates without side effects, run does the work and archives it, and dashboard inspects the result. Each block's own Getting Started page explains how to fill its config.yaml and which credentials it expects.

Step 1: Task Curation

Curator turns source signals such as GitHub PRs and issues into verified SWE tasks. Start from Curator Getting Started.

SkillPurpose
1/curator:setupPrepare Curator dependencies, repositories, GitHub tokens, and LLM inputs.
2/curator:checkValidate Curator config, repo pins, tokens, Docker, and LLM endpoint readiness.
3/curator:collect-prsCollect candidate PRs for downstream task generation.
4/curator:create-tasksGenerate and validate SWE tasks from the collected candidates.
*/curator:dashboardInspect curated task statistics, filters, and dataset quality signals.

Details: Configuration Guide.

Step 2: Trajectory Rollout

Tracer takes curated tasks and rolls out coding agents in isolated environments. Start from Tracer Getting Started.

SkillPurpose
1/tracer:setupPrepare rollout repositories, environments, task sources, agent runtimes, and LLM inputs.
2/tracer:checkValidate Tracer config, task source, proxy port, runtime image, repos, and endpoint readiness.
3/tracer:runLaunch trajectory rollout jobs for the configured tasks and agent scaffold.
*/tracer:dashboardMonitor rollout jobs, trajectory status, archives, and SFT conversion progress.

Details: Configuration Guide and Output Format.

Step 3: Training

Trainer converts trajectories into training-ready data and launches training. Start from Trainer Getting Started, which also lists the hardware a run actually needs.

SkillPurpose
1/trainer:setupPrepare training repositories, Python environment, data conversion stack, and GPU-side dependencies.
2/trainer:checkValidate trajectory source, model path, DeepSpeed config, GPU visibility, and training environment.
3/trainer:runConvert trajectories and launch the configured training job.
*/trainer:dashboardInspect training status, metrics, artifacts, and run comparisons.

Details: Configuration Guide and Output Format.

Step 4: Evaluation

Evaluator runs benchmarks and analysis over a model endpoint or a trained checkpoint. Start from Evaluator Getting Started.

SkillPurpose
1/evaluator:setupPrepare benchmark assets, Harbor environment, LiteLLM proxy, model endpoint, and agent runtime.
2/evaluator:checkValidate benchmark registry, runtime image, agent bind mount, proxy port, and completion readiness.
3/evaluator:runRun evaluation jobs for the configured model or checkpoint.
*/evaluator:dashboardInspect evaluation jobs, scores, trajectories, and analysis reports.

Details: Configuration Guide and Local Model Evaluation.

After a Run

Every block writes its runtime materials to its own artifacts/ directory: environment snapshots, run logs, outputs, intermediate caches, and archives. There are two ways in, and they answer different questions.

The run archive

Each run copies the exact configuration and scripts it executed into an archive, so a result stays explainable after the block config has moved on:

artifacts/index.yaml                    # one line per run: id, status, timestamps
artifacts/archives/run_NNN/
├── metadata.yaml                       # what ran, when, with which repo commits
├── config.yaml                         # the config as it was at run time
└── scripts/                            # the scripts as they were at run time

Start at artifacts/index.yaml when you want to know what happened: which run is newest, whether it completed, and where its archive is. Open the archived config.yaml when you want to know under what conditions, especially when comparing two runs that produced different numbers.

The dashboard

Open a dashboard when you want to know whether the result is any good:

/<block>:dashboard

Each block's board reads that block's artifacts directly, with no separate database, so it is always as current as the files on disk.

BlockWhat its board answers
CuratorHow many verified tasks exist, and how they are distributed across language, difficulty, and tags.
TracerWhich rollouts resolved, which failed repeatedly, and whether the trajectories are ready for training.
TrainerWhether training is healthy, and how this run compares with earlier ones.
EvaluatorThe benchmark resolve rate, and which task categories the failures came from.

Each dashboard page links a static demo snapshot, so you can see what a board looks like before you have run anything.

See What is a Block for how archives and dashboards fit into the block contract.

On this page