Ax is a TypeScript-first programming framework for building applications with large language models through typed generation, agents, workflows, and optimization tools. It is intended for developers who want one model for LLM programs across TypeScript, Python, Java, C++, Go, Rust, and other runtimes.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/ax-llm/ax/ax-agentnpx skills add ax-llm/ax --skill ax-agentgit clone --depth 1 https://github.com/ax-llm/axWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ax-llm/ax/ax-agent)<a href="https://agentmods.dev/skills/ax-llm/ax/ax-agent"><img src="https://agentmods.dev/badge/skills/ax-llm/ax/ax-agent.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00131 | $0.08000 |
| Opus 5 | $0.00066 | $0.04000 |
| Sonnet 5 | $0.00026 | $0.01600 |
| Haiku 4.5 | $0.00013 | $0.00800 |
Grade A, and why
ax-agent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- ax-agent — 88% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 696 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AxAgent Codegen Rules (@ax-llm/ax)
Use this skill to generate small, correct AxAgent code. Prefer modern factory-style APIs and copyable patterns. Do not write tutorial prose unless the user explicitly asks for explanation.
Your job is to choose the smallest correct AxAgent shape for the user's needs:
- If the user wants a normal tool-using assistant, keep the config minimal.
- If the user wants long-running code execution, use the
ax-agent-rlmskill. - If the user wants callbacks, logs, tracing, or usage data, use the
ax-agent-observabilityskill. - If the user wants dynamic memory retrieval or skill-guide loading, use the
ax-agent-memory-skillsskill. - If the user wants tuning or eval with
agent.optimize(...), use theax-agent-optimizeskill. - If the user wants MCP transports, authentication, catalogs, subscriptions,
tasks, Apps, or event-driven wake/resume, use the
ax-mcpskill.
Use These Defaults
- Use
agent(...), notnew AxAgent(...). - Prefer string signatures or
f()signatures over hand-written signature objects. - Put
ai,judgeAI, andagentIdentityon theagent(...)config when you want instance defaults or child-agent metadata. - Prefer
fn(...)for host-side function definitions instead of hand-writing JSON Schema objects. - Prefer namespaced functions such as
utils.search(...)orkb.find(...). - Pass child agents directly in
functions: [...]. They land under theiragentIdentity.namespace(orutilsif unset), exactly like afn()tool. - If discovery is enabled, call
discover(...)before using callables whose docs are not already in the prompt. - Use explicit child agents in
functions: [...]for specialist delegation; do not model that as recursivellmQuery(...). - Add
bubbleErrorsonly for fatal infrastructure errors that should abort.forward().
Decision Guide
Map user intent to agent shape before writing code:
- "Use tools and answer" -> plain
agent(...)with local functions, no extra observability. - "Need child agents with distinct responsibilities" -> add child agents to the parent's
functions: [...]list and set each child'sagentIdentity.namespacewhen you want a specific runtime call site such asteam.writer(...). - "Need tool discovery because names/schemas are not stable" -> enable discovery and generate discovery-first actor code.
- "Need certain errors to escape the agent loop" -> add
bubbleErrorswith error classes; those errors propagate through function handlers, actor code, andllmQuery(...)sub-queries to.forward(). - "Inspect large context with code", "RLM", or "
llmQuery(...)" -> useax-agent-rlm. - "Need debugging, traces, progress updates, tool-call logs, chat logs, or usage" -> use
ax-agent-observability. - "Need memories, recall, dynamic skill guides,
discover({ skills }), or loaded/used tracking" -> useax-agent-memory-skills.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 696 lines · 131 tokens per session scan A 0c5e6e840944
ax-agent is a skill published in the GitHub repository ax-llm/ax (2,891 stars, last pushed 3d ago), licensed Apache-2.0. It adds 131 tokens to every session and 8,000 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
dspy
DSPy: declarative LM programs, auto-optimize prompts, RAG.
mengram-memory
Long-term memory with 3 types (facts, events, workflows). Remember user preferences, past conversations, and learned procedures across sessions. Use when recalling what the user said before, saving important info, getting user context, or tracking completed workflows.
agent-optimize
Free-form optimization algorithm for agent orchestration mode: the conversational agent owns the whole search — proposing capability edits itself, screening them cheaply, gating each on full val, and sealing test once. Use when orchestrationmode is agent and algorithmskill is agent-optimize. For a deterministic loop…
tools
Optimize an agent's OWN tool surface (tools it implements, not an external MCP server). Use when the agent mis-selects tools, fills arguments wrong, calls the same tool N times in a row, or has a confusing, redundant, or oversized toolset. Covers tool names and descriptions, parameter docs, tool schemas, handler code…
gepa
Runs the GEPA optimization loop (arXiv:2507.19457) — sample-efficient reflective Pareto search. A cheap train-minibatch pre-gate decides whether a proposal is worth an expensive val evaluation, and parents are sampled from a per-instance frontier so specialists survive instead of being averaged away. Use when rollouts…
Memory recall and capture
Use this skill when the user wants to recall something from past conversations, project decisions, or learned preferences across sessions — or when they want to explicitly save something to long-term memory. Trigger keywords include "remember", "recall", "what did we decide", "you forgot", "save this", or any…