bunx smithers-orchestrator optimize to generate improved prompts for agent tasks via GEPA, verify the improvement against your eval suite, and save the result as a reusable artifact.
gpt-5.6-luna with reasoning
effort medium. Pass --provider to select Cerebras, Claude, Kimi, or another
supported backend explicitly.
bunx smithers-orchestrator optimize runs the eval suite twice:
- baseline run with the workflow’s current prompts
- optimized run with GEPA-generated prompt patches applied
--min-improvement. Reports for both runs are written under .smithers/optimizations/reports unless --report-dir is set.
Reuse an artifact
Apply the optimized prompts to future evals with--optimization:
<Task> prompts by nodeId. Workflow structure, output schemas, retries, approvals, and persistence behavior stay unchanged.
Cerebras improvement demo
Example: the following run demonstrates a baseline failure corrected by a GEPA-generated patch. The baseline prompt did not include the required optimization token, so the eval failed. Cerebras GEPA generated a prompt patch that included the missing requirement, and the optimized eval passed.Providers
bunx smithers-orchestrator optimize accepts the same provider vocabulary Smithers uses for agents and accounts:
The default models track the SOTA model registry, which lists the current defaults and badges and is refreshed by a daily research job. The CLI provider names (
codex, claude-code, antigravity, gemini, kimi) map to their hosted API equivalents for optimization because GEPA needs a direct model call to propose prompt patches. Providers with no single hosted backend (opencode, pi, amp, forge) are still accepted through a generic OpenAI-compatible endpoint.
Smithers defaults research and prompt-optimization work to Luna. Automatic
workflow routing keeps non-Codex providers behind Codex; this standalone command
does not silently change paid API backends. If OpenAI is unavailable, select a
Cerebras, Claude, Kimi, or other fallback explicitly with --provider.
--provider heuristic is deterministic and intended for local tests and fixtures. Use heuristic when you want deterministic optimization without an API call: place optimizationHints in each case’s metadata to control the patch. It uses eval-case metadata such as: