Papayya
Production infrastructure for AI agents.
Papayya is an execution platform for long-running, tool-using AI agents. It gives your agents crash recovery, observability, cost control, and replay — so you can ship AI workflows to production with confidence.
Why Papayya?
AI agents that call tools, make decisions, and run for minutes or hours need more than a single API call. They need infrastructure.
Without Papayya, you're building all of this yourself:
- Crash recovery — your agent ran 47 steps, the worker died, and you start from scratch
- Cost runaway — a stuck loop burns through your API budget before anyone notices
- Debugging — something went wrong at step 23, but you have no trace to inspect
- Replay — a customer reports a bad output, but you can't reproduce the exact execution
Papayya solves these with a step-based execution engine that checkpoints after every step, enforces budgets, and records full execution traces.
Two ways to use Papayya
Wrap your existing code (Local Execution)
Already have an agent? Wrap it with Papayya. Your code stays the same — Papayya adds checkpointing, cost tracking, and observability.
from papayya.durable import papayya
t = papayya()
run = t.run("my-agent", budget_usd=5.0)
search = run.task("search", my_existing_search_fn)
summarize = run.task("summarize", my_existing_llm_call)
results = search("AI agents")
summary = summarize(results)
run.complete(summary)Every run.task() is checkpointed. If your process crashes and restarts, completed tasks are replayed from cache.
Deploy to the cloud (Cloud Execution)
Deploy your agent code and let Papayya run it. Papayya handles containers, crash recovery, scheduling, and scaling.
# agent.py
from papayya import agent
from openai import OpenAI
@agent(name="research-bot", model="gpt-4o-mini", budget_usd=1.00)
def research_bot(input_data):
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": input_data}],
)
return response.choices[0].message.content# Deploy — auto-discovers @agent functions, no flags needed
papayya deploy# Trigger a run and get the result
from papayya import Client
result = Client().run_sync(agent_id="research-bot", input="Research AI trends")
print(result)Your agent runs in an isolated container. Papayya intercepts every LLM call, enforces budgets, and reports steps to the dashboard.
What you get
| Feature | Description |
|---|---|
| Crash recovery | Checkpoint after every step, resume after crashes |
| Budget enforcement | Set spend caps per run — never get a surprise bill |
| Execution traces | Step-by-step trace of every LLM call and tool invocation |
| Replay | Replay any run from any step for debugging |
| Cost tracking | Per-step token usage and cost, aggregated per project |
| Schedules | Run agents on cron schedules with per-run budgets |
| Webhooks | Trigger agent runs from external events |
| Multi-tenant | Accounts, projects, API keys, RBAC out of the box |
Any model, any provider
Papayya doesn't proxy your LLM calls — your code calls the provider directly. Use any model from any provider: Anthropic, OpenAI, Google, Mistral, Cohere, open-source, self-hosted. Bring your own API key and SDK. Papayya tracks tokens, cost, and budget automatically.
Get started
Jump to the Quickstart to have an agent running in under 5 minutes.