AI agent hosting: options, setup, and deployment for production

Compare AI agent hosting options from serverless to containers. Learn how to deploy, observe, and scale TypeScript agents in production.

Aron Schuhmann

Written by

Aron Schuhmann

Sam Bhagwat

Reviewed by

Sam Bhagwat

Jun 22, 2026

·

17 min read

Your AI agent works locally. It responds to prompts, calls tools, and returns structured output. But the moment real users start hitting it over HTTP, a different set of problems appears. According to LangChain's 2026 State of Agent Engineering report, which surveyed over 1,300 professionals, 57% of organizations now have agents running in production, but quality and reliability remain the top barriers to scaling, cited by nearly a third of respondents. Moving from a working prototype to a stable deployment is where most teams stall, and the gap is almost always infrastructure, not model capability.

AI agent hosting is a distinct discipline from web app hosting, and the choices you make early shape your cost structure, reliability, and ability to iterate.

This guide covers what makes agent hosting different, how to compare your options, and what to watch for once your agent is serving production traffic.

Why AI agent hosting decisions matter

Your hosting choice affects latency, cost, and how gracefully your agent handles failure. A poor pick might not surface during development, but it will in production when users expect fast responses and your token bill starts climbing.

What makes agent hosting different from standard web app hosting

You might expect your agent to behave like a typical API once deployed, but the runtime profile is fundamentally different. A standard web application receives a request, queries a database, and returns a response in milliseconds.

A single agent request can trigger multiple LLM calls, each taking seconds. Between those calls, your agent might invoke tools, retrieve context from memory, and branch into parallel subtasks before assembling a final response. This means longer request lifecycles, heavier compute per request, and unpredictable execution times. You need infrastructure that tolerates long-running processes, streaming output, and mid-execution pauses.

Key constraints to consider: latency, state, cost, and scale

You should evaluate four constraints before committing to an AI agent hosting model:

ConstraintWhat it meansWhy it matters
LatencyLLM inference adds hundreds of milliseconds per call; benchmarks from Anthropic and OpenAI typically show 300ms–2s for a single completionTool calls, memory retrieval, and network hops compound this; slow agents lose users
StateSome agents are stateless per request; others accumulate conversation history, working memory, or workflow checkpoints that must persist across callsWithout a durable store, a server restart wipes everything
CostAgents burn tokens; larger models can loop through multiple reasoning stepsYour model provider bill typically dwarfs infrastructure costs
ScaleA B2B agent serving 50 concurrent users has different compute requirements than a consumer product facing sudden viral trafficYour scaling model must match your traffic profile from day one

Core concepts behind hosting an AI agent

Before you compare platforms, you need a shared vocabulary for the runtime behaviors that shape your hosting requirements.

Stateless vs. stateful agent runtimes

If your agent treats each request independently, you can map it cleanly to serverless functions and horizontal scaling. It reads the incoming message, calls the model, returns the response, and forgets everything.

A stateful agent is different. Your agent maintains context across turns: conversation history, working memory, and accumulated observations persist between requests. You need a durable store, whether that is a database, Redis, or a dedicated memory layer, to back that state. Without one, a server restart or cold-start redeploy wipes everything.

Durable execution and long-running tasks

If you are building multi-step agents, your workflows will resemble workloads on durable execution engines like Temporal and Inngest. A workflow might suspend while waiting for human approval, resume hours later, and pick up exactly where it left off.

You need workflow state persisted to a durable store in production. A suspended workflow that lives only in memory will not survive a server restart. This is one reason plain serverless functions struggle with complex agent tasks without additional infrastructure for state checkpointing.

Tool-call overhead and request lifecycle

You will encounter latency at every step of your agent's tool-call loop. The agent sends a request to the model, the model decides which tool to call, the tool executes, results flow back into context, and the cycle repeats.

A single user prompt can produce five or more round trips. If your tools involve network calls to external APIs, each hop adds its own latency and failure surface. Your hosting environment needs to handle these extended lifecycles without timing out or dropping connections.

AI agent hosting options compared

You have several categories to choose from, each with distinct tradeoffs. The right option depends on your workload profile, team expertise, and scaling requirements.

Serverless platforms

Platforms like Vercel, Netlify, and Cloudflare Workers let you deploy agent endpoints as functions. You get automatic scaling, zero server management, and pay-per-invocation pricing.

The tradeoff is execution time limits. Most serverless platforms cap function duration at 10 to 60 seconds by default, which can be too short for multi-step agent runs. Cold starts add latency on the first request after idle periods. Serverless works well for lightweight agents with short request lifecycles, or as an API gateway fronting a more durable backend.

Containerized deployments

Docker and Kubernetes give you full control over the runtime. You can run long-lived processes, manage your own scaling policies, and avoid function duration limits. Docker-based deployments also make it straightforward to bundle model artifacts, GPU support drivers, and runtime dependencies into a single reproducible image.

The cost is operational overhead. You need to manage container orchestration, health checks, rolling deployments, and resource allocation. For teams already running Kubernetes, adding agent workloads is straightforward. For smaller teams, the infrastructure burden may not be worth it. Container deployments suit agents with long-running tasks, heavy state, or strict network isolation requirements, including environments that run inside a VPC.

Managed agent runtimes and hosted APIs

Some platforms offer managed runtimes specifically for agents. Azure Functions with durable extensions, for example, gives you serverless execution with built-in support for long-running orchestrations and state persistence.

You trade operational overhead for vendor coupling. You get durability and scaling without managing infrastructure, but your architecture becomes tied to the platform's abstractions and pricing model.

Self-hosted servers

Running your agent on a Node.js server with frameworks like Express, Fastify, or Hono gives you maximum flexibility. You control the request lifecycle, streaming behavior, middleware stack, and deployment target.

Self-hosted servers work well when you want to own the full stack. You can deploy to any VPS, cloud VM, or container service, including behind nginx as a reverse proxy for TLS termination and load balancing. The tradeoff is that you handle scaling, monitoring, and restarts yourself.

How to choose the right option for your workload

Your decision comes down to matching your agent's runtime profile to the hosting model's strengths:

FactorServerlessContainersManaged runtimesSelf-hosted
Short-lived, stateless agentsStrong fitOverkillDepends on platformWorks fine
Long-running, multi-step workflowsNeeds workaroundsStrong fitStrong fitStrong fit
Sudden traffic spikesAuto-scalesRequires configAuto-scalesManual scaling
Operational overheadMinimalHighLowMedium
Vendor couplingModerateLowHighNone

If your agent handles single-turn requests under 30 seconds, serverless is the simplest starting point. For multi-step workflows with durable state, containers or managed runtimes give you the headroom you need.

Hosting agents in a TypeScript or Node.js stack

If you are building agents in TypeScript, your hosting setup will revolve around a few common patterns and runtime requirements.

Core libraries and runtime requirements

Your agent needs a Node.js runtime (v18+), an LLM provider SDK or model routing library, and a framework for defining agents, tools, and workflows. Most TypeScript AI agent frameworks depend on Vercel's AI SDK for model integration and streaming primitives. Options range from low-level SDK wrappers to full-featured orchestration layers with built-in memory, evals, and deployment adapters.

You will also need a persistence layer for memory and workflow state. SQLite works for prototyping. PostgreSQL or Redis are typical production choices for persistent storage.

Wiring up an HTTP server for agent endpoints

Your agent needs at least one HTTP endpoint that accepts user messages and returns responses. The example below shows a minimal setup with Hono. Here, threadId maps to a persistent conversation in your memory layer, letting the agent maintain context across turns.

import { Hono } from "hono";
import { myAgent } from "./agents";
const app = new Hono();
app.post("/agent/chat", async (c) => {
  const { message, threadId } = await c.req.json();
  const response = await myAgent.generate(message, { threadId });
  return c.json({ result: response.text });
});
export default app;

Handling streaming responses and long-running inference

When you stream responses, your users see tokens arrive as they are generated rather than waiting for the full agent loop to complete. Most major LLM APIs support streaming natively, and returning a ReadableStream from your endpoint keeps the connection alive through multi-step reasoning.

app.post("/agent/stream", async (c) => {
  const { message, threadId } = await c.req.json();
  const stream = await myAgent.stream(message, { threadId });
  return new Response(stream.toReadableStream(), {
    headers: { "Content-Type": "text/event-stream" },
  });
});

For multi-step workflows, you can stream status updates from each step so users see progress rather than a loading spinner.

Environment variables, secrets, and model provider credentials

Your agent needs API keys for model providers, database connection strings, and potentially keys for third-party tool APIs. Never hardcode these. Use environment variables and a secrets management solution appropriate to your deployment target: AWS Secrets Manager, Doppler, or your platform's built-in secret store all work well.

Keep provider credentials server-side. Full agent logic should not live client-side in the browser, since that would leak your API keys. Use .env files locally and your platform's secret management in production.

Mastra as an AI Agent Hosting and Deployment Framework

If you are looking for a framework that handles the deployment surface alongside agent logic, Mastra is an open-source TypeScript framework (Apache 2.0) compatible with Vercel's AI SDK. Mastra's architecture extends the SDK with agents, workflows, memory, and observability. Model routing supports hundreds of models across dozens of providers through a single interface, so swapping providers is a configuration change rather than an SDK migration.

Mastra's built-in deployers push to Vercel, Netlify, Cloudflare, or run as a standalone Hono server, Node app, or Express/Fastify service, so no separate deployment configuration is required. For state persistence, Mastra ships storage adapters for PostgreSQL, Redis, and LibSQL, so you connect your existing database rather than writing custom persistence middleware. Workflow state, conversation history, and working memory all write to whichever adapter you configure, and the agent code stays the same regardless of backing store.

Mastra's MCP server exposure lets you surface your agents and tools over the model context protocol for use with agentic AI clients. For observability, Mastra ships OTel-compatible tracing that captures every LLM call, tool invocation, and memory retrieval as a span tree, exportable to Langfuse, Datadog, or any OTel backend. Replit uses Mastra in production for its Agent 3 product. PayPal and SoftBank run it in production environments. Here is what a deployable Mastra agent looks like:

Build your first TypeScript agent on Mastra.

Observability and debugging in production agent hosting

Once your agent is live, you need visibility into what it is actually doing. Your agent can regress while still returning 200 OK, which means standard uptime monitoring will not catch the failures that matter.

Tracing requests across tool calls and LLM hops

You can capture the full execution path of a single agent request as a tree of spans using OpenTelemetry (OTel). Each span records a step: the initial prompt, each LLM call, each tool invocation, memory retrieval, and the final response.

With tracing in place, you see exactly which tool call took 3 seconds, which model returned an unexpected output, and where a loop ran longer than expected. Debugging a multi-step agent without traces means reading logs line by line and guessing at causality.

Logging, metrics, and cost tracking

Tracking three data categories gives you enough signal to debug, optimize, and control cost across your AI agent hosting stack:

MetricWhat to measureWhy it matters
LatencyPer-step and end-to-end response timesIdentifies slow tool calls and model bottlenecks
Token usageInput and output tokens per model call, aggregated by agent, user, and time periodControls cost and flags runaway loops
Error ratesFailed tool calls, model timeouts, guardrail rejectionsSurfaces reliability issues before users report them

One cautionary example: a well-funded startup went viral, only to find its monthly token bill exceeded $500K because no one had instrumented token tracking before launch. Monitoring cost from day one is a straightforward engineering discipline, not a nice-to-have.

Guardrails, retries, and failure recovery

You should set up input guardrails to sanitize incoming messages before they reach the model. These protect against prompt injection, PII exposure, and off-topic requests that waste tokens.

Output guardrails screen responses for hallucination, data leakage, or policy violations before the user sees them. For tool call failures, implement retries with backoff. If a tool fails repeatedly, your agent should surface the error gracefully rather than looping indefinitely. Feeding error messages back into your agent's context lets it adjust its approach, the same technique you will see in production coding agents like Cursor, Replit Agent, and Windsurf.

Scaling hosted agents reliably

Scaling agents is harder than scaling stateless APIs. Each request consumes significant compute and memory, and execution times vary depending on the task.

Concurrency, queue depth, and rate limits

Your model provider enforces rate limits on API calls and tokens per minute. If you hit those limits, requests queue or fail. You need to track queue depth and implement backpressure so a burst of traffic does not cascade into mass timeouts.

Consider placing a job queue (like BullMQ or SQS) in front of your agent for workloads that tolerate asynchronous responses. This decouples request ingestion from agent execution and lets you control concurrency precisely. Auto-scaling policies on your container cluster or function runtime can handle burst traffic, but they need headroom metrics: CPU, memory, and queue depth are better signals than request count alone.

Cold-start mitigation for serverless deployments

You will feel the impact of cold starts most when they compound with model inference latency. AWS research on Lambda cold starts shows overhead ranging from 200ms to several seconds depending on runtime and bundle size. For agents, this creates noticeably slow first responses.

Mitigation strategies include:

  • Keeping functions warm with scheduled pings

  • Using edge runtimes with faster cold starts

  • Moving latency-sensitive agents to always-on infrastructure

  • Reducing bundle size to speed up function initialization

Multi-region and edge considerations

If your users span geographies, you will want to think about where your agent runs relative to both the user and the model provider's API endpoint. Running at the edge reduces network latency to the user but may increase latency to a centrally hosted model API.

For most agent workloads, model inference dominates total latency. Colocating your agent server near your model provider's API endpoint often matters more than running at the edge close to the user. Test both configurations with your actual workload before committing.

Choosing a cloud provider and VPC architecture

Most production agent deployments run on AWS, Google Cloud, or Azure. AWS is the most common choice for Node.js agent stacks, with Lambda for serverless, ECS or EKS for containers, and Secrets Manager for credential storage. Running your agent inside a VPC isolates it from the public internet, controls egress to model APIs, and lets you apply security group policies to limit blast radius if a credential is compromised.

For teams that want managed hosting without a full cloud setup, providers like Hostinger VPS plans offer a simpler path: you get a dedicated server, configure nginx as a reverse proxy, and deploy your Node.js agent process directly. Hostinger works well for early production deployments where you want full control of the stack but do not need multi-region redundancy yet. As traffic scales, Hostinger's cloud VPS plans support vertical scaling before you graduate to Kubernetes.

AI agent frameworks and orchestration tools

Your hosting environment does not exist in isolation; it runs whatever agent framework you have chosen. Understanding how popular AI agent frameworks handle state, routing, and orchestration shapes your infrastructure requirements.

LangChain and LangGraph are the most widely deployed Python-based options. LangGraph adds graph-based workflow execution on top of LangChain, making it suitable for agents with branching logic and stateful multi-step tasks. LangGraph's persistence layer writes workflow checkpoints to a store you provision, which means your hosting environment needs to handle both the agent process and the checkpoint database.

LlamaIndex focuses on data-intensive agents: retrieval pipelines, RAG workflows, and agents that need to query a vector database as a core action. If your agent does heavy document retrieval alongside tool calls, LlamaIndex provides higher-level abstractions than a raw vector database client.

For TypeScript teams, Mastra covers similar ground to LangGraph but with a TypeScript-native API. Its orchestration layer handles .then(), .branch(), and .parallel() execution with durable state, and its built-in observability removes the need to wire up a separate tracing stack.

The agent identity model also matters here. Each agent in a multi-agent system needs a stable identifier that carries through tracing, memory, and billing. Whether your framework uses string IDs, UUIDs, or session tokens, ensure that agent identity is consistent from the first tool call to the final response, or your cost attribution and debugging will become unreliable.

MCP servers and agent tool exposure

The model context protocol (MCP) is an open standard for exposing tools, resources, and prompts to LLM-based clients. When you build an mcp server alongside your hosted agent, you give any MCP-compatible client access to your agent's capabilities without a custom integration.

Hosting an mcp server is operationally similar to hosting an agent endpoint: you need a stable URL, TLS, and a custom domain that clients can reliably reach. The main difference is protocol: MCP uses a structured request/response format that your server must implement correctly. Frameworks like Mastra handle the MCP server boilerplate, letting you focus on which tools and resources to expose rather than the protocol mechanics.

AI tools exposed over MCP can include database lookups, API calls, file operations, or calls to other agents. Treating your hosted agents as first-class MCP servers makes them composable: a coding agent can invoke a search agent, a data agent can invoke a summarization agent, and the orchestration logic lives in the calling client rather than being hardcoded into each service.

AI agent hosting comes down to matching your agent's runtime needs to infrastructure that handles long-running processes, unpredictable execution times, and durable state. Start with the simplest option that meets your latency and durability requirements, instrument observability from day one, and layer in complexity only when your workload demands it.

Frequently asked questions

Can I host an AI agent on a serverless platform like Vercel or Netlify?

Yes, serverless platforms work well for stateless agents with short request lifecycles. If your agent completes its work within the platform's function timeout (typically 10 to 60 seconds), serverless gives you automatic scaling and minimal operational overhead. For multi-step workflows that exceed those limits, you will need a durable backend behind the serverless layer.

How do I handle state persistence for a hosted AI agent?

Use a durable store like PostgreSQL, Redis, or a dedicated memory layer to persist conversation history, working memory, and workflow checkpoints. Frameworks like Mastra ship built-in storage adapters for these, so you configure your backing store once and the framework handles reads and writes without custom persistence middleware.

What is the biggest cost driver in AI agent hosting?

Token usage typically dwarfs infrastructure costs. A single agent request can trigger multiple LLM calls, and each call consumes input and output tokens billed by your model provider. Instrument token tracking per agent, per user, and per time period from day one so you can catch runaway costs before they scale.

How do I reduce cold-start latency for serverless-hosted agents?

Keep functions warm with scheduled pings, use edge runtimes that initialize faster, reduce your deployment bundle size, and consider moving latency-sensitive agents to always-on infrastructure. Cold-start overhead compounds with model inference latency, so even small reductions improve perceived speed.

Do I need observability tooling for a production AI agent?

Yes. Agents can produce incorrect or degraded output while still returning 200 OK responses. Tracing with OpenTelemetry lets you inspect every LLM call, tool invocation, and memory retrieval in a single request, giving you the visibility to debug issues that uptime monitors will miss.

Share:
Aron Schuhmann
Aron SchuhmannHead of Demand Generation

Aron Schuhmann is the Head of Demand Generation at Mastra. A career-long B2B SaaS marketer, he has worked at the intersection of AI and developer tools since 2015, serving as an early growth and demand-generation hire at MightyAI (acquired by Uber), Gatsby (acquired by Netlify), and OctoAI (acquired by NVIDIA).

All articles by Aron Schuhmann
Sam Bhagwat

Sam Bhagwat is the founder and CEO of Mastra. He co-founded Gatsby, which was used by hundreds of thousands of developers. A Stanford graduate and veteran of web development, he authored 'Principles of Building AI Agents' (2025).

All articles by Sam Bhagwat