Skip to main content
Run bunx smthrs 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.
The implicit optimizer is OpenAI-compatible gpt-5.6-luna with reasoning effort medium; pass --provider to use another backend (see Providers). bunx smthrs optimize runs the eval suite twice:
  1. baseline run with the workflow’s current prompts
  2. optimized run with GEPA-generated prompt patches applied
The command writes the artifact only when the optimized score improves by at least --min-improvement; reports for both runs go to .smithers/optimizations/reports unless --report-dir is set.

Reuse an artifact

Apply the optimized prompts to future evals with --optimization:
The artifact patches only agent-backed <Task> prompts by nodeId; workflow structure, output schemas, retries, approvals, and persistence behavior stay unchanged.

Cerebras improvement demo

This run shows a GEPA patch fixing a baseline failure: the baseline prompt omitted the required optimization token and failed the eval, then Cerebras GEPA’s patch added the token and the optimized eval passed.
Observed result:

Providers

bunx smthrs optimize accepts the same provider vocabulary Smithers uses for agents and accounts: Default models track the SOTA model registry (current defaults and badges, refreshed by a daily research job). CLI provider names (codex, claude-code, antigravity, gemini, kimi) map to their hosted API equivalents for optimization, since GEPA needs a direct model call to propose prompt patches; providers with no single hosted backend (opencode, pi, amp, forge) go through a generic OpenAI-compatible endpoint instead. Smithers defaults research and prompt-optimization work to Luna. Automatic workflow routing keeps non-Codex providers behind Codex, but this standalone command never silently swaps paid API backends: if OpenAI is unavailable, select a Cerebras, Claude, Kimi, or other fallback explicitly with --provider. --provider heuristic is deterministic, needs no API call, and is meant for local tests and fixtures: place optimizationHints in each case’s metadata to control the patch, for example:
Artifacts are Smithers JSON records with baseline score, optimized score, improvement, prompt patches, and linked eval reports.