Opik Agent Optimizer API Reference
The Opik Agent Optimizer SDK provides a comprehensive set of tools for optimizing LLM prompts and agents. This reference guide documents the standardized API that all optimizers follow, ensuring consistency and interoperability across different optimization algorithms.
Key Features
- Standardized API: All optimizers follow the same interface for
optimize_prompt()methods - Multiple Algorithms: Support for various optimization strategies including evolutionary, few-shot, meta-prompt, and GEPA
- MCP Support: Built-in support for Model Context Protocol tool calling
- Consistent Results: All optimizers return standardized
OptimizationResultobjects - Counter Tracking: Built-in LLM and tool call counters for monitoring usage
- Backward Compatibility: All original parameters preserved through kwargs extraction
- Deprecation Warnings: Clear warnings for deprecated parameters with migration guidance
Core Classes
The SDK provides several optimizer classes that all inherit from BaseOptimizer and implement the same standardized interface:
- ParameterOptimizer: Optimizes LLM call parameters (temperature, top_p, etc.) using Bayesian optimization
- FewShotBayesianOptimizer: Uses few-shot learning with Bayesian optimization
- MetaPromptOptimizer: Employs meta-prompting techniques for optimization
- EvolutionaryOptimizer: Uses genetic algorithms for prompt evolution
- GepaOptimizer: Leverages GEPA (Genetic-Pareto) optimization approach
- HRPO (Hierarchical Reflective Prompt Optimizer): Uses hierarchical root cause analysis for targeted prompt refinement
Standardized Method Signatures
All optimizers implement these core methods with identical signatures:
optimize_prompt()
Deprecation Warnings
The following parameters are deprecated and will be removed in future versions:
Constructor Parameters
num_threadsin optimizer constructors: Usen_threadsinstead
Example Migration
FewShotBayesianOptimizer
Parameters:
Methods
begin_round
Parameters:
cleanup
evaluate
Parameters:
evaluate_prompt
Parameters:
evaluate_with_result
Parameters:
finish_candidate
Parameters:
finish_round
Parameters:
get_config
Parameters:
get_default_prompt
Parameters:
get_history_entries
get_history_rounds
get_metadata
Parameters:
get_optimizer_metadata
get_prompt
Parameters:
list_prompts
on_trial
Parameters:
optimize_prompt
Parameters:
post_baseline
Parameters:
post_optimize
Parameters:
post_round
Parameters:
post_trial
Parameters:
pre_baseline
Parameters:
pre_optimize
Parameters:
pre_round
Parameters:
pre_trial
Parameters:
record_candidate_entry
Parameters:
run_optimization
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_candidate
Parameters:
with_dataset_split
Parameters:
GepaOptimizer
Parameters:
Methods
begin_round
Parameters:
cleanup
evaluate
Parameters:
evaluate_prompt
Parameters:
evaluate_with_result
Parameters:
finish_candidate
Parameters:
finish_round
Parameters:
get_config
Parameters:
get_default_prompt
Parameters:
get_history_entries
get_history_rounds
get_metadata
Parameters:
get_optimizer_metadata
get_prompt
Parameters:
list_prompts
on_trial
Parameters:
optimize_prompt
Parameters:
post_baseline
Parameters:
post_optimize
Parameters:
post_round
Parameters:
post_trial
Parameters:
pre_baseline
Parameters:
pre_optimize
Parameters:
pre_round
Parameters:
pre_trial
Parameters:
record_candidate_entry
Parameters:
run_optimization
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_candidate
Parameters:
with_dataset_split
Parameters:
MetaPromptOptimizer
Parameters:
Methods
begin_round
Parameters:
cleanup
evaluate
Parameters:
evaluate_prompt
Parameters:
evaluate_with_result
Parameters:
finish_candidate
Parameters:
finish_round
Parameters:
get_config
Parameters:
get_default_prompt
Parameters:
get_history_entries
get_history_rounds
get_metadata
Parameters:
get_optimizer_metadata
get_prompt
Parameters:
list_prompts
on_trial
Parameters:
optimize_prompt
Parameters:
post_baseline
Parameters:
post_optimize
Parameters:
post_round
Parameters:
post_trial
Parameters:
pre_baseline
Parameters:
pre_optimize
Parameters:
pre_round
Parameters:
pre_trial
Parameters:
record_candidate_entry
Parameters:
run_optimization
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_candidate
Parameters:
with_dataset_split
Parameters:
EvolutionaryOptimizer
Parameters:
Methods
begin_round
Parameters:
cleanup
evaluate
Parameters:
evaluate_prompt
Parameters:
evaluate_with_result
Parameters:
finish_candidate
Parameters:
finish_round
Parameters:
get_config
Parameters:
get_default_prompt
Parameters:
get_history_entries
get_history_rounds
get_metadata
Parameters:
get_optimizer_metadata
get_prompt
Parameters:
list_prompts
on_trial
Parameters:
optimize_prompt
Parameters:
post_baseline
Parameters:
post_optimize
Parameters:
post_round
Parameters:
post_trial
Parameters:
pre_baseline
Parameters:
pre_optimize
Parameters:
pre_round
Parameters:
pre_trial
Parameters:
record_candidate_entry
Parameters:
run_optimization
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_candidate
Parameters:
with_dataset_split
Parameters:
HierarchicalReflectiveOptimizer
Parameters:
Methods
begin_round
Parameters:
cleanup
evaluate
Parameters:
evaluate_prompt
Parameters:
evaluate_with_result
Parameters:
finish_candidate
Parameters:
finish_round
Parameters:
get_config
Parameters:
get_default_prompt
Parameters:
get_history_entries
get_history_rounds
get_metadata
Parameters:
get_optimizer_metadata
get_prompt
Parameters:
list_prompts
on_trial
Parameters:
optimize_prompt
Parameters:
post_baseline
Parameters:
post_optimize
Parameters:
post_round
Parameters:
post_trial
Parameters:
pre_baseline
Parameters:
pre_optimize
Parameters:
pre_round
Parameters:
pre_trial
Parameters:
record_candidate_entry
Parameters:
run_optimization
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_candidate
Parameters:
with_dataset_split
Parameters:
ParameterOptimizer
Parameters:
Methods
begin_round
Parameters:
cleanup
evaluate
Parameters:
evaluate_prompt
Parameters:
evaluate_with_result
Parameters:
finish_candidate
Parameters:
finish_round
Parameters:
get_config
Parameters:
get_default_prompt
Parameters:
get_history_entries
get_history_rounds
get_metadata
Parameters:
get_optimizer_metadata
get_prompt
Parameters:
list_prompts
on_trial
Parameters:
optimize_parameter
Parameters:
post_baseline
Parameters:
post_optimize
Parameters:
post_round
Parameters:
post_trial
Parameters:
pre_baseline
Parameters:
pre_optimize
Parameters:
pre_round
Parameters:
pre_trial
Parameters:
record_candidate_entry
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_candidate
Parameters:
with_dataset_split
Parameters:
ParameterSearchSpace
Parameters:
ParameterSpec
Parameters:
ParameterType
Parameters:
BaseOptimizer
Parameters:
Methods
begin_round
Parameters:
cleanup
evaluate
Parameters:
evaluate_prompt
Parameters:
evaluate_with_result
Parameters:
finish_candidate
Parameters:
finish_round
Parameters:
get_config
Parameters:
get_default_prompt
Parameters:
get_history_entries
get_history_rounds
get_metadata
Parameters:
get_prompt
Parameters:
list_prompts
on_trial
Parameters:
optimize_prompt
Parameters:
post_baseline
Parameters:
post_optimize
Parameters:
post_round
Parameters:
post_trial
Parameters:
pre_baseline
Parameters:
pre_optimize
Parameters:
pre_round
Parameters:
pre_trial
Parameters:
record_candidate_entry
Parameters:
run_optimization
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_candidate
Parameters:
with_dataset_split
Parameters:
ChatPrompt
Parameters:
Methods
copy
get_messages
Parameters:
replace_in_messages
Parameters:
set_messages
Parameters:
to_dict
AlgorithmResult
Parameters:
OptimizationResult
Parameters:
OptimizationContext
Parameters:
OptimizationHistoryState
Parameters:
Methods
clear
end_round
Parameters:
finalize_stop
Parameters:
get_entries
get_rounds
record_trial
Parameters:
set_context
Parameters:
set_default_dataset_split
Parameters:
set_pareto_front
Parameters:
set_selection_meta
Parameters:
start_round
Parameters:
with_dataset_split
Parameters:
OptimizationRound
Parameters:
Methods
to_dict
OptimizationTrial
Parameters:
Methods
to_dict
OptimizableAgent
Parameters:
Methods
init_agent
Parameters:
init_llm
invoke
Parameters:
invoke_agent
Parameters:
invoke_agent_candidates
Parameters:
invoke_dataset_item
Parameters:
invoke_prompt
Parameters:
llm_invoke
Parameters:
MultiMetricObjective
Parameters:
PromptLibrary
Parameters:
Methods
get
Parameters:
get_default
Parameters:
keys
set
Parameters:
update
Parameters: