flow
function flow<TInput, TOutput>(options?: object): AxFlow<TInput, TOutput, {
}, TInput>;
Defined in: https://github.com/ax-llm/ax/blob/d2df625e2c2fd70a090d6321c042579c2819f0d1/src/ax/flow/flow.ts#L2885
Creates a new AxFlow instance with required input type specification.
The input type must be specified upfront to enable proper type inference throughout the flow construction and execution.
Example
// ✅ Define input type upfront for better type safety
const workflow = flow<{ userInput: string, options?: any }>()
.map(state => ({ ...state, processedInput: state.userInput.toUpperCase() }))
.node('analyzer', 'processedInput:string -> result:string')
// ✅ Simple input types work too
const simpleFlow = flow<{ documentText: string }>()
.node('summarizer', 'documentText:string -> summary:string')
Type Parameters
| Type Parameter | Default type |
|---|---|
TInput extends Record<string, any> | - |
TOutput | object |
Parameters
| Parameter | Type |
|---|---|
options? | { autoParallel?: boolean; batchSize?: number; debug?: boolean; logger?: AxFlowLoggerFunction; } |
options.autoParallel? | boolean |
options.batchSize? | number |
options.debug? | boolean |
options.logger? | AxFlowLoggerFunction |
Returns
AxFlow<TInput, TOutput, {
}, TInput>