Skip to content

Deploy to production

Getting an agent into production means choosing where it runs and wrapping it in the entry point that host expects. The agent you built in development is the one you ship: the same loop, tools, and model provider run unchanged behind whatever target you pick here. What changes between targets is the packaging around it, not the agent itself.

Most targets call the agent over HTTP: they send a request to an invocation route and check a health route to know the container is live. The agent behind those routes is the same one you build anywhere else.

from fastapi import FastAPI
from strands import Agent
app = FastAPI()
agent = Agent()
@app.post("/invocations")
async def invoke(request: dict):
result = agent(request["prompt"])
return {"output": result.message}
@app.get("/ping")
def ping():
return {"status": "healthy"}

Each target guide takes this shape and adds the packaging it needs: a container image, a Lambda handler, a Kubernetes manifest, or a Terraform module.

New to deployment? Start with Docker to containerize the agent locally, then move the image to a cloud target. Already know where you are shipping? Pick that target from the grid above and follow its guide end to end.

Before you ship, read Operating agents in production for the practices that apply across every target: configuration, secrets, scaling, and observability.