Documentation Index
Fetch the complete documentation index at: https://smithers.sh/llms.txt
Use this file to discover all available pages before exploring further.
import { Workflow } from "smithers-orchestrator";
type WorkflowProps = {
name: string;
cache?: boolean; // skip already-completed nodes on resume
children?: ReactNode;
};
import { createSmithers } from "smithers-orchestrator";
import { ToolLoopAgent as Agent } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
import { z } from "zod";
const { Workflow, Task, smithers, outputs } = createSmithers({
research: z.object({ findings: z.string() }),
});
const researcher = new Agent({
model: anthropic("claude-sonnet-4-20250514"),
instructions: "You are a research assistant.",
});
export default smithers((ctx) => (
<Workflow name="research-pipeline" cache>
<Task id="research" output={outputs.research} agent={researcher}>
{`Research: ${ctx.input.topic}`}
</Task>
</Workflow>
));
Notes
- Direct children run sequentially;
<Sequence> is only needed inside other control-flow components.
- Custom Drizzle tables require
runId and nodeId columns; tasks inside <Loop> also need iteration.