Metadata-Version: 2.4
Name: agentaxon
Version: 0.1.0
Summary: Lightweight SDK for tracking AI agent costs and reliability with AgentAxon
Author-email: AgentAxon <hello@agentaxon.dev>
License: MIT
Project-URL: Homepage, https://agentaxon.dev
Project-URL: Repository, https://github.com/agentaxon/agentaxon-python
Keywords: ai,monitoring,openai,anthropic,gemini,llm,cost-tracking
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# AgentAxon Python SDK

Lightweight SDK for tracking AI agent costs, latency, and reliability with AgentAxon.

## Installation

```bash
pip install agentaxon
```

## Quick Start

```python
from agentaxon import AgentAxon
import openai
import os

# 1. Initialize (do this once in your app)
ap = AgentAxon(
    api_key=os.environ.get("AGENTAXON_API_KEY"),
    endpoint="https://your-agentaxon-domain.com/api/events" # Your deployed dashboard URL
)

# 2. Wrap any AI call with the @ap.track decorator
@ap.track(provider="openai", agent_name="customer-support-bot")
def ask_bot(question):
    return openai.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": question}]
    )

# 3. Call your function as normal
response = ask_bot("How do I upgrade my plan?")
```

## How it Works

The `@ap.track` decorator automatically intercepts the response from the LLM provider, extracts the `input_tokens` and `output_tokens`, measures the latency, and pushes the event to your AgentAxon dashboard in a background thread so it never slows down your application.

If an exception occurs during the API call, AgentAxon catches it, logs the error against the `agent_name`, and re-raises the exception.

## Supported Providers

- `openai` (Extracts tokens from standard OpenAI completions)
- `anthropic` (Extracts tokens from standard Anthropic messages)
- `google` (Extracts tokens from Gemini GenerationResponse)

## Advanced Usage (Manual Tracking)

If you aren't using one of the supported providers or you want to track costs manually, you can use `ap.log_event()`:

```python
ap.log_event(
    provider="custom-llm",
    model="llama-3",
    agent_name="local-agent",
    input_tokens=150,
    output_tokens=45,
    latency_ms=1200,
    status="success"
)
```
