LegoFlow

BlockstracerRun Jobs

Run Jobs

A tracer job rolls a coding agent out across your prepared task set inside Harbor containers, capturing one trajectory per task. This section covers the full run path: selecting tasks, fronting your model with a LiteLLM proxy, and inspecting the outputs.

The whole flow is driven from a single config.yaml and executed by scripts/start.sh:

bash scripts/prepare_tasks.sh  # explicit staging step
bash scripts/dryrun.sh         # validate first
bash scripts/start.sh          # generate proxy config, start proxy, run Harbor

Task staging is not implicit: a normal start.sh expects prepared tasks. Set TRAJGEN_PREPARE_TASKS=1 only when you intentionally want it to run the preparation step inline.

start.sh runs the dry-run preflight, generates a per-job LiteLLM config, starts the proxy on the configured port, and builds the Harbor command. It resolves HARBOR_EXCLUDE_TASKS — which names excluded_tasks.txt and artifacts/processed_tasks.yaml rather than listing ids — into --exclude-task-name flags, then writes results under artifacts/jobs/. If sft_conversion.enabled is true, conversion runs after Harbor exits. Its EXIT trap stops the proxy and archives the run.

  • Prepare Tasks — manifest-filtered task copy, the processed-tasks ledger, and the exclude list
  • LiteLLM Proxy — the per-job proxy in front of your model API
  • Results & Artifacts — where trajectories, results, and archives land

Stop the proxy when done

If trajectory inference finishes but the LiteLLM proxy is still running, stop the proxy process started for this job. Do not kill unrelated LiteLLM processes on the host.