ax() API
Structured generation APIs for typed programs.
Most Used
ax
Create an AxGen program from a string or parsed signature.
| Field | Value |
|---|---|
| Kind | function |
| Ax concept | ax |
| API section | AxGen |
| Form | ax(spec: &str) |
| Returns | AxResult |
Important Options
functionsexamplesdemossample countresult pickermodelConfigmaxRetriesstreaming assertionsfield processorscontrolasyncMode
Examples
let qa = ax("question:string -> answer:string")?;AxGen
Structured generation program with indexed multi-sampling, winner selection, forward, streaming, optimization, trace, usage, and tool-call behavior.
| Field | Value |
|---|---|
| Kind | type |
| Ax concept | AxGen |
| API section | AxGen |
| Form | AxGen |
| Returns | program object |
Important Options
signaturefunctionsexamplesdemossample countresult pickermemoryprompt template
tool
Build a typed function tool. Rust uses tool because fn is reserved.
| Field | Value |
|---|---|
| Kind | function |
| Ax concept | fn |
| API section | Tools |
| Form | tool(name).description(...).arg(...).handler(...).build() |
| Returns | ToolBuilder |
Important Options
namedescriptionargsreturnshandlerexecution: blocking or backgroundcancellation-aware handler
Examples
let search = tool("search").description("Search docs").build();Advanced / internals / full reference
run_control
Create a controller for scoped steering, reasoning updates, cancellation, and queued/applied lifecycle events. Pass it through forward options.
| Field | Value |
|---|---|
| Kind | function |
| Ax concept | run_control |
| API section | AxGen |
| Form | run_control() |
| Returns | AxRunControl |
Examples
let control = run_control();AxRunControl
Run control shared by active and future descendant programs. Cancellation reports unresolved work and does not undo external effects.
| Field | Value |
|---|---|
| Kind | type |
| Ax concept | AxRunControl |
| API section | AxGen |
| Form | AxRunControl |
| Returns | run controller |
Important Options
steerthinking token budgettarget pathabortevent listener
AxCachingFunction
TypeScript’s cachingFunction: read and store finished AxGen outputs by key. The forward call’s function comes first, then the program’s, then the process-wide one, and a run control skips the cache.
| Field | Value |
|---|---|
| Kind | type |
| Ax concept | AxCachingFunction |
| API section | AxGen |
| Form | Arc<dyn Fn(&str, Option<&Value>) -> AxResult<Option<Value>> + Send + Sync> |
| Returns | stored output or miss |
Important Options
readstoreSHA-256 keystreamed hit as one delta
Examples
let qa = ax("question:string -> answer:string")?.with_caching_function(cache);set_caching_function
Register, replace, or clear the process-wide AxGen caching function.
| Field | Value |
|---|---|
| Kind | function |
| Ax concept | set_caching_function |
| API section | AxGen |
| Form | set_caching_function(Some(fn)) |
| Returns | void |
Important Options
caching functionclear
Examples
set_caching_function(Some(cache));Tool
Callable tool descriptor with JSON-schema-compatible parameters and a host handler.
| Field | Value |
|---|---|
| Kind | type |
| Ax concept | Tool |
| API section | Tools |
| Form | Tool |
| Returns | tool descriptor |
Important Options
parametersreturnshandler
Full Reference
Open the full Rust reference. This page highlights the ax symbols most relevant to everyday use.