Lifecycle at a glance
- Instrument a task app – expose your environment through
TaskAppConfig, enable tracing, and record rollouts with theuvx synth-ai evalcommand.
→ See Task app requirements. - Filter traces into JSONL – convert the trace database into SFT-ready conversations, optionally filtering by score, split, or metadata.
→ See Filtering traces. - Validate and launch training – check schema compliance, upload the dataset, and submit the job via
uvx synth-ai train --type sft.
→ See Training jobs. - Track progress and download checkpoints – monitor the job, capture the emitted
fine_tuned_modelid, and promote it to production.
→ See Deploying results. - Benchmark the new model – run the same rollouts (evaluation = rollouts) against the updated model to verify gains.
→ See Rollouts & evaluation.
Key commands
| Action | Command |
|---|---|
| Run rollouts | uvx synth-ai eval --app-id <task-app> --model <base-model> --seeds 1-10 |
| Filter traces into JSONL | uvx synth-ai filter --config path/to/filter_config.toml |
| Validate a dataset | uvx synth-ai train --type sft --dataset path/to/data.jsonl --config path/to/train.toml --no-poll (fails fast on invalid JSONL) |
| Submit training job | uvx synth-ai train --type sft --config path/to/train.toml --dataset path/to/data.jsonl |
| List fine-tuned models | curl -H "Authorization: Bearer $SYNTH_API_KEY" https://agent-learning.onrender.com/api/learning/models |
.env written by uvx synth-ai setup. Pass --env-file only when you need to override the detected environment.