Skip to main content
Configuration dataclass for the cascadeflow harness. Pass to cascadeflow.init(config=...) for full control.

Definition

from dataclasses import dataclass
from typing import Optional

@dataclass
class HarnessConfig:
    mode: HarnessMode = "off"
    verbose: bool = False
    budget: Optional[float] = None
    max_tool_calls: Optional[int] = None
    max_latency_ms: Optional[float] = None
    max_energy: Optional[float] = None
    kpi_targets: Optional[dict[str, float]] = None
    kpi_weights: Optional[dict[str, float]] = None
    compliance: Optional[str] = None

Fields

FieldTypeDefaultDescription
mode"off" | "observe" | "enforce""off"Harness mode
verboseboolFalsePrint decisions to stderr
budgetfloat | NoneNoneMax USD for the run (None = unlimited)
max_tool_callsint | NoneNoneMax tool/function calls (None = unlimited)
max_latency_msfloat | NoneNoneMax wall-clock ms per call (None = unlimited)
max_energyfloat | NoneNoneMax energy units (None = unlimited)
kpi_targetsdict | NoneNoneTarget values per KPI dimension
kpi_weightsdict | NoneNoneRelative weights per KPI dimension
compliancestr | NoneNoneCompliance mode: "gdpr", "hipaa", "pci", "strict"

HarnessMode

HarnessMode = Literal["off", "observe", "enforce"]

Usage

from cascadeflow import HarnessConfig
import cascadeflow

config = HarnessConfig(
    mode="enforce",
    budget=1.00,
    max_tool_calls=20,
    max_energy=200.0,
    compliance="gdpr",
    kpi_weights={"quality": 0.6, "cost": 0.3, "latency": 0.1},
    kpi_targets={"quality": 0.85},
    verbose=True,
)

cascadeflow.init(config=config)

Import

from cascadeflow import HarnessConfig