Pre-deployment cost intelligence for AI agent workflows
Project description
Pretia
Know what your agent will cost before you deploy.
Pre-deployment cost intelligence for AI agent workflows. Two commands, zero config, ~$2. Get distributional cost projections (p50-p99), detect cost risks, and see exactly where the money goes.
Install
pip install pretia
Quick Start
Zero-cost estimate (static analysis, no execution):
pretia estimate my_agent.py
Full profile (runs your workflow, ~$2, ~3 minutes):
pretia profile run my_agent.py
No config files, no JSONL datasets, no setup. Pretia reads your workflow, generates diverse synthetic inputs, runs 50 profiling runs, detects patterns, and opens an HTML report with projections and recommendations.
Features
Distributional Projections
Cost projections at p50, p75, p90, p95, and p99. Not averages. For workflows with non-linear behavior (context growth, variable loop counts), Pretia uses Monte Carlo simulation (10,000 runs) instead of linear scaling.
Automatic Pattern Detection
Pretia scans your profiling data for cost risks: context windows that grow with each iteration, unpredictable retry loops, wide variance between typical and worst-case runs, routing branches that change cost profiles, and bimodal distributions where a cheap path and an expensive path create two distinct cost clusters. If something will surprise you at scale, the report flags it.
Optimization Recommendations
Each recommendation comes with estimated monthly savings in dollars. Pretia identifies where you're overspending and suggests specific changes to bring costs down.
Optimization Score
A 0-100 score measuring workflow cost efficiency. Three zones: red (0-40, needs optimization), amber (41-70, room to improve), green (71-100, well optimized).
Five Input Modes
A friction ladder from zero-effort to maximum precision:
| Level | Command | What happens | Cost |
|---|---|---|---|
| 0 | pretia estimate workflow.py |
Static code analysis only. No execution. | Free |
| 1 | --input "How do I reset my password?" |
One run + priors for variance estimation. | ~$0.10 |
| 2 | --auto-generate N (default) |
LLM generates diverse inputs from system prompt. | ~$2 |
| 3 | --from-langfuse --last 100 |
Pull real inputs from Langfuse production traces. | Free |
| 4 | --inputs samples.jsonl |
User-curated test dataset. Maximum precision. | Execution only |
Add to Your CI in 2 Minutes
Pretia ships a GitHub Action that comments on every PR with cost analysis.
Diff-only mode (free, default): static analysis in seconds.
# .github/workflows/pretia.yml
name: Pretia
on: [pull_request]
permissions:
contents: read
pull-requests: write # required for PR comments
jobs:
cost-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pretia-ai/pretia/action@v1
with:
workflow_path: src/agent.py
cost_threshold: "20" # fail if cost increases >20%
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Full profile mode (opt-in, ~$2): real profiling with recommendations.
- uses: pretia-ai/pretia/action@v1
with:
workflow_path: src/agent.py
mode: profile
cost_threshold: "20"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} # or your provider key
The PR comment shows the optimization score, projected monthly cost, cost delta vs. baseline, and recommendations in a collapsible section.
CLI Commands
pretia estimate workflow.py # Instant cost estimate (no execution)
pretia profile run workflow.py # Full profiling (default: --auto-generate 50)
pretia report profile.json # Generate HTML report from saved profile
pretia recommend profile.json # Generate optimization recommendations
pretia analyze --from-langfuse # Analyze Langfuse traces (no execution)
pretia baseline update profile.json # Save baseline for CI diffing
pretia diff baseline.json new.json # Compare profiles, show per-step deltas
Supported Frameworks
| Framework | Collection method | Install |
|---|---|---|
| LangGraph | Callback handler | pip install pretia[langgraph] |
| OpenAI Agents SDK | RunHooks lifecycle | pip install pretia[openai] |
| Qwen-Agent | LLM proxy | pip install pretia[qwen] |
| Generic | @collector.step() decorator |
pip install pretia |
How It Works
Data flows through a five-stage pipeline:
- Collector: framework adapters instrument your workflow and emit unified StepRecords
- StepRecord: frozen dataclass capturing one LLM call (model, tokens, cost, timing, tool usage)
- ProfileStore: persists profiling sessions as JSON (one workflow x N input runs)
- Projection: distributional scaling (p50-p99) for stable workflows, Monte Carlo for non-linear cases
- Recommendation: rule-based generators produce dollar-denominated optimization suggestions
The projection engine is validated against 13 real-world workflow archetypes (12/13 within 10% projection error).
Positioning
Langfuse tells you what you spent. Pretia tells you what you'll spend. Use both.
Pretia sits above the LLM tooling stack. It detects when other tools are needed. No proxy (use LiteLLM), no routing (use Martian), no tracing (use Langfuse), no evals (use Braintrust).
Development
uv pip install -e ".[dev]"
pytest tests/unit/ -v
ruff check pretia/ tests/
ruff format pretia/ tests/
pyright pretia/
See CLAUDE.md for architecture details and coding conventions.
Contributing
Issues and PRs welcome. Run pytest tests/unit/ and ruff check pretia/ tests/ before opening a PR.
License
BSL 1.1 (Business Source License). Free for all use except offering Pretia as a commercial hosted service. Converts to Apache 2.0 on 2030-06-13.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pretia-1.1.0.tar.gz.
File metadata
- Download URL: pretia-1.1.0.tar.gz
- Upload date:
- Size: 372.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d015313cfdf17a799c31c574471aabf9ce347700b3062be41113863770b464c1
|
|
| MD5 |
d2e4345a7910dbc8ad8f0d327daca158
|
|
| BLAKE2b-256 |
4a039c77ed746e2d734be884e8d50072746fa29d4334e35a2a365500b4eb5eb7
|
File details
Details for the file pretia-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pretia-1.1.0-py3-none-any.whl
- Upload date:
- Size: 134.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5d8b615c600119c3c1d8502aa9754f4f3ae8bedfa643ab1f751cda0960391eb
|
|
| MD5 |
71569a5e138c893d40b97d2a92d5d08b
|
|
| BLAKE2b-256 |
5a7ae7d497d4cd48a0189123f608b85d00d23d9d5561a77193b9416e862fe04e
|