Create optimizer instance based on type.
(optimizer_type: str, reward_fn: Optional[Callable[[str, str, str], Any]] = None)
| 214 | return "", str(agent_result) if agent_result else "" |
| 215 | |
| 216 | def create_optimizer(optimizer_type: str, reward_fn: Optional[Callable[[str, str, str], Any]] = None): |
| 217 | """Create optimizer instance based on type.""" |
| 218 | base_config = { |
| 219 | 'workdir': config.workdir, |
| 220 | 'model_name': 'openrouter/gemini-3-flash-preview', |
| 221 | 'memory_name': 'optimizer_memory_system', |
| 222 | 'optimize_trainable_variables': False, |
| 223 | 'optimize_solution': True |
| 224 | } |
| 225 | |
| 226 | if optimizer_type == 'grpo': |
| 227 | return GrpoOptimizer( |
| 228 | num_candidates=4, |
| 229 | clip_ratio=0.2, |
| 230 | beta=0.01, |
| 231 | reward_fn=reward_fn, |
| 232 | prompt_name='grpo_optimizer', |
| 233 | **base_config |
| 234 | ) |
| 235 | elif optimizer_type == 'reinforce_pp': |
| 236 | return ReinforcePlusPlusOptimizer( |
| 237 | clip_ratio=0.2, |
| 238 | beta=0.01, |
| 239 | reward_fn=reward_fn, |
| 240 | prompt_name='reinforce_plus_plus_optimizer', |
| 241 | **base_config |
| 242 | ) |
| 243 | elif optimizer_type == 'reflection': |
| 244 | return ReflectionOptimizer(prompt_name='reflection_optimizer', |
| 245 | **base_config |
| 246 | ) |
| 247 | else: |
| 248 | raise ValueError(f"Unknown optimizer type: {optimizer_type}") |
| 249 | |
| 250 | |
| 251 | async def get_all_tasks(benchmark_name: str) -> List[Dict]: |
no test coverage detected