Documentation Index
Fetch the complete documentation index at: https://smithers.sh/llms.txt
Use this file to discover all available pages before exploring further.
// Props
import { EscalationChain } from "smithers-orchestrator";
type EscalationChainProps = {
id?: string; // default "escalation"
levels: EscalationLevel[];
humanFallback?: boolean; // default false
humanRequest?: ApprovalRequest;
escalationOutput: z.ZodObject | Table | string;
skipIf?: boolean;
children?: ReactNode; // prompt forwarded to every level
};
type EscalationLevel = {
agent: AgentLike;
output: z.ZodObject | Table | string;
label?: string;
escalateIf?: (result: any) => boolean; // true -> next level
};
<Workflow name="support-ticket">
<EscalationChain
id="support"
escalationOutput={outputs.escalation}
humanFallback
humanRequest={{ title: "Ticket needs human support", summary: "Agents could not resolve." }}
levels={[
{ agent: fastAgent, output: outputs.tier1, label: "Tier 1", escalateIf: (r) => r.confidence < 0.7 },
{ agent: powerAgent, output: outputs.tier2, label: "Tier 2", escalateIf: (r) => r.confidence < 0.9 },
]}
>
Resolve this ticket: {ctx.input.ticketBody}
</EscalationChain>
</Workflow>
Notes
- Each level uses
continueOnFail; failures propagate to the next level.
escalateIf runs at task-execution time, not render time.