Skip to content
Français

HarnessModelRouting

import type { HarnessModelRouting } from "@elie-laloum/outpost";
  • kindRequired
    "model-routing"
    Validated routing declaration discriminator model-routing.
  • providerRequired
    DecisionProvider
    Independent decision provider used once per harness step after compaction.
  • modelRequired
    string
    Named router model, independently of the conversational candidate models.
  • decisionRequired
    Decision<Readonly<Record<string, DecisionQuestion>>>
    Frozen question declaration containing the selected choice question.
  • questionRequired
    string
    Explicit choice-question key whose criteria exactly match the candidate model keys.
  • modelsRequired
    Readonly<Record<string, AgentModel>>
    One candidate per declared choice; all use the harness model provider and have independent model settings.
  • minConfidenceRequired
    number
    Confidence threshold in [0,1]; lower confidence selects fallback. Defaults to 0.85 when declared.
  • fallbackRequired
    string
    Declared candidate key used for low confidence or permitted router failures.
  • onErrorRequired
    "fallback" | "fail"
    Defaults to fallback for timeout or classified unavailability only; fail propagates those faults. Other faults always propagate.
  • stateOptional
    ((context: HarnessModelRoutingContext) => DecisionState | Promise<DecisionState>) | undefined
    Optional synchronous/asynchronous state builder; default state contains instructions, visible history, tools, step and active model without opaque reasoning.
export interface HarnessModelRouting {
  readonly kind: "model-routing";
  readonly provider: DecisionProvider;
  readonly model: string;
  readonly decision: Decision;
  readonly question: string;
  readonly models: Readonly<Record<string, AgentModel>>;
  readonly minConfidence: number;
  readonly fallback: string;
  readonly onError: "fallback" | "fail";
  readonly state?: (
    context: HarnessModelRoutingContext,
  ) => DecisionState | Promise<DecisionState>;
}