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-java-flownpx skills add ax-llm/ax --skill ax-java-flowgit clone --depth 1 https://github.com/ax-llm/axWhat 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.00038 | $0.01038 |
| Opus 5 | $0.00019 | $0.00519 |
| Sonnet 5 | $0.00008 | $0.00208 |
| Haiku 4.5 | $0.00004 | $0.00104 |
Grade A, and why
ax-java-flow 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 today.
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.
This is a copy
81% identical to ax-cpp-flow — 79 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AxFlow For Java
This skill helps an agent write Java code with the generated Ax package dev.axllm:ax. Use the generated package API, examples, and manifests; do not import TypeScript-only APIs unless you are editing the TypeScript package.
When To Use
- Compose generators, agents, and nested flows into a workflow graph.
- Reason about flow state, node inputs, returns, caching, and errors.
- Use generated package examples for flow graphs and provider-backed flows.
Package Facts
- Language: Java.
- Package:
dev.axllm:ax. - Package API docs:
API.mdandaxir-api.json. - Capability manifest:
axir-capabilities.json. - Runnable examples:
examples/. - Real network support: yes.
- Scripted no-key transport support: yes.
- Runtime profiles:
javascript-quickjs,python-pyodide.
Core Pattern
AxGen draft = Ax.ax("topicText:string -> draftText:string");
AxFlow wf = Ax.flow(java.util.Map.of("id", "docs.coreFlow"))
.execute("draft", draft, java.util.Map.of(
"reads", java.util.List.of("topicText"),
"writes", java.util.List.of("draftResult", "draftText")))
.returns(java.util.Map.of("draftText", "draftText"));
More Patterns
Typed programs
Build each flow node from its own input/output contract.
AxGen classifier = Ax.ax("requestText:string -> route:class \"support, sales, engineering\"");
AxGen responder = Ax.ax("requestText:string, route:string -> responseText:string");
Class decision
Declare reads and writes so the responder waits for the typed route.
AxFlow branchFlow = Ax.flow(Map.of("id", "docs.branchFlow"))
.execute("classifier", classifier, Map.of("reads", List.of("requestText"), "writes", List.of("classifierResult", "route")))
.execute("responder", responder, Map.of("reads", List.of("requestText", "route"), "writes", List.of("responderResult", "responseText")))
.returns(Map.of("route", "route", "responseText", "responseText"));
Parallel fan-out and join
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.
- today Changed b3696653f070
- 3d ago First seen · 104 lines · 38 tokens per session scan A 7dfabec2dbc9
ax-java-flow is a skill published in the GitHub repository ax-llm/ax (2,890 stars, last pushed 2d ago), licensed Apache-2.0. It adds 38 tokens to every session and 1,038 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 81% identical to ax-cpp-flow, differing in 79 lines, and is treated as a copy.
Other skills, from other repositories
opik-backend
Java backend patterns for Opik. Use when working in apps/opik-backend, designing APIs, database operations, or services.
ai4j-app-builder
Use this skill when helping users build applications with AI4J in their own Java or Spring Boot projects, including first chat, streaming, tool/function calls, MCP, RAG, memory, Agent runtime, Coding Agent CLI embedding, FlowGram integration, provider configuration, dependency selection, and troubleshooting. It guides…
airflow-java-sdk
Guide for contributing to the Airflow Java SDK (AIP-108). Use this skill whenever a contributor is working in the java-sdk/ directory or on the Java coordinator in task-sdk/src/airflow/sdk/coordinators/java/ — whether they want to add a feature, write tests, fix a bug, understand the architecture, or prepare a PR.…
compiler-port
Port a compiler pass from TypeScript to Rust. Gathers context, plans the port, implements in a subagent with test-fix loop, then reviews.
jni-type-conversion
How to use @JniType annotations for ergonomic JNI. Relevant for Java files that use @NativeMethods or @CalledByNative.
wxjava-module-selector
根据微信公众号、小程序、微信支付、企业微信、开放平台、视频号或微信小店、腾讯企点和微信智能对话等业务场景,为用户选择合适的 WxJava Maven 模块、BOM 和示例入口。适用于用户询问“该用哪个模块”、依赖坐标、产品边界或单/多账号 Starter 选择时。.