> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://www.comet.com/docs/opik/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://www.comet.com/docs/opik/_mcp/server.

# Optimization algorithms overview

> Compare Agent Optimizer algorithms and pick the right one for your workload.

The Opik Optimizer SDK wraps a mix of in-house algorithms (MetaPrompt, HRPO) and external research projects (e.g., GEPA). Each optimizer follows the same API (`optimize_prompt`, `OptimizationResult`) so you can swap them without rewriting your pipeline. Use this page to quickly decide which optimizer to run before diving into the detailed guides.

## How optimizers run

1. **Input** – you pass a `ChatPrompt` definition, dataset, and metric. Many optimizers also accept additional parameters to set which model to use, number of optimization rounds, and even tool use (MCP and function calling) definitions.
2. **Candidate generation** – each algorithm proposes new prompts (MetaPrompt via reasoning LLMs, Evolutionary via mutation/crossover, GEPA via its genetic-Pareto search).
3. **Evaluation** – Opik runs the candidate against your dataset/metric and logs trials to the dashboard. The steps 2-to-3 continue to loop until such time a best prompt is found or the search has been exhausted.
4. **Result delivery** – every optimizer returns an `OptimizationResult` with the best prompt, history, scores, and metadata which is passed back and also available in the UI.

## Selection matrix

| Optimizer                                                                                 | Origin          | Best for                               | Key inputs                                 | Notes                                                                                           |
| ----------------------------------------------------------------------------------------- | --------------- | -------------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| [MetaPrompt](/development/optimization-runs/algorithms/metaprompt_optimizer)              | Opik            | General prompt refinement              | Prompt + dataset + metric                  | Reasoning LLM critiques and rewrites prompts, supports MCP workflows and tool schemas.          |
| [HRPO](/development/optimization-runs/algorithms/hierarchical_adaptive_optimizer)         | Opik            | Root-cause analysis on complex prompts | Metrics with detailed reasons              | Batches failures, synthesizes themes, proposes targeted fixes.                                  |
| [Few-Shot Bayesian](/development/optimization-runs/algorithms/fewshot_bayesian_optimizer) | Opik            | Optimizing few-shot example sets       | Dataset with demonstrations                | Uses Optuna to pick count/order of examples for chat prompts.                                   |
| [Evolutionary](/development/optimization-runs/algorithms/evolutionary_optimizer)          | Opik + DEAP     | Exploring diverse prompt structures    | Mutation/crossover params                  | Multi-objective optimization (score vs. length) and LLM-driven operators.                       |
| [GEPA](/development/optimization-runs/algorithms/gepa_optimizer)                          | External (GEPA) | Single-turn, reflection-heavy tasks    | `gepa` dependency + reflection minibatches | We provide a wrapper so GEPA consumes Opik datasets/metrics while preserving its Pareto search. |
| [Parameter](/development/optimization-runs/algorithms/parameter_optimizer)                | Opik            | Temperature / top\_p tuning            | Prompt + parameter search space            | Leaves prompt untouched; focuses on sampling parameters via Bayesian search.                    |

## How to choose

1. **Identify the constraint** (e.g., wording vs. tool usage vs. parameters).
2. **Check dataset readiness** – reflective optimizers need detailed metric reasons. Consider splitting your data into training and validation sets to prevent overfitting.
3. **Estimate budget** – evolutionary/GEPA runs consume more tokens than MetaPrompt.
4. **Plan follow-up** – you can chain optimizers (MetaPrompt → Parameter) when needed.

## Next steps

* Follow the individual optimizer guides for configuration details.
* Learn how to [chain optimizers](/development/optimization-runs/advanced/chaining_optimizers) for complex workflows.