awslabs / fullstack-solution-template-for-agentcore
Flexible Fullstack solution template for production-ready deployments of any use case on Amazon Bedrock AgentCore.
README
Fullstack AgentCore Solution Template (FAST)
Author's note: for the official name for this solution is the "Fullstack Solution Template for Agentcore" but it is referred to throughout this code base as FAST for convenience.
The Fullstack AgentCore Solution Template (FAST) is a starter project repository that enables users (delivery scientists and engineers) to quickly deploy a secured, web-accessible React frontend connected to an AgentCore backend. Its purpose is to accelerate building full stack applications on AgentCore from weeks to days by handling the undifferentiated heavy lifting of infrastructure setup and to enable vibe-coding style development on top. The only central dependency of FAST is AgentCore. It is agnostic to agent SDK (Strands, LangGraph, etc) and to coding assistant platforms (Q, Kiro, Cline, Claude Code, etc).
FAST is designed with security and vibe-codability as primary tenets. Best practices and knowledge from experts are codified in documentation in this repository rather than in code. By including this documentation in an AI coding assistant's context, or by instructing the AI coding assistant to leverage best practices and code snippets found in the documentation, delivery scientists and developers can quickly vibe-build AgentCore applications for any use case. AI coding assistants can be used to fully customize the frontend and the infrastructure, enabling scientists to focus the areas where their knowledge is most impactful: the actual prompt engineering and GenAI implementation details.
With FAST as a starting point and development framework, delivery scientists and engineers will accelerate their development process and deliver production quality AgentCore code following architecture and security best practices without having to learn any frontend or infrastructure code.
FAST Baseline System
FAST comes deployable out-of-the-box with a fully functioning, full-stack application. This application represents starts as a basic multi-turn chat agent where the backend agent has access to tools. Do not let this deter you, even if your use case is entirely different! If your application requires AgentCore, customizing FAST to any use case is extremely straightforward. That is the intended use of FAST!
The application is intentionally kept very, very simple to allow developers to easily build up whatever they want on top of the baseline. The tools shipped out of the box include:
-
Gateway Tools - Lambda-based tools behind AgentCore Gateway with authentication:
- Text analysis tool (counts words and letter frequency)
-
Code Interpreter - Direct integration with Amazon Bedrock AgentCore Code Interpreter:
- Secure Python code execution in isolated sandbox
- Session management with state persistence
- Pre-built runtime with common libraries
Try asking the agent to analyze text or execute Python code to see these tools in action.
FAST User Setup
If you are a delivery scientist or engineer who wants to use FAST to build a full stack application, this is the section for you.
FAST is designed to be forked and deployed out of the box with a security-approved baseline system working. Your task will be to customize it to create your own full stack application to to do (literally) anything on AgentCore.
Deploying the full stack out-of-the-box FAST baseline system is only a few cdk commands once you have forked the repo, namely:
cd infra-cdk
npm install
cdk bootstrap # Once ever
cdk deploy
cd ..
python scripts/deploy-frontend.py
See the deployment guide for detailed instructions on how to deploy FAST into an AWS account.
Terraform alternative: FAST also supports Terraform for infrastructure deployment. See
infra-terraform/README.mdfor the Terraform deployment guide. We recommend choosing one infrastructure tool and deleting the other directory (infra-cdk/orinfra-terraform/) from your fork to keep things clean.
What comes next? That's up to you, the developer. With your requirements in mind, open up your coding assistant, describe what you'd like to do, and begin. The steering docs in this repository help guide coding assistants with best practices, and encourage them to always refer to the documentation built-in to the repository to make sure you end up building something great.
Architecture
The out-of-the-box architecture is shown above. The diagram illustrates the authentication flows across the stack:
- User login to the frontend (Cognito User Pool โ Authorization Code grant): The user authenticates with Cognito via the web application hosted on AWS Amplify. Cognito issues a JWT access token for the session.
- Frontend to AgentCore Runtime (Cognito User Pool JWT validation): The frontend passes the user's JWT in the Authorization header. The Runtime validates the token against the Cognito User Pool.
- AgentCore Runtime to AgentCore Gateway (OAuth2 Client Credentials / M2M): The Runtime authenticates as a service using the OAuth2 Client Credentials grant โ independent of the user's identity. AgentCore Identity manages token retrieval via the Token Vault.
- Frontend to API Gateway (Cognito User Pool JWT validation): API requests are authenticated using a Cognito User Pools Authorizer with the same user JWT from Flow 1.
Tech Stack
- Frontend: React with TypeScript, Vite, Tailwind CSS, and shadcn components - infinitely flexible and ready for coding assistants
- Agent Providers: Multiple agent providers supported (Strands, LangGraph, etc.) running within AgentCore Runtime
- Authentication: AWS Cognito User Pool with OAuth support for easy swapping out Cognito
- Infrastructure: CDK deployment with Amplify Hosting for frontend and AgentCore backend (Terraform also supported)
Project Structure
fullstack-agentcore-solution-template/
โโโ .amazonq/ # Amazon Q assistant rules
โโโ .github/ # GitHub Actions workflows
โ โโโ workflows/
โโโ docker/ # Docker development environment
โ โโโ docker-compose.yml # Local development stack
โ โโโ Dockerfile.frontend.dev # Frontend development container
โโโ frontend/ # React frontend application
โ โโโ src/
โ โ โโโ app/ # Application pages
โ โ โโโ components/ # React components (shadcn/ui)
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ lib/ # Utility libraries
โ โ โ โโโ agentcore-client/ # AgentCore streaming client
โ โ โโโ routes/ # React Router routes
โ โ โโโ services/ # API service layers
โ โ โโโ styles/ # Global styles
โ โ โโโ test/ # Frontend tests
โ โ โโโ types/ # TypeScript type definitions
โ โโโ public/ # Static assets
โ โโโ components.json # shadcn/ui configuration
โ โโโ vite.config.ts # Vite configuration
โ โโโ package.json
โโโ infra-cdk/ # CDK infrastructure code
โ โโโ lib/ # CDK stack definitions
โ โ โโโ utils/ # Shared CDK utilities
โ โ โโโ amplify-hosting-stack.ts
โ โ โโโ backend-stack.ts
โ โ โโโ cognito-stack.ts
โ โ โโโ fast-main-stack.ts
โ โโโ bin/ # CDK app entry point
โ โโโ lambdas/ # Lambda function code
โ โ โโโ oauth2-provider/ # OAuth2 Credential Provider lifecycle
โ โ โโโ feedback/ # Feedback API handler
โ โ โโโ zip-packager/ # Runtime ZIP packager
โ โโโ config.yaml # Deployment configuration
โโโ infra-terraform/ # Terraform infrastructure (alternative to CDK)
โ โโโ modules/ # Terraform modules
โ โ โโโ amplify-hosting/ # Amplify Hosting module
โ โ โโโ cognito/ # Cognito User Pool module
โ โ โโโ backend/ # Backend resources module
โ โโโ scripts/ # Terraform-specific deployment scripts
โ โโโ lambdas/ # Terraform-specific Lambda code
โ โโโ terraform.tfvars.example # Example variable file
โ โโโ README.md # Terraform deployment guide
โโโ patterns/ # Agent pattern implementations
โ โโโ strands-single-agent/ # Basic strands agent pattern
โ โ โโโ basic_agent.py # Agent implementation
โ โ โโโ strands_code_interpreter.py # Code Interpreter wrapper
โ โ โโโ requirements.txt # Agent dependencies
โ โ โโโ Dockerfile # Container configuration
โ โโโ langgraph-single-agent/ # LangGraph agent pattern
โ โ โโโ langgraph_agent.py # Agent implementation
โ โ โโโ requirements.txt # Agent dependencies
โ โ โโโ Dockerfile # Container configuration
โ โโโ utils/ # Shared agent utilities
โ โโโ auth.py # Authentication helpers
โ โโโ ssm.py # SSM parameter helpers
โโโ tools/ # Reusable tools (framework-agnostic)
โ โโโ code_interpreter/ # AgentCore Code Interpreter integration
โ โโโ code_interpreter_tools.py # Core implementation
โโโ gateway/ # Gateway utilities and tools
โ โโโ tools/ # Gateway tool implementations
โ โโโ sample_tool/ # Example Gateway tool
โโโ scripts/ # Deployment and utility scripts
โ โโโ deploy-frontend.py # Cross-platform frontend deployment
โ โโโ utils.py # Shared script utilities
โโโ test-scripts/ # Testing scripts
โ โโโ test-agent.py # Agent testing
โ โโโ test-feedback-api.py # Feedback API testing
โ โโโ test-gateway.py # Gateway testing
โ โโโ test-memory.py # Memory testing
โโโ tests/ # Test suite
โ โโโ unit/ # Unit tests
โ โโโ integration/ # Integration tests
โ โโโ conftest.py # Pytest configuration
โโโ docs/ # Documentation source files
โ โโโ architecture-diagram/ # Architecture diagrams
โ โโโ DEPLOYMENT.md # Deployment guide
โ โโโ LOCAL_DEVELOPMENT.md # Local development guide
โ โโโ AGENT_CONFIGURATION.md # Agent setup guide
โ โโโ MEMORY_INTEGRATION.md # Memory integration guide
โ โโโ GATEWAY.md # Gateway integration guide
โ โโโ RUNTIME_GATEWAY_AUTH.md # M2M authentication workflow
โ โโโ STREAMING.md # Streaming implementation guide
โ โโโ TOOL_AC_CODE_INTERPRETER.md # Code Interpreter guide
โ โโโ VERSION_BUMP_PLAYBOOK.md # Version management
โโโ .mkdocs/ # MkDocs build configuration
โ โโโ mkdocs.yml # MkDocs configuration
โ โโโ requirements.txt # Documentation dependencies
โ โโโ Makefile # Build and deployment commands
โโโ vibe-context/ # AI coding assistant context and rules
โ โโโ AGENTS.md # Rules for AI assistants
โ โโโ coding-conventions.md # Code style guidelines
โ โโโ development-best-practices.md # Development guidelines
โโโ .kiro/ # Kiro CLI configuration
โโโ CHANGELOG.md # Version history
โโโ Makefile # Project-level build commands
โโโ README.md
DeepWiki
Have a question about how FAST works? Consider asking DeepWiki!
Security
Note: this asset represents a proof-of-value for the services included and is not intended as a production-ready solution. You must determine how the AWS Shared Responsibility applies to their specific use case and implement the needed controls to achieve their desired security outcomes. AWS offers a broad set of security tools and configurations to enable our customers.
Ultimately it is your responsibility as the developer of a full stack application to ensure all of its aspects are secure. We provide security best practices in repository documentation and provide a secure baseline but Amazon holds no responsibility for the security of applications built from this tool.
License
This project is licensed under the Apache-2.0 License.
