Results & Artifacts
Where trajectories, job results, and run archives live
Everything a job produces lands under this block's artifacts/ directory. This page maps out what is written and where.
Per-job outputs
artifacts/jobs/<job>/
├── result.json # aggregate job stats (rewards, errors, evals)
├── config.yaml # snapshot of the active config at launch
└── <task>/agent/litellm-trajectory.jsonl # one raw trajectory per tasklitellm-trajectory.jsonlis the primary output: the replayable log of one rollout, consumed by thesftblock and by SFT conversion.result.jsonaggregates rewards and error stats across all rollouts; it is what the dashboard reads.
This directory is the block's raw_trajectories_dir output (declared in config.yaml → runtime_info.output), consumed downstream by sft.
SFT data outputs
When conversion runs (automatically when sft_conversion.enabled is true, or manually via scripts/convert_trajectories.sh), it writes:
artifacts/sft_data/<job>/
├── im.jsonl # intermediate OpenAI-style messages, auto-scored
├── lf.json # LLaMA-Factory ShareGPT array (the sft block's input)
└── lf.stats.json # token/turn/score statistics for the dashboardThis is the block's sft_data_dir output. See SFT Data for the conversion pipeline.
Run archives
After each run, a snapshot is archived under:
artifacts/archives/run_NNN/
├── metadata.yaml # run id, timestamps, results, repo commit ids, copy of inputs
├── config.yaml # config as it was at run time
├── scripts/ # copy of executed scripts
├── session.log # session record
└── monitor.md # monitor outputand one entry is appended to artifacts/index.yaml. Use artifacts/index.yaml for archived run history and config.yaml → status for the current operational snapshot (see Status).
Cleaning up
scripts/clean.sh removes gitignored runtime outputs, including artifacts/sft_data, dashboard/site/, and the dashboard cache. It does not touch archived runs.