| from __future__ import annotations | |
| from dataclasses import dataclass | |
| from typing import Any, Dict, List, Optional, Tuple | |
| class Action: | |
| variant: str | |
| fidelity: str | |
| knobs: Dict[str, Any] | |
| class Agent: | |
| def propose(self) -> Action: | |
| raise NotImplementedError | |
| def observe( | |
| self, | |
| action: Action, | |
| ok: bool, | |
| reward: Optional[float], | |
| metrics_flat: Optional[Dict[str, Any]], | |
| ) -> None: | |
| raise NotImplementedError | |