Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when writing Python code with `axllm` for flows, nodes, program graphs, nested programs, dynamic options, caching, and optimizer components.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -12% | 0% |
This skill helps an agent write Python code with the generated Ax package axllm. Use the generated package API, examples, and manifests; do not import TypeScript-only APIs unless you are editing the TypeScript package.
axllm.API.md and axir-api.json.axir-capabilities.json.examples/.javascript-quickjs, python-pyodide.pythonfrom axllm import ax, flow draft = ax("topicText:string -> draftText:string") wf = ( flow({"id": "docs.coreFlow"}) .execute("draft", draft, {"reads": ["topicText"], "writes": ["draftResult", "draftText"]}) .returns({"draftText": "draftText"}) )
Build each flow node from its own input/output contract.
pythonclassifier = ax('requestText:string -> route:class "support, sales, engineering"') responder = ax("requestText:string, route:string -> responseText:string")
Declare reads and writes so the responder waits for the typed route.
pythonbranch_flow = ( flow({"id": "docs.branchFlow"}) .execute("classifier", classifier, {"reads": ["requestText"], "writes": ["classifierResult", "route"]}) .execute("responder", responder, {"reads": ["requestText", "route"], "writes": ["responderResult", "responseText"]}) .returns({"route": "route", "responseText": "responseText"}) )
Independent reads let research and audience analysis share one planner group.
pythonparallel_flow = ( flow({"id": "docs.parallelFlow"}) .execute("research", research, {"reads": ["topicText"], "writes": ["researchResult", "factList"]}) .execute("audience", audience, {"reads": ["topicText"], "writes": ["audienceResult", "audienceAngle"]}) .execute("join", join, {"reads": ["factList", "audienceAngle"], "writes": ["joinResult", "briefText"]}) .returns({"briefText": "briefText"}) )
A linear refinement pipeline makes each dependency explicit.
pythonrefine_flow = ( flow({"id": "docs.refineFlow"}) .execute("draft", draft, {"reads": ["topicText"], "writes": ["draftResult", "draftText"]}) .execute("critique", critique, {"reads": ["draftText"], "writes": ["critiqueResult", "critiqueText"]}) .execute("revise", revise, {"reads": ["draftText", "critiqueText"], "writes": ["reviseResult", "revisedText"]}) .returns({"revisedText": "revisedText"}) )
Forward accepts the provider client and the public flow inputs.
pythonoutput = parallel_flow.forward(client, {"topicText": "Typed LLM workflows"})
Start from the complete programs under examples/, then browse the larger gallery at https://axllm.dev/python/subsystems/flow/.
flow, AxFlowprovider-api examples only when the user explicitly has provider credentials available.no-key examples for deterministic local checks and provider request mapping.tools/*/skills/ into user packages.Other measured skills in the registry, with their headline benchmark lift.