Production infrastructure for AI agent applications, built on FastAPI.
fast-agent-stack gives you auth, database, vector search, background tasks, rate limiting, observability, and storage out of the box. Bring your own agent framework (Strands, Pydantic AI, LangGraph) or use the built-in @app.agent() for simple cases.
mkdir myproject &&cd myproject
uv venv &&source .venv/bin/activate
uv pip install fast-agent-stack
fas new myproject --preset agent
uv pip install -r pyproject.toml
fas migrate
fas devVisit http://localhost:8000/docs to see the interactive API.
# Core only
pip install fast-agent-stack
# With extras (mix and match)
pip install "fast-agent-stack[auth-jwt,db-postgres,vector-qdrant]"# Full AI stack
pip install "fast-agent-stack[ai-full]"Pick a preset and get a production-ready project in seconds:
| Preset | What you get |
|---|---|
minimal | FastAPI app, SQLAlchemy, health checks, CLI |
standard | + JWT auth, SQLAdmin, Docker |
full | + rate limiting, background tasks, email, observability |
agent | + LLM backends, vector store, RAG pipeline, streaming |
fas new myproject --preset standard- SQLAlchemy async + Alembic migrations
- Redis/Valkey: auth, rate limiting, response caching
- Background tasks (Dramatiq) + scheduler (Periodiq)
- Storage: S3, MinIO, local filesystem
- OpenTelemetry tracing (Jaeger backend)
- AWS / GCP secrets managers
- JWT + session auth backends, pluggable via settings
- RBAC: users, groups, permissions, API keys
- Redis JTI denylist, email verification, password reset
- SQLAdmin UI (optional)
- Vector stores: Qdrant, pgvector, OpenSearch, Weaviate
- Embedding backends: Bedrock, OpenAI, fastembed (local)
- RAG pipeline: chunk, embed, store / retrieve
- Document extraction: PDF, DOCX, XLSX, EML
- Built-in
@app.agent()decorator for simple single-agent endpoints - LLM backends: AWS Bedrock, OpenAI, Anthropic, LiteLLM proxy
get_llm(settings)factory for one-line backend resolution- Framework integration guides for Strands Agents and Pydantic AI
fast-agent-stack's built-in @app.agent() covers simple cases (like FastAPI's BackgroundTasks). For serious agentic work, bring your own framework and use fast-agent-stack for the infrastructure:
# myproject/ai/agents/chat.pyfromstrandsimportAgentfromstrands.models.litellmimportLiteLLMModelfrommyproject.ai.tools.searchimportsearch_docsfrommyproject.settingsimportget_settings_settings=get_settings()
defbuild_chat_agent():
model=LiteLLMModel(
model_id=f"openai/{_settings.llm_model}",
params={"api_key": _settings.llm_api_key, "api_base": _settings.llm_base_url},
)
returnAgent(model=model, tools=[search_docs])# myproject/routes.pyfromfastapi.responsesimportStreamingResponse@router.post("/agents/chat")asyncdefchat(body: ChatRequest) ->StreamingResponse:
returnStreamingResponse(stream_chat(body.message), media_type="text/event-stream")See the Strands Agents guide or Pydantic AI guide for full working examples.
# Authfast-agent-stack[auth-jwt] # JWT backendfast-agent-stack[auth-session] # Session backend# Database driversfast-agent-stack[db-postgres] # asyncpgfast-agent-stack[db-sqlite] # aiosqlitefast-agent-stack[db-mysql] # aiomysql# LLM backendsfast-agent-stack[anthropic] # Anthropic SDKfast-agent-stack[openai] # OpenAI SDKfast-agent-stack[bedrock] # aioboto3 (AWS Bedrock)fast-agent-stack[litellm] # LiteLLM proxy# Vector storesfast-agent-stack[vector-qdrant]fast-agent-stack[vector-pgvector]fast-agent-stack[vector-opensearch]fast-agent-stack[vector-weaviate]# Background tasksfast-agent-stack[tasks] # Dramatiq + Redis broker# Observabilityfast-agent-stack[tracing] # OpenTelemetry + Jaeger# Full AI bundlefast-agent-stack[ai-full]| Command | Description |
|---|---|
fas new <name> | Scaffold a new project |
fas dev | Dev server (127.0.0.1, auto-reload) |
fas run | Production server (0.0.0.0, multi-worker) |
fas migrate | Apply all migrations |
fas makemigrations | Generate migration from model changes |
fas worker <module> | Start Dramatiq worker |
fas scheduler <module> | Start Periodiq scheduler |
fas createsuperuser | Create a superuser account |
fas version | Print installed version |
fastagentstack also works as the full-length alias.
- Tutorial - Build a Document Q&A app step by step
- Framework Integration Guides - Strands Agents, Pydantic AI
- Getting Started
- Authentication & Authorization
- AI Module & Agents
- RAG Pipeline
- Storage & Extraction
- Background Tasks & Scheduling
- Rate Limiting & Observability
- Deployment
- Custom Backends
- Configuration Reference
MIT