AxGen
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L146
Extends
AxProgram<IN,OUT>
Extended by
Type Parameters
| Type Parameter | Default type |
|---|---|
IN | any |
OUT extends AxGenOut | any |
Implements
AxProgrammable<IN,OUT>
Constructors
Constructor
new AxGen<IN, OUT>(signature:
| string
| Readonly<AxSignatureConfig>
| Readonly<AxSignature<IN & Record<string, any>, OUT>>, options?: Readonly<AxProgramForwardOptions<any>>): AxGen<IN, OUT>;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L170
Parameters
| Parameter | Type |
|---|---|
signature | | string | Readonly<AxSignatureConfig> | Readonly<AxSignature<IN & Record<string, any>, OUT>> |
options? | Readonly<AxProgramForwardOptions<any>> |
Returns
AxGen<IN, OUT>
Overrides
Methods
_forward1()
_forward1(
ai: Readonly<AxAIService>,
values: IN | AxMessage<IN>[],
options: Readonly<AxProgramForwardOptions<any>>): AxGenStreamingOut<OUT>;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L1651
Parameters
| Parameter | Type |
|---|---|
ai | Readonly<AxAIService> |
values | IN | AxMessage<IN>[] |
options | Readonly<AxProgramForwardOptions<any>> |
Returns
AxGenStreamingOut<OUT>
addAssert()
addAssert(fn: (values: OUT) =>
| undefined
| string
| boolean
| Promise<undefined | string | boolean>, message?: string): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L261
Parameters
| Parameter | Type |
|---|---|
fn | (values: OUT) => | undefined | string | boolean | Promise<undefined | string | boolean> |
message? | string |
Returns
void
addFieldProcessor()
addFieldProcessor<K>(fieldName: K, fn: (value: OUT[K], context?: object) => unknown): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L336
Type Parameters
| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
| Parameter | Type |
|---|---|
fieldName | K |
fn | (value: OUT[K], context?: object) => unknown |
Returns
void
addStreamingAssert()
addStreamingAssert(
fieldName: keyof OUT,
fn: (content: string, done?: boolean) => undefined | string | boolean,
message?: string): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L265
Parameters
| Parameter | Type |
|---|---|
fieldName | keyof OUT |
fn | (content: string, done?: boolean) => undefined | string | boolean |
message? | string |
Returns
void
addStreamingFieldProcessor()
addStreamingFieldProcessor<K>(fieldName: K, fn: (value: string, context?: object) => unknown): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L322
Type Parameters
| Type Parameter |
|---|
K extends string | number | symbol |
Parameters
| Parameter | Type |
|---|---|
fieldName | K |
fn | (value: string, context?: object) => unknown |
Returns
void
applyOptimization()
applyOptimization(optimizedProgram: AxOptimizedProgram<OUT>): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L307
Parameters
| Parameter | Type |
|---|---|
optimizedProgram | AxOptimizedProgram<OUT> |
Returns
void
Implementation of
AxProgrammable.applyOptimization
Inherited from
clone()
clone(): AxGen<IN, OUT>;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L150
Returns
AxGen<IN, OUT>
forward()
forward<T>(
ai: T,
values: IN | AxMessage<IN>[],
options?: Readonly<AxProgramForwardOptionsWithModels<T>>): Promise<OUT>;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L1868
Executes the generator with the given AI service and input values.
This is the main entry point for running an AI generation. The execution pipeline:
- Validate - Check input values match the signature
- Render - Build the prompt from signature, examples, and inputs
- Call - Send the request to the AI service
- Parse - Extract structured outputs from the response
- Assert - Validate outputs and retry with error correction if needed
Type Parameters
| Type Parameter |
|---|
T extends Readonly<AxAIService<unknown, unknown, string>> |
Parameters
| Parameter | Type | Description |
|---|---|---|
ai | T | The AI service instance to use (created via ai() factory) |
values | IN | AxMessage<IN>[] | Input values matching the signature’s input fields, or an array of AxMessage objects for multi-turn conversations |
options? | Readonly<AxProgramForwardOptionsWithModels<T>> | Optional execution configuration |
Returns
Promise<OUT>
Promise resolving to the output values matching the signature’s output fields
Throws
When input values don’t match the signature
Throws
When output parsing/validation fails after all retries
Throws
When the AI service request fails
Examples
const gen = ax('question: string -> answer: string');
const result = await gen.forward(ai, { question: 'What is 2+2?' });
console.log(result.answer); // "4"
const result = await gen.forward(ai, { question: 'Explain quantum computing' }, {
maxTokens: 2000,
temperature: 0.3,
stream: true
});
const mem = new AxMemory();
const chat = ax('message: string -> reply: string');
await chat.forward(ai, { message: 'Hi, my name is Alice' }, { mem });
const result = await chat.forward(ai, { message: 'What is my name?' }, { mem });
// result.reply will reference "Alice" from conversation history
const result = await gen.forward(ai, values, {
functions: [{
name: 'getWeather',
description: 'Get current weather for a city',
parameters: {
type: 'object',
properties: { city: { type: 'string', description: 'City name' } },
required: ['city']
},
func: async ({ city }) => fetchWeather(city)
}],
maxSteps: 5
});
Implementation of
getId()
getId(): string;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L93
Returns
string
Implementation of
Inherited from
getInstruction()
getInstruction(): undefined | string;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L217
Returns
undefined | string
getSignature()
getSignature(): AxSignature;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L66
Returns
Implementation of
Inherited from
getTraces()
getTraces(): AxProgramTrace<IN, OUT>[];
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L148
Returns
AxProgramTrace<IN, OUT>[]
Implementation of
Inherited from
getUsage()
getUsage(): AxModelUsage & object[];
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L162
Returns
AxModelUsage & object[]
Implementation of
Inherited from
namedPrograms()
namedPrograms(): object[];
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L276
Returns all programs in the hierarchy with their IDs and signatures.
Use this to discover the IDs needed for setDemos().
Equivalent to DSPy’s named_parameters().
Example
agent.setId('qa');
console.log(agent.namedPrograms());
// [
// { id: 'qa.actor', signature: '... -> javascriptCode' },
// { id: 'qa.responder', signature: '... -> answer' },
// ]
Returns
object[]
Inherited from
register()
register(prog: Readonly<AxTunable<IN, OUT> & AxUsable>, name?: string): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L97
Parameters
| Parameter | Type |
|---|---|
prog | Readonly<AxTunable<IN, OUT> & AxUsable> |
name? | string |
Returns
void
Inherited from
resetUsage()
resetUsage(): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L172
Returns
void
Implementation of
Inherited from
setDemos()
setDemos(demos: readonly AxProgramDemos<IN, OUT>[], options?: object): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L181
Parameters
| Parameter | Type |
|---|---|
demos | readonly AxProgramDemos<IN, OUT>[] |
options? | { modelConfig?: Record<string, unknown>; } |
options.modelConfig? | Record<string, unknown> |
Returns
void
Implementation of
Inherited from
setDescription()
setDescription(description: string): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L84
Parameters
| Parameter | Type |
|---|---|
description | string |
Returns
void
Inherited from
setExamples()
setExamples(examples: Readonly<AxProgramExamples<IN, OUT>>, options?: Readonly<AxSetExamplesOptions>): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L2126
Parameters
| Parameter | Type |
|---|---|
examples | Readonly<AxProgramExamples<IN, OUT>> |
options? | Readonly<AxSetExamplesOptions> |
Returns
void
Overrides
setId()
setId(id: string): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L108
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
void
Implementation of
Inherited from
setInstruction()
setInstruction(instruction: string): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L213
Parameters
| Parameter | Type |
|---|---|
instruction | string |
Returns
void
setSignature()
setSignature(signature:
| string
| Readonly<AxSignature<Record<string, any>, Record<string, any>>>
| Readonly<AxSignatureConfig>): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/program.ts#L70
Parameters
| Parameter | Type |
|---|---|
signature | | string | Readonly<AxSignature<Record<string, any>, Record<string, any>>> | Readonly<AxSignatureConfig> |
Returns
void
Inherited from
stop()
stop(): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L205
Stops an in-flight generation. Causes forward() / streamingForward()
to throw AxAIServiceAbortedError.
Returns
void
streamingForward()
streamingForward<T>(
ai: T,
values: IN | AxMessage<IN>[],
options?: Readonly<AxProgramStreamingForwardOptionsWithModels<T>>): AxGenStreamingOut<OUT>;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L2037
Type Parameters
| Type Parameter |
|---|
T extends Readonly<AxAIService<unknown, unknown, string>> |
Parameters
| Parameter | Type |
|---|---|
ai | T |
values | IN | AxMessage<IN>[] |
options? | Readonly<AxProgramStreamingForwardOptionsWithModels<T>> |
Returns
AxGenStreamingOut<OUT>
Implementation of
AxProgrammable.streamingForward
updateMeter()
updateMeter(meter?: Meter): void;
Defined in: https://github.com/ax-llm/ax/blob/71ea5064d766efdc031d375243a8e525911833e7/src/ax/dsp/generate.ts#L241
Parameters
| Parameter | Type |
|---|---|
meter? | Meter |
Returns
void