# 6. View the results
optimization_result.display()
```

## Configuration Options

### Optimizer parameters

The optimizer has the following parameters:

<ParamField path="model" type="str" optional={true} defaultValue="gpt-4o">
  LiteLLM model name for optimizer's internal reasoning/generation calls
</ParamField>

<ParamField path="n_threads" type="int" optional={true} defaultValue="12" />

<ParamField path="verbose" type="int" optional={true} defaultValue="1">
  Controls internal logging/progress bars (0=off, 1=on).
</ParamField>

<ParamField path="seed" type="int" optional={true} defaultValue="42">
  Random seed for reproducibility (default: 42)
</ParamField>

<ParamField path="max_parallel_batches" type="int" optional={true} defaultValue="5" />

<ParamField path="batch_size" type="int" optional={true} defaultValue="25" />

<ParamField path="convergence_threshold" type="float" optional={true} defaultValue="0.01" />

<ParamField path="model_parameters" type="dict[str, typing.Any] | None" optional={true}>
  Optional dict of LiteLLM parameters for optimizer's internal LLM calls.
</ParamField>

### `optimize_prompt` parameters

The `optimize_prompt` method has the following parameters:

<ParamField path="prompt" type="ChatPrompt" />

<ParamField path="dataset" type="Dataset">
  Opik dataset name, or Opik dataset
</ParamField>

<ParamField path="metric" type="Callable">
  A metric function, this function should have two arguments:
</ParamField>

<ParamField path="experiment_config" type="dict | None" optional={true} />

<ParamField path="n_samples" type="int | float | str | None" optional={true}>
  Number of dataset items to use per evaluation. Use counts (e.g., 

  `50`

  ), fractions (e.g., 

  `0.1`

  ), percentages (e.g., "10%"), or "all"/"full"/None for the full dataset.
</ParamField>

<ParamField path="n_samples_minibatch" type="int | None" optional={true}>
  Optional number of samples for inner-loop minibatches (defaults to n_samples).
</ParamField>

<ParamField path="n_samples_strategy" type="str | None" optional={true}>
  Sampling strategy for subsampling (default: "random_sorted").
</ParamField>

<ParamField path="auto_continue" type="bool" optional={true} defaultValue="False" />

<ParamField path="agent_class" type="type[opik_optimizer.optimizable_agent.OptimizableAgent] | None" optional={true} />

<ParamField path="project_name" type="str" optional={true} defaultValue="Optimization" />

<ParamField path="max_trials" type="int" optional={true} defaultValue="5" />

<ParamField path="max_retries" type="int" optional={true} defaultValue="2" />

<ParamField path="kwargs" type="Any" />

### Model Support

There are two models to consider when using `HRPO`:

* `HRPO.model`: The model used for the root cause analysis and failure mode synthesis.
* `ChatPrompt.model`: The model used to evaluate the prompt.

The `model` parameter accepts any LiteLLM-supported model string (e.g., `"gpt-4o"`, `"azure/gpt-4"`,
`"anthropic/claude-3-opus"`, `"gemini/gemini-1.5-pro"`). You can also pass in extra model parameters
using the `model_parameters` parameter:

```python
optimizer = HRPO(
    model="anthropic/claude-3-opus-20240229",
    model_parameters={
        "temperature": 0.7,
        "max_tokens": 4096
    }
)
```

## Next Steps

1. Explore specific [Optimizers](/agent_optimization/algorithms/overview) for algorithm details.
2. Refer to the [FAQ](/agent_optimization/faq) for common questions and troubleshooting.
3. Refer to the [API Reference](/agent_optimization/advanced/api_reference) for detailed configuration options.