AxGen
Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L149
Extends
AxProgram<IN,OUT>
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L180
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,
options: Readonly<AxProgramForwardOptions<any>>): AxGenStreamingOut<OUT>;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L2402
Parameters
| Parameter | Type |
|---|---|
ai | Readonly<AxAIService> |
values | IN |
options | Readonly<AxProgramForwardOptions<any>> |
Returns
AxGenStreamingOut<OUT>
_measurePromptCharsForInternalUse()
_measurePromptCharsForInternalUse(
ai: Readonly<AxAIService>,
values: IN,
options?: Readonly<Partial<Omit<AxProgramForwardOptions<any>, "functions">>>): Promise<AxPromptMetrics>;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L558
Internal
Parameters
| Parameter | Type |
|---|---|
ai | Readonly<AxAIService> |
values | IN |
options? | Readonly<Partial<Omit<AxProgramForwardOptions<any>, "functions">>> |
Returns
Promise<AxPromptMetrics>
addAssert()
addAssert(fn: (values: OUT) =>
| undefined
| string
| boolean
| Promise<undefined | string | boolean>, message?: string): void;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L611
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L686
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
| Promise<undefined | string | boolean>,
message?: string): void;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L615
Parameters
| Parameter | Type |
|---|---|
fieldName | keyof OUT |
fn | (content: string, done?: boolean) => | undefined | string | boolean | Promise<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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L672
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L370
Parameters
| Parameter | Type |
|---|---|
optimizedProgram | AxOptimizedProgram<OUT> |
Returns
void
Implementation of
AxProgrammable.applyOptimization
Inherited from
applyOptimizedComponents()
applyOptimizedComponents(updates: Readonly<Record<string, string>>): void;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L444
Broadcast component updates across this subtree. Each node filters keys
belonging to itself and dispatches via applyLocalOptimizedComponents.
Parameters
| Parameter | Type |
|---|---|
updates | Readonly<Record<string, string>> |
Returns
void
Implementation of
AxProgrammable.applyOptimizedComponents
Inherited from
AxProgram.applyOptimizedComponents
clearInstruction()
clearInstruction(): void;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L235
Returns
void
clone()
clone(): AxGen<IN, OUT>;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L153
Returns
AxGen<IN, OUT>
forward()
forward<T>(
ai: T,
values: IN,
options?: Readonly<AxProgramForwardOptionsWithModels<T>>): Promise<OUT>;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L2626
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
- Validate - Validate parsed 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 | Input values matching the signature’s input fields |
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
getChatLog()
getChatLog(): readonly AxChatLogEntry[];Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L705
Get the normalized chat log from the last forward() call. One entry per AI chat round-trip, with roles normalized to system/user/assistant/tool and inline XML for thinking and tool calls.
Returns
readonly AxChatLogEntry[]
Implementation of
Overrides
getId()
getId(): string;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L96
Returns
string
Implementation of
Inherited from
getInstruction()
getInstruction(): undefined | string;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L231
Returns
undefined | string
getOptimizableComponents()
getOptimizableComponents(): readonly AxOptimizableComponent[];Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L393
Walks the program tree and emits one AxOptimizableComponent per
string-valued artifact reachable from this node. Subclasses override
localOptimizableComponents() to add their own; tree traversal is
handled here so callers never need to recurse.
Returns
readonly AxOptimizableComponent[]
Implementation of
AxProgrammable.getOptimizableComponents
Inherited from
AxProgram.getOptimizableComponents
getSignature()
getSignature(): AxSignature;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L69
Returns
Implementation of
Inherited from
getTraces()
getTraces(): AxProgramTrace<IN, OUT>[];Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L151
Returns
AxProgramTrace<IN, OUT>[]
Implementation of
Inherited from
getUsage()
getUsage(): AxModelUsage & object[];Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L165
Returns
AxModelUsage & object[]
Implementation of
Inherited from
namedProgramInstances()
namedProgramInstances(): AxNamedProgramInstance<IN, OUT>[];Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L337
Returns
AxNamedProgramInstance<IN, OUT>[]
Implementation of
AxProgrammable.namedProgramInstances
Inherited from
AxProgram.namedProgramInstances
namedPrograms()
namedPrograms(): object[];Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L306
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L100
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L202
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L211
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L87
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L2900
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L111
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L227
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/program.ts#L73
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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L219
Stops an in-flight generation. Causes forward() / streamingForward()
to throw AxAIServiceAbortedError.
Returns
void
streamingForward()
streamingForward<T>(
ai: T,
values: IN,
options?: Readonly<AxProgramStreamingForwardOptionsWithModels<T>>): AxGenStreamingOut<OUT>;Defined in: https://github.com/ax-llm/ax/blob/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L2802
Type Parameters
| Type Parameter |
|---|
T extends Readonly<AxAIService<unknown, unknown, string>> |
Parameters
| Parameter | Type |
|---|---|
ai | T |
values | 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/5b28f9093bb70863b59459bb6df5062d005bce41/src/ax/dsp/generate.ts#L591
Parameters
| Parameter | Type |
|---|---|
meter? | Meter |
Returns
void