Create a new StateGraph for building stateful, multi-step workflows.
Accepts state definitions via Annotation.Root, StateSchema, or Zod schemas.
constructor<
SD extends unknown,
S = ExtractStateType<SD>,
U = ExtractUpdateType<SD, S>,
N extends string = "__start__",
I extends StateDefinitionInit = ExtractStateDefinition<SD>,
O extends StateDefinitionInit = ExtractStateDefinition<SD>,
C extends StateDefinitionInit = StateDefinition,
NodeReturnType = unknown,
InterruptType = unknown,
WriterType = unknown
>(
state: SD extends StateDefinitionInit SD<SD> : never,
options: C | AnnotationRoot<ToStateDefinition<C>> | StateGraphOptions<I, O, C, N, InterruptType, WriterType>
): StateGraph<SD, S, U, N, I, O, C, NodeReturnType, InterruptType, WriterType>| Name | Type | Description |
|---|---|---|
state* | SD extends StateDefinitionInit ? SD<SD> : never | |
options | C | AnnotationRoot<ToStateDefinition<C>> | StateGraphOptions<I, O, C, N, InterruptType, WriterType> |
const StateAnnotation = Annotation.Root({
messages: Annotation<string[]>({ reducer: (a, b) => [...a, ...b] }),
});
const graph = new StateGraph(StateAnnotation);const graph = new StateGraph(StateAnnotation, {
input: InputSchema,
output: OutputSchema,
});const graph = new StateGraph({
state: FullStateSchema,
input: InputSchema,
output: OutputSchema,
});const graph = new StateGraph({
input: InputAnnotation,
output: OutputAnnotation,
});