Skip to main content

AI Runtime Profiler (airun)

CI Version License Python

"What exactly happened during this AI workload, and what did it cost?"

airun is a lightweight, local-first runtime profiler and economic measurement layer for AI agents, multi-step LLM pipelines, and tool-augmented workflows.


Key Features

  • Zero-Friction Tracing: Instrument functions and async coroutines in seconds with @trace or with trace().
  • Accurate Cost Engine: Automatic token-level cost attribution for OpenAI, Anthropic, Gemini, Mistral, and local GPU infrastructure.
  • Concurrent Critical Path: Accurately computes critical-path latency across parallel tools using interval DAG scheduling.
  • Automated Diagnostic Findings: Heuristic detection of cost concentration, retry storms, token context bloat, and over-provisioned models.
  • Outcome-Based Economics: Explicit attribution of Cost per Successful Outcome vs Wasted Cost on failed/aborted executions.
  • Regression Diffing (airun compare): Side-by-side run comparison to detect latency, token, and cost regressions.
  • Privacy by Default: Automatic secret and API key redaction. Prompt and completion contents are never stored without explicit opt-in.
  • OpenTelemetry Compatible: Export traces directly as OTLP-compliant JSON.
  • Ultra-Low Overhead: Measured in-memory span overhead is $<20\mu\text{s}$ and total SQLite persistence overhead is $<1\text{ms}$ per workflow.

3-Minute Quickstart

1. Installation

pip install airun-profiler

2. Environment Health Check

airun doctor

3. Run the Instant Demo (Zero Setup)

Run an offline multi-step agent simulation without external API keys:

airun demo

Output:

+---------- AI Workflow Runtime Summary -----------+
| Trace ID        5664cdc8296e41d2ab0b1feae7f0d481  |
| Workflow Name   multi_agent_coordination_pipeline |
| Final Outcome   [OK] SUCCESS                      |
| Total Cost      $0.0310                           |
| Cost / Success  $0.0310                           |
| Total Duration  411.7ms                           |
| Critical Path   411.7ms                           |
| Total Tokens    12,170 (in: 10,900, out: 1,270)   |
| Model Calls     4                                 |
| External Calls  2                                 |
| Retries         0                                 |
| Failed Steps    0                                 |
+---------------------------------------------------+

+-------------------- Findings & Optimization Insights ---------------------+
| * [CRITICAL] 56% of total cost comes from step 'agent_researcher' ($0.017)|
| * [WARNING] Token bloat: prompt context grew 2.7x from planner to synthesis|
| * [INFO] Concurrent execution: parallel tools saved ~411ms sequential delay|
+---------------------------------------------------------------------------+

                               Top Cost Drivers                                
+-----------------------------------------------------------------------------+
| #   | Span Name        | Kind | Model / Target    | Cost (USD) | % Total | Duration | Tokens |
|-----+------------------+------+-------------------+------------+---------+----------+--------|
| 1   | agent_researcher | llm  | claude-3-5-sonnet |    $0.0174 |   55.8% |  140.1ms |  3,020 |
| 2   | agent_planner    | llm  | gpt-4o            |    $0.0054 |   21.4% |  100.2ms |  1,590 |
| 3   | agent_critic     | llm  | gemini-1.5-pro    |    $0.0049 |   19.5% |   90.4ms |  3,310 |
| 4   | agent_synth      | llm  | gpt-4o-mini       |    $0.0008 |    3.3% |   80.2ms |  4,250 |
+-----------------------------------------------------------------------------+

Execution Hierarchy:
Execution Trace
`-- [OK] [workflow] multi_agent_coordination_pipeline (411.7ms)
    +-- [OK] [agent_step] agent_planner_phase (100.3ms)
    |   `-- [OK] [llm] agent_planner (100.2ms, model: gpt-4o, 1590 tok, $0.0054)
    +-- [OK] [agent_step] agent_researcher_phase (140.3ms)
    |   `-- [OK] [llm] agent_researcher (140.1ms, model: claude-3-5-sonnet, 3020 tok, $0.0174)
    +-- [OK] [agent_step] agent_critic_phase (90.6ms)
    |   `-- [OK] [llm] agent_critic (90.4ms, model: gemini-1.5-pro, 3310 tok, $0.0049)
    `-- [OK] [agent_step] agent_synthesizer_phase (80.4ms)
        `-- [OK] [llm] agent_synthesizer (80.2ms, model: gpt-4o-mini, 4250 tok, $0.0008)

Instrumenting Your Code

1. Synchronous Functions

from airun import trace, set_span_tokens, SpanKind

@trace(kind=SpanKind.LLM, model="gpt-4o", provider="openai")
def agent_step(prompt: str) -> str:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}]
    )
    set_span_tokens(
        input_tokens=response.usage.prompt_tokens,
        output_tokens=response.usage.completion_tokens,
    )
    return response.choices[0].message.content

with trace("customer_support_pipeline", kind=SpanKind.WORKFLOW):
    result = agent_step("Summarize ticket #4821")

2. Asynchronous Coroutines & Parallel Tools

import asyncio
from airun import trace, SpanKind

async def run_agent():
    async with trace("travel_agent", kind=SpanKind.WORKFLOW):
        # Parallel tools executed concurrently
        async with trace("parallel_booking", kind=SpanKind.AGENT_STEP):
            flights, hotels = await asyncio.gather(
                fetch_flights(),
                fetch_hotels()
            )

CLI Reference

Command Description
airun doctor Verify local workspace, database health, and micro-overhead
airun init Initialize workspace configuration and trace storage
airun demo Run built-in simulated agent workflow
airun run <script.py> Execute Python script with active profiler and instant summary
airun report [latest|<id>] View runtime summary, diagnostic findings, and execution tree
airun compare [previous|<id1>] [latest|<id2>] Compare two runs and inspect economic/latency deltas
airun trace list List stored execution traces
airun trace show [latest|<id>] Inspect execution tree hierarchy
airun export [latest|<id>] --format [json|otel-json] Export trace in raw JSON or OpenTelemetry format

AI Workload Laboratory

Explore representative runnable agent archetypes in examples/lab/:

python examples/lab/run_all.py
  • chat_workload.py — Simple Chatbot
  • rag_workload.py — RAG Retrieval & Synthesis
  • tool_agent_workload.py — Tool Agent with Parallel Concurrency & Retries
  • coding_agent_workload.py — Code Evaluation & Bug Fix Loop
  • multi_agent_workload.py — Multi-Agent Coordination Pipeline
  • comparison_workload.py — The Same Workload, Two Ways (Cost & Latency Regression Lab)

External Validation Kit

Preparing to test with external engineering teams? Check the validation/ directory:


License

Apache 2.0 License. See LICENSE for details.

Metadata

Release files for airun-profiler 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for airun-profiler 0.1.1
File Size Uploaded
airun_profiler-0.1.1.tar.gz 41.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for airun-profiler 0.1.1
File Interpreter ABI Platform
airun_profiler-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 86.9 kB

Release files / airun_profiler-0.1.1.tar.gz

Download URL airun_profiler-0.1.1.tar.gz
Size 41.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f7f7be621fde0a2a63aa467a69bdd19d6aad3ed949753134c0982f97b5e038ee
BLAKE2b-256 checksum
How to use checksums
73cecdac794e6887421794e0c9f48bc9cb85d4243658675828aa1e3a4e5cb4c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / airun_profiler-0.1.1-py3-none-any.whl

Download URL airun_profiler-0.1.1-py3-none-any.whl
Size 45.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37bbb6b99c521a36369d3b00ee7083bf8dbbf12e1103dbd507d8bd0a67e42996
BLAKE2b-256 checksum
How to use checksums
10f368c70112ca17b7bcfc701fc236561ba054cad3f0b72eeede9bc52cabcb0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

0.1.7

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page