Base configuration shared by all flows.
| 11 | |
| 12 | |
| 13 | class BaseFlowCfg(BaseModel): |
| 14 | """Base configuration shared by all flows.""" |
| 15 | |
| 16 | model_config = ConfigDict(extra="forbid") |
| 17 | |
| 18 | # Model & execution |
| 19 | model: str = "gpt-4o" |
| 20 | model_settings: ModelSettings | None = None |
| 21 | max_turns: int = 10 |
| 22 | timeout_seconds: float = 300.0 |
| 23 | |
| 24 | # Output persistence |
| 25 | output_dir: str | None = None |
| 26 | overwrite: bool = False |
| 27 | |
| 28 | # Mind / memory (filesystem-backed when set) |
| 29 | memory_dir: str | None = None |
| 30 | |
| 31 | # Observability (consumed by flows/_runner in PR5) |
| 32 | workflow_name: str | None = None |
| 33 | trace_metadata: dict[str, str] | None = None |
| 34 | trace_include_sensitive_data: bool = True |
| 35 | tracing_disabled: bool = False |
| 36 | archive_trajectory: bool = True |
| 37 | |
| 38 | # Cost / budget guardrails (enforced in PR5+) |
| 39 | max_total_input_tokens: int | None = None |
| 40 | max_total_cost_usd: float | None = None |
| 41 | |
| 42 | # Default guardrails (populated in PR8+) |
| 43 | enable_default_guardrails: bool = True |
| 44 | |
| 45 | |
| 46 | class BaseInput(BaseModel): |
no outgoing calls