AP
Agent Provider Depot
Opinionated picks for agents
Multi-JTBD Stack Blueprints · 5-Min Swaps · Day-2 Gotchas · As of 2026-10-28

8 End-to-End Agent Stack Blueprints & Day-2 Production Runbooks

Instead of stitching individual tools together from scratch, fetch a conflict-free multi-JTBD stack blueprint in one call (GET /api/blueprint?archetype=...&budget=...). Pass budget=0 to automatically swap every slot to its verified cardless/free-tier alternative.

1. Multi-JTBD Stack Blueprints (8 Archetypes)

coding-agent-stackHobby: $15/mo · Startup: $185/mo

Autonomous SWE & Coding Agent Stack

Conflict-free stack for repo-scale code generation, isolated microVM test execution, web docs grounding, and CI trajectory evals.

Primary Coding LLMAnthropic (8.42)

Claude Sonnet 4.5 / Opus 4.7 lead multi-file diff editing and tool reliability.

Multi-Model Failover RouterOpenRouter (8.00)

Instant 429/529 failover across Anthropic, OpenAI, and DeepSeek with 1 API key.

Code Execution SandboxE2B (8.56)

Sub-200ms Firecracker microVMs for untrusted test suites and bash tools.

Docs & Web GroundingFirecrawl (8.25)

Clean markdown extraction from live SDK docs without HTML token bloat.

Trajectory Tracing & CI Eval GateLangfuse (8.66)

Open-source OTel tracing + costPerSolvedTaskUsd tracking.

npm install @anthropic-ai/sdk @openrouter/ai-sdk-provider openai @e2b/code-interpreter @mendable/firecrawl-js langfuse
voice-support-agentHobby: $10/mo · Startup: $140/mo

Sub-500ms Real-Time Voice & Telephony Agent Stack

Low-latency WebRTC/SIP voice pipeline pairing streaming STT, low-TTFT LLM routing, expressive TTS, and multi-turn persona simulation.

WebRTC & SIP Voice TransportLiveKit Cloud (8.48)

Sub-100ms global WebRTC mesh with native turn-detection and interruption handling.

Streaming Speech-to-Text (STT)Deepgram (8.50)

Nova-3 streaming transcription under 250ms p95 latency.

Low-TTFT Conversation LLMGroq (7.95)

Sub-150ms time-to-first-token keeps total voice turn latency under 500ms.

Streaming Text-to-Speech (TTS)ElevenLabs (8.27)

Expressive low-latency streaming audio with WebSocket chunking.

Voice & Persona Eval HarnessBraintrust (8.23)

Automated adversarial caller simulation before production deploy.

npm install livekit @deepgram/sdk groq-sdk @elevenlabs/elevenlabs-js braintrust
rag-production-stackHobby: $0/mo · Startup: $95/mo

High-Precision Production RAG & Document Intelligence Stack

Layout-aware PDF parsing, high-recall embeddings, hybrid vector + BM25 search, reranking, and faithfulness grading.

Document & Table OCR ParserReducto (8.02)

Preserves complex multi-column tables and bounding boxes for citation grounding.

Code & Text EmbeddingsVoyage AI (8.40)

Top retrieval NDCG across technical, legal, and code corpora.

Managed Hybrid Vector DBQdrant (8.59)

Rust engine with native sparse+dense hybrid search and payload filtering.

Cross-Encoder RerankerCohere (7.95)

Rerank-3.5 boosts top-5 precision before stuffing the LLM context window.

RAG Faithfulness & Hallucination EvalBraintrust (8.23)

Scores context recall and answer faithfulness on every PR.

npm install reductoai voyageai @qdrant/js-client-rest cohere-ai braintrust
browser-research-agentHobby: $0/mo · Startup: $110/mo

Stealth Web Research & Browser Action Agent Stack

Managed residential-proxy Chromium fleet, neural search grounding, markdown extraction, and captcha/WAF resilience.

Managed Stealth Cloud BrowserBrowserbase (8.30)

Remote Playwright CDP sessions with residential proxies and session replay.

Semantic & Neural Search APIExa (8.30)

Finds canonical primary sources and technical pages with clean snippets.

WAF-Resilient Page ScraperFirecrawl (8.25)

Turns JS-heavy SPAs into LLM-ready markdown.

Vision & DOM Action ModelAnthropic (8.42)

Claude Sonnet 4.5 excels at coordinate + DOM selector grounding.

npm install @browserbasehq/sdk exa-js @mendable/firecrawl-js @anthropic-ai/sdk
autonomous-saas-backendHobby: $0/mo · Startup: $65/mo

Serverless Autonomous SaaS & Multi-Tenant Agent Backend

Scale-to-zero Postgres with branching, durable step queues, B2B/B2C auth, and transactional email with high deliverability.

Serverless Branching PostgresNeon (8.59)

Instant copy-on-write DB branches per agent preview environment.

Durable Workflow & Step QueueInngest (8.07)

Retries multi-step agent runs without 15-minute serverless timeout cliffs.

Authentication & Org ManagementClerk (8.43)

Drop-in Next.js auth + B2B organization RBAC.

Transactional Email APIResend (8.57)

Clean DX, React Email templates, and instant webhook delivery events.

Edge Caching & Rate LimitingUpstash Redis (8.49)

HTTP-native Redis for per-principal rate limiting and idempotency keys.

npm install @neondatabase/serverless inngest @clerk/nextjs resend @upstash/redis
eval-and-ci-pipelineHobby: $0/mo · Startup: $80/mo

4-Stage Agent Evaluation, Red-Team & CI Regression Stack

Complete 'Test Your Agent' harness combining public benchmarks, isolated sandboxes, pass^3 regression gates, and adversarial security probes.

CI Eval & Dataset GateBraintrust (8.23)

Blocks PRs when pass^3 consistency or costPerSolvedTaskUsd regresses.

OTel Production TracingLangfuse (8.66)

Captures production failures and converts them into golden eval datasets.

Isolated Benchmark SandboxE2B (8.56)

Runs SWE-bench Verified and Terminal-Bench tasks in clean microVMs.

Adversarial Red-Team & Prompt InjectionPromptfoo (8.42)

Automated OWASP LLM Top-10 and jailbreak probes in GitHub Actions.

npm install braintrust langfuse @e2b/code-interpreter promptfoo
agentic-finance-treasuryHobby: $0/mo · Startup: $50/mo

3-Layer Agentic Banking, Spend Gate & Audit Ledger Stack

Merchant-locked virtual cards, x402 micropayments, pre-purchase /api/preflight gates, and cryptographic receipt verification.

Programmable Virtual Cards & TreasuryStripe (8.76)

Per-agent merchant-locked virtual cards with hard webhook velocity caps.

Developer Subscription & Usage BillingPolar (8.05)

Merchant-of-record monetization for MCP servers and agent APIs.

Invoice & Receipt OCR ExtractionReducto (8.02)

Extracts line-item SKU rates from vendor PDFs for ledger reconciliation.

Immutable Ledger & Spend StateNeon (8.59)

ACID double-entry ledger storing Countersign receipts and preflight approvals.

npm install stripe @stripe/agent-toolkit @polar-sh/sdk reductoai @neondatabase/serverless
zero-budget-bootstrap-stackHobby: $0/mo · Startup: $0/mo

$0 Cardless Autonomous Bootstrap Stack

100% free-tier / open-source stack requiring $0 upfront spend so an autonomous agent can ship a working product immediately.

Free-Tier LLM Inference RouterOpenRouter (8.00)

Immediate signup with free-tier open models and zero monthly platform fee.

Cardless Markdown Web ReaderJina AI (8.12)

GET https://r.jina.ai/{url} works immediately with no credit card required.

Free-Tier Serverless PostgresNeon (8.59)

Free tier (0.5 GB storage, 100 CU-hours/mo) with no credit card required.

Free-Tier Transactional EmailResend (8.57)

Free tier includes 3,000 emails/mo (100/day) with no credit card required.

Open-Source Tracing & EvalsLangfuse (8.66)

50,000 free observations/mo on Hobby cloud or 100% self-hosted OSS.

npm install @openrouter/ai-sdk-provider openai cross-fetch @neondatabase/serverless resend langfuse

2. 5-Minute Provider Swap & Migration Maps (15 High-Frequency Swaps)

GET /api/swap (JSON) →
Swap PairCompatibilityInstall CommandCode Diff & Day-2 Gotcha
openai → openrouter
JTBD: llm-router (~2m)
drop_in_base_urlnpm install openai@latestconst client = new OpenAI({ baseURL: "https://openrouter.ai/api/v1", apiKey: process.env.OPENROUTER_API_KEY });
Gotcha: Prefix model IDs with vendor namespace (e.g. openai/gpt-5, anthropic/claude-sonnet-4-5).
sendgrid → resend
JTBD: transactional-email (~5m)
sdk_wrappernpm uninstall @sendgrid/mail && npm install resendimport { Resend } from "resend"; const resend = new Resend(process.env.RESEND_API_KEY); await resend.emails.send({ from, to, subject, html });
Gotcha: Verify sending domain DNS (DKIM/SPF) in Resend before removing SendGrid records; default rate limit is 2 req/s (use /emails/batch for bursts).
pinecone → qdrant
JTBD: managed-vector (~15m)
schema_migrationnpm install @qdrant/js-client-restimport { QdrantClient } from "@qdrant/js-client-rest"; const qdrant = new QdrantClient({ url: process.env.QDRANT_URL, apiKey: process.env.QDRANT_API_KEY });
Gotcha: Create payload indexes on metadata filter fields in Qdrant before querying at scale.
puppeteer → browserbase
JTBD: browser-automation (~5m)
drop_in_base_urlnpm uninstall puppeteer && npm install playwright-core @browserbasehq/sdkconst browser = await chromium.connectOverCDP(`wss://connect.browserbase.com?apiKey=${process.env.BROWSERBASE_API_KEY}`);
Gotcha: Always call browser.close() in a finally{} block so remote sessions terminate immediately.
auth0 → clerk
JTBD: auth (~15m)
sdk_wrappernpm install @clerk/nextjsimport { clerkMiddleware } from "@clerk/nextjs/server"; export default clerkMiddleware();
Gotcha: Import existing user password hashes via Clerk Backend API migration endpoint to avoid forced password resets.
aws-rds → neon
JTBD: serverless-postgres (~10m)
drop_in_base_urlnpm install @neondatabase/serverlessimport { neon } from "@neondatabase/serverless"; const sql = neon(process.env.DATABASE_URL!);
Gotcha: Use Neon's -pooler connection string for Prisma/Drizzle in serverless environments.
datadog → langfuse
JTBD: llm-observability (~5m)
sdk_wrappernpm install langfuseimport { Langfuse } from "langfuse"; const lf = new Langfuse(); const trace = lf.trace({ name: "agent-run" });
Gotcha: Call await lf.flushAsync() before serverless handler exit.
langchain → vercel-ai-sdk
JTBD: agent-framework (~15m)
sdk_wrappernpm install ai @ai-sdk/openai @ai-sdk/anthropic zodimport { generateText } from "ai"; import { anthropic } from "@ai-sdk/anthropic"; const { text } = await generateText({ model: anthropic("claude-sonnet-4-5"), prompt });
Gotcha: Use maxSteps in generateText/streamText for bounded multi-step tool loops.
stripe-billing → polar
JTBD: usage-based-billing (~10m)
sdk_wrappernpm install @polar-sh/sdkimport { Polar } from "@polar-sh/sdk"; const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN });
Gotcha: Polar acts as Merchant of Record (handles global VAT/sales tax automatically).
whisper-api → deepgram
JTBD: speech-to-text (~5m)
sdk_wrappernpm install @deepgram/sdkimport { createClient } from "@deepgram/sdk"; const dg = createClient(process.env.DEEPGRAM_API_KEY); const { result } = await dg.listen.prerecorded.transcribeUrl({ url }, { model: "nova-3" });
Gotcha: Pass smart_format: true and diarize: true when transcribing multi-speaker meetings.
elevenlabs → cartesia
JTBD: text-to-speech (~5m)
sdk_wrappernpm install @cartesia/cartesia-jsimport { CartesiaClient } from "@cartesia/cartesia-js"; const client = new CartesiaClient({ apiKey: process.env.CARTESIA_API_KEY });
Gotcha: Use Sonic WebSocket streaming for sub-100ms first-audio-byte latency.
algolia → typesense
JTBD: search-engine (~15m)
schema_migrationnpm install typesenseimport Typesense from "typesense"; const client = new Typesense.Client({ nodes: [{ host, port: 443, protocol: "https" }], apiKey: process.env.TYPESENSE_API_KEY! });
Gotcha: Define explicit facet: true fields in your Typesense collection schema.
celery → inngest
JTBD: durable-execution (~15m)
sdk_wrappernpm install inngestimport { Inngest } from "inngest"; export const inngest = new Inngest({ id: "agent-app" });
Gotcha: Wrap each non-idempotent LLM or side-effect call inside step.run() so retries replay deterministically.
s3 → r2
JTBD: object-storage (~3m)
drop_in_base_urlnpm install @aws-sdk/client-s3const s3 = new S3Client({ region: "auto", endpoint: `https://${process.env.CF_ACCOUNT_ID}.r2.cloudflarestorage.com`, credentials: { accessKeyId: process.env.R2_ACCESS_KEY_ID!, secretAccessKey: process.env.R2_SECRET_ACCESS_KEY! } });
Gotcha: Never npm install r2 (deprecated 2017 HTTP wrapper); use @aws-sdk/client-s3 with R2 endpoint for $0 egress.
smithery → mcp-registry
JTBD: mcp-discovery (~3m)
drop_in_base_urlnpm uninstall @smithery/cli @smithery/sdk && npm install @modelcontextprotocol/sdk// Connect directly to remote Streamable-HTTP MCP server URLs discovered via https://registry.modelcontextprotocol.io or /.well-known/mcp/server.json
Gotcha: Smithery Connect proxy (server.smithery.ai / run.tools) shuts down October 31, 2026.

3. Day-2 Production Gotchas & 1-Line Smoke Tests (10 Core Providers)

GET /api/gotchas (JSON) →
Rate Limit Ceiling: Tier 1: 50 RPM / 40K-80K ITPM; Tier 4: 4,000 RPM / 400K+ ITPM.
Timeout / Payload Trap: HTTP 529 Overloaded_error during peak US hours; retired 2024 snapshot IDs (claude-3-5-sonnet-20240620) return 404 not_found_error.
curl -sS https://api.anthropic.com/v1/models -H "x-api-key: $ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" | head -c 200
Rate Limit Ceiling: Tier 1: 500 RPM / 30K-200K TPM; Tier 5: 10,000+ RPM.
Timeout / Payload Trap: HTTP 429 insufficient_quota when prepaid wallet hits $0 (auto-recharge off by default); text-embedding-3-large defaults to 3072d (breaks 1536d indexes unless dimensions:1536 is passed).
curl -sS https://api.openai.com/v1/models -H "Authorization: Bearer $OPENAI_API_KEY" | head -c 200
Rate Limit Ceiling: Free models: 20 RPM / 50-1000 RPD; Paid credits: dynamic upstream capacity.
Timeout / Payload Trap: Upstream provider timeouts on long reasoning turns unless provider.allow_fallbacks is enabled.
curl -sS https://openrouter.ai/api/v1/auth/key -H "Authorization: Bearer $OPENROUTER_API_KEY"
Rate Limit Ceiling: Hobby: 20 concurrent sandboxes; Pro: 100+ concurrent sandboxes.
Timeout / Payload Trap: Default sandbox TTL is 5 minutes unless timeoutMs is extended; 512MB RAM sandboxes OOM (exit 137) on Chromium/Next.js builds.
curl -sS https://api.e2b.dev/sandboxes -H "X-API-Key: $E2B_API_KEY"
Rate Limit Ceiling: Concurrency-capped by plan (3 to 100+ parallel browsers).
Timeout / Payload Trap: Unclosed CDP WebSocket sessions bill until session timeout; residential proxy bandwidth bills per GB.
curl -sS https://api.browserbase.com/v1/sessions -H "X-BB-API-Key: $BROWSERBASE_API_KEY" | head -c 200
Rate Limit Ceiling: Plan-tiered RPM on /v1/scrape and /v1/crawl.
Timeout / Payload Trap: Async /v1/crawl jobs require polling or webhook completion; synchronous /v1/scrape times out >30s on slow SPAs.
curl -sS -X POST https://api.firecrawl.dev/v1/scrape -H "Authorization: Bearer $FIRECRAWL_API_KEY" -H "Content-Type: application/json" -d '{"url":"https://example.com","formats":["markdown"]}' | head -c 200
Rate Limit Ceiling: Direct TCP connections cap at max_connections per compute size; pooled -pooler hostname supports 10,000 concurrent connections.
Timeout / Payload Trap: Scale-to-zero cold start adds 300-500ms on first query after 5m idle; direct TCP from serverless exhausts slots (Postgres 53300).
node -e 'fetch("https://console.neon.tech/api/v2/projects",{headers:{Authorization:"Bearer "+process.env.NEON_API_KEY}}).then(r=>console.log(r.status))'
Rate Limit Ceiling: Default 2 requests/sec per account (burst headers returned in ratelimit-remaining).
Timeout / Payload Trap: Free tier is capped at 100 emails/day (3,000/mo); Paid overages require enabling Transactional Overages in team settings.
curl -sS https://api.resend.com/domains -H "Authorization: Bearer $RESEND_API_KEY"
Rate Limit Ceiling: Cluster RAM/vCPU bound; unindexed payload filters trigger full collection scans.
Timeout / Payload Trap: Upserting 3072-dim vectors into a 1536-dim collection throws DimensionMismatchError.
curl -sS "$QDRANT_URL/collections" -H "api-key: $QDRANT_API_KEY"
Rate Limit Ceiling: Hobby: 50,000 units/mo free; ingestion batches up to 3.5MB.
Timeout / Payload Trap: Serverless functions exiting before langfuse.flushAsync() drop the final trace batch.
curl -sS https://cloud.langfuse.com/api/public/health