Introduction

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

FeatureDescription
Crash recoveryCheckpoint after every step, resume after crashes
Budget enforcementSet spend caps per run — never get a surprise bill
Execution tracesStep-by-step trace of every LLM call and tool invocation
ReplayReplay any run from any step for debugging
Cost trackingPer-step token usage and cost, aggregated per project
SchedulesRun agents on cron schedules with per-run budgets
WebhooksTrigger agent runs from external events
Multi-tenantAccounts, 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.