Skip to main content

Ax for Python

Build Ax programs from Python without giving up the Ax model: typed signatures, structured generation, provider routing, RLM agents, flows, and optimizer artifacts all come from the same shared compiler contract. The package feels like Python, but the behavior stays aligned with the main Ax implementation.

Quick Start

pip install axllm

Realtime audio over WebSocket is an opt-in extra (pulls websocket-client):

pip install axllm[realtime]
from axllm import s

sig = s("question:string -> answer:string")
schema = sig.to_json_schema("outputs")
assert "answer" in schema["properties"]

What You Can Build

  • Signatures and schemas: describe inputs and outputs once, then reuse that shape for validation, prompts, tools, and typed results.
  • AxGen: run structured generation with retries, tool calls, field processors, assertions, traces, usage, and provider-backed output parsing.
  • AxAI: call OpenAI-compatible, OpenAI Responses, Gemini, Anthropic, Azure OpenAI, DeepSeek, Mistral, Reka, Cohere, and Grok clients through one provider boundary.
  • Audio and realtime: .chat() accepts input_audio content parts, transcribe()/speak() do batch speech-to-text and text-to-speech, and realtime-capable models stream audio over a WebSocket — transparently through chat() or via the productized realtime_chat() driver (Go: RealtimeChat).
  • AxAgent and RLM: let an agent plan and execute actor-code steps while Ax keeps envelopes, state, logs, traces, context, discovery, recall, and final typed responses aligned.
  • AxFlow: compose AxGen, AxAgent, and nested flows into a portable program graph.
  • Optimizers: save, load, apply, and evaluate optimizer artifacts, including the generated GEPA engine.

Package Shape

  • Import package: axllm
  • Distribution metadata: pyproject.toml, MANIFEST.in, and axllm/py.typed
  • Base dependencies: none
  • Network support: available

Shared Ax behavior is Core-owned. The generated target code stays focused on idiomatic wrappers, transports, dynamic value helpers, and host-runtime boundaries.

Examples

no-key examples are deterministic local smokes. They are the fastest way to see the package work without any provider account:

  • python examples/signature_schema.py: signature parsing and JSON schema generation
  • python examples/axgen_scripted_client_tool.py: AxGen with a scripted client and tool
  • python examples/provider_mapping_no_key.py: provider mapping through a scripted transport
  • python examples/adaptive_balancer_no_key.py: adaptive balancer state, scoring, and stable route keys without a provider key
  • python examples/provider_stream_no_key.py: provider streaming through a scripted SSE transport
  • python examples/axflow_program_graph.py: AxFlow program graph
  • python examples/flow_mermaid.py: portable Mermaid flow parsing and canonical round-trip
  • python examples/audio_responses_mapping.py: OpenAI Responses speak/transcribe mapping through a scripted transport
  • python examples/realtime_audio_events.py: Grok/Gemini realtime audio setup, input, and event folding
  • python examples/realtime_audio_turn.py: drive a full realtime audio turn through the productized realtime_chat() driver (offline, scripted transport)
  • python examples/runtime_adapter.py: custom AxCodeRuntime session
  • python examples/runtime_protocol.py: process runtime protocol against the AxJS reference adapter
  • python examples/optimizer_artifact.py: optimizer artifact save/load/apply lifecycle
  • python examples/gepa_local_optimizer.py: local GEPA optimizer artifact generation
  • python examples/ace_playbook.py: grow an evolving context playbook with playbook() (offline, scripted client)
  • python examples/agent_playbook.py: attach a seeded agent playbook, exercise stage instructions and citations, learn from run-end failures, and verify accept/rollback evolution (offline, scripted client)
  • python examples/mcp_scripted_tools.py: MCP tool discovery and invocation through a scripted transport

provider-api examples make a real provider call and require OPENAI_API_KEY or OPENAI_APIKEY:

  • OPENAI_API_KEY=... python examples/axgen_openai_api.py: AxGen with a real OpenAI-compatible provider API
  • OPENAI_API_KEY=... python examples/flow_openai_api.py: AxFlow with a real OpenAI-compatible provider API

Runtime Profiles And RLM Agents

AxAgent uses an RLM executor loop. On each turn, the model writes a small actor-code step, and Ax sends that step into an AxCodeRuntime session. Think of the runtime as the agent's REPL: it keeps session state, exposes safe host callbacks, returns envelopes such as final(...), askClarification(...), discover(...), recall(...), and used(...), and lets the agent continue from the result.

The TypeScript package ships AxJSRuntime as the reference JavaScript implementation of that REPL contract. Generated runtime profiles are adapters for the same AxCodeRuntime / AxCodeSession boundary. They exist so RLM agents can execute actor code in a host runtime that fits the target package.

This package is not a TypeScript transpiler. AxIR compiles shared Ax semantics into native package code; it does not run your original Ax TypeScript application inside a Python runtime. Application code is still written in the language you are using here.

Optional profile files in this package:

  • javascript-quickjs: JavaScript actor code through a QuickJS protocol server via ProcessCodeRuntime.
  • python-pyodide: Python actor code through a Pyodide JSONL protocol server.

See examples/runtime_profiles/README.md for setup, policy, and verification details.

Optional runtime profiles are dependency-bearing and opt-in. Adapter policy owns sandboxing, dependency loading, hard cancellation, process security, and host permissions. The shared Ax contract still owns envelopes, state, logs, traces, and the model-visible protocol.

Contract Snapshot

  • Compiler contract version: 0.1
  • Package: axllm
  • Supported conformance suites: signature, schema, validation, prompt, axgen, axai, axagent, axoptimize, axprogram, axflow, axmcp, axevent
  • Provider mode: provider-descriptor-registry-openai-compatible-openai-responses-google-gemini-anthropic
  • Scripted transport support: true
  • Real network support: available

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

axllm-23.0.5.tar.gz (320.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

axllm-23.0.5-py3-none-any.whl (298.5 kB view details)

Uploaded Python 3

File details

Details for the file axllm-23.0.5.tar.gz.

File metadata

  • Download URL: axllm-23.0.5.tar.gz
  • Upload date:
  • Size: 320.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for axllm-23.0.5.tar.gz
Algorithm Hash digest
SHA256 990b112ee9eabd26b163607302b6d822f5f37c56e7306c0e6b2d3394bcc446d9
MD5 a7eb168fd407848e02b2fab633045c38
BLAKE2b-256 ef96d39631a0d691ec75300b6b72b44491105d2edb23df4dcf75dc606d28c4f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for axllm-23.0.5.tar.gz:

Publisher: package-publish.yml on ax-llm/ax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file axllm-23.0.5-py3-none-any.whl.

File metadata

  • Download URL: axllm-23.0.5-py3-none-any.whl
  • Upload date:
  • Size: 298.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for axllm-23.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b0f7e78c0ef378f5156ca8c4b9c41b5e538410799da0c40bab554c970355d778
MD5 596fc0e0b24ebba790a28bf2d38cc317
BLAKE2b-256 41b33bffc7bfa99daecef66d1826d4f2c951dfe768c975cdf57a8692def583fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for axllm-23.0.5-py3-none-any.whl:

Publisher: package-publish.yml on ax-llm/ax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page