synth-ai experiment manages experiment submissions to the local queue system. Use this command to submit GEPA and MIPRO prompt learning experiments that will be processed by the queue worker.
Overview
The experiment queue allows you to:- Submit multiple experiments for batch processing
- Control parallelism to manage resource usage
- Monitor experiment progress in real-time
- Cancel experiments and manage job execution
Prerequisites
-
Queue Worker Running: Start the queue worker first
-
Environment Variables: Set required environment variables
Quick Start
Commands
experiment submit
Submit a new experiment to the queue.
<file>- Path to JSON file with experiment specification, or-to read from stdin
--inline- Treat the argument as inline JSON instead of a file path
experiment list
List experiments with optional status filtering.
--status STATUS- Filter by status (can be used multiple times):QUEUED,RUNNING,COMPLETED,FAILED,CANCELED--limit N- Maximum number of experiments to list (default:20)--json- Emit JSON output instead of tables
experiment status
Show detailed status for a specific experiment.
--watch- Continuously refresh the status view--json- Emit JSON payload instead of formatted output--interval SECONDS- Refresh interval for watch mode (default:2.0)
experiment results
Show aggregate results for a completed experiment.
--json- Emit JSON payload instead of formatted output
experiment cancel
Cancel an experiment and revoke in-flight jobs.
experiments
Show live dashboard view of experiments.
--status STATUS- Filter by status (can be used multiple times)--recent N- Number of recent experiments to show (default:5)--watch- Continuously refresh the dashboard--json- Emit JSON instead of tables--interval SECONDS- Refresh interval for watch mode (default:2.0)
Experiment JSON Format
Required Fields
name(string) - Experiment namejobs(array) - Array of job specifications
Optional Fields
description(string) - Experiment descriptionparallelism(integer) - Maximum concurrent jobs (default:1, max:8)metadata(object) - Custom metadata
Job Specification
Each job in thejobs array requires:
job_type(string) - Either"gepa"or"mipro"config_path(string) - Path to TOML configuration fileconfig_overrides(object, optional) - Override config values using dot notation
Config Overrides
Use dot notation to override nested config values:Examples
Basic GEPA Experiment
Multiple Jobs with Parallelism
With Environment File Override
Workflow
- Start Queue Worker:
synth-ai queue start - Submit Experiment:
synth-ai experiment submit experiment.json - Monitor Progress:
synth-ai experiments --watchorsynth-ai experiment status <id> --watch - View Results:
synth-ai experiment results <id>when complete - Stop Worker:
synth-ai queue stopwhen done
Status Values
QUEUED- Experiment is queued, waiting for worker to processRUNNING- Experiment is currently runningCOMPLETED- All jobs completed successfullyFAILED- One or more jobs failedCANCELED- Experiment was canceled
Troubleshooting
Experiment Stuck in QUEUED
Symptoms: Experiment remains in QUEUED status Checklist:- Verify worker is running:
synth-ai queue status - Check Beat scheduler is enabled (default)
- Review worker logs:
tail -f logs/experiment_queue_worker.log
Job Validation Errors
Error:Config file not found or Environment file not found
Solution: Ensure all paths in the experiment JSON are absolute or relative to the current working directory. The config file and any referenced environment files must exist.
Parallelism Limits
Error:Input should be less than or equal to 8
Solution: The parallelism field has a maximum value of 8. Reduce the parallelism value in your experiment JSON.
Related Commands
synth-ai queue- Manage the queue workersynth-ai train- Direct training (bypasses queue)