33Reference application for ** Build stateful agentic AI workflows with Aurora, MCP, and AgentCore** .
44
55<p align =" center " >
6+ <a href =" https://github.com/aws-samples/sample-stateful-agentic-ai-workflows-aurora-mcp-agentcore/actions/workflows/application-ci.yml " ><img alt =" Application CI " src =" https://github.com/aws-samples/sample-stateful-agentic-ai-workflows-aurora-mcp-agentcore/actions/workflows/application-ci.yml/badge.svg?branch=main&style=flat-square " ></a >
67 <a href =" LICENSE " ><img alt =" License: MIT-0 " src =" https://img.shields.io/badge/License-MIT--0-2EA44F?style=flat-square " ></a >
8+ <img alt =" Python 3.11+ " src =" https://img.shields.io/badge/Python-3.11%2B-3776AB?style=flat-square&logo=python&logoColor=white " >
9+ <img alt =" Node.js 20+ " src =" https://img.shields.io/badge/Node.js-20%2B-339933?style=flat-square&logo=nodedotjs&logoColor=white " >
710 <img alt =" Amazon Aurora PostgreSQL 18+ " src =" https://img.shields.io/badge/Amazon_Aurora-PostgreSQL_18%2B-527FFF?style=flat-square&labelColor=232F3E " >
811 <img alt =" Amazon Bedrock AgentCore " src =" https://img.shields.io/badge/Amazon_Bedrock-AgentCore-FF9900?style=flat-square&labelColor=232F3E " >
9- <img alt =" Claude Sonnet 5 " src =" https://img.shields.io/badge/Claude-Sonnet_5-191919?style=flat-square&logo=anthropic&logoColor=white " >
10- <img alt =" Model Context Protocol " src =" https://img.shields.io/badge/MCP-Model_Context_Protocol-000000?style=flat-square&logo=modelcontextprotocol&logoColor=white " >
11- <img alt =" LangGraph StateGraph " src =" https://img.shields.io/badge/LangGraph-StateGraph-1C3C3C?style=flat-square&logo=langchain&logoColor=white " >
12+ <img alt =" Model Context Protocol " src =" https://img.shields.io/badge/MCP-Model_Context_Protocol-000000?style=flat-square " >
1213</p >
1314
1415Meridian is a realistic agentic travel concierge operating on live relational
@@ -27,7 +28,7 @@ security, audit trails, and checkpoints keep every turn governed and resilient.
2728
2829<p align =" center " ><sub >Live Aurora results pair realistic trip cards with disruption recovery, traveler context, and inspectable system proof.</sub ></p >
2930
30- ** [ Quick start] ( #quick-start ) ** · ** [ Five-phase architecture] ( #what-it-demonstrates ) ** · ** [ Stateful architecture] ( meridian/docs/STATEFUL_ARCHITECTURE.md ) ** · ** [ Demo script] ( meridian/DEMO_SCRIPT.md ) ** · ** [ Presenter guide] ( meridian/docs/PRESENTER_GUIDE.md ) **
31+ ** [ Quick start] ( #quick-start ) ** · ** [ Five-phase architecture] ( #what-it-demonstrates ) ** · ** [ Stateful architecture] ( meridian/docs/STATEFUL_ARCHITECTURE.md ) ** · ** [ Validation ] ( #validation ) ** · ** [ Demo script] ( meridian/DEMO_SCRIPT.md ) ** · ** [ Presenter guide] ( meridian/docs/PRESENTER_GUIDE.md ) **
3132
3233## What It Demonstrates
3334
@@ -65,11 +66,12 @@ The runnable application lives in [`meridian/`](meridian/).
6566cd meridian
6667python -m venv venv
6768source venv/bin/activate
68- pip install -r requirements.txt
69+ python -m pip install --require-hashes -r requirements.txt
6970
7071cp .env.example .env
7172# Fill in Aurora cluster ARN, secret ARN, database, and AWS region.
7273
74+ # Fresh or disposable database only: rebuilds the base schema.
7375python scripts/init_aurora_schema.py
7476python scripts/seed_data.py
7577
@@ -80,19 +82,21 @@ uvicorn backend.main:app --reload --port 8000
8082
8183``` bash
8284cd meridian/frontend
83- npm install
85+ npm ci
8486npm run dev
8587```
8688
8789Open [ ` http://localhost:5173/showcase ` ] ( http://localhost:5173/showcase ) . The
88- root route redirects to the showcase.
90+ root route redirects to the showcase. For an existing database, do not rerun
91+ ` init_aurora_schema.py ` ; apply tracked upgrades with
92+ ` python scripts/apply_migrations.py ` .
8993
9094## Demo Surfaces
9195
9296| Surface | Route | Purpose |
9397| ------- | ----- | ------- |
9498| Meridian Showcase | ` /showcase ` | Primary live experience and system-proof surface |
95- | Meridian Pro | ` /pro ` | Supporting architecture and builder walkthrough |
99+ | Demo Stage | ` /demo-stage ` , ` /stage ` | Kiosk loop and presenter playback |
96100
97101## Documentation
98102
@@ -102,6 +106,7 @@ root route redirects to the showcase.
102106| [ meridian/DEMO_SCRIPT.md] ( meridian/DEMO_SCRIPT.md ) | Extended demo script and optional code walkthrough |
103107| [ meridian/docs/PRESENTER_GUIDE.md] ( meridian/docs/PRESENTER_GUIDE.md ) | Concise run of show, claim boundaries, and readiness checklist |
104108| [ meridian/docs/OPERATIONS.md] ( meridian/docs/OPERATIONS.md ) | AgentCore deployment and day-of operations |
109+ | [ meridian/docs/STATEFUL_ARCHITECTURE.md] ( meridian/docs/STATEFUL_ARCHITECTURE.md ) | Durable-state, transport, and checkpoint architecture |
105110| [ CONTRIBUTING.md] ( CONTRIBUTING.md ) | Contribution guidelines |
106111
107112## Tech Stack
@@ -110,10 +115,39 @@ root route redirects to the showcase.
110115- ** Backend:** FastAPI, Strands Agents, LangGraph
111116- ** Models:** Claude Sonnet 5 on Amazon Bedrock, Cohere Embed v4, Cohere Rerank 3.5
112117- ** Data:** Aurora PostgreSQL 18+, pgvector, RDS Data API, pooled psycopg, identity bindings, Row-Level Security
113- - ** Protocols and services:** Model Context Protocol, Bedrock AgentCore Runtime, Gateway, Memory, and Identity
118+ - ** Protocols and services:** Model Context Protocol, Bedrock AgentCore Runtime, Gateway, Memory, and IAM or AgentCore workload identity
114119
115120This sample authorizes AWS or AgentCore workload identities. A shared hosted
116121application must also authenticate its end users and bind the verified user
117122subject, such as a Cognito ` sub ` , to the traveler record. Apply your
118123organization's networking, observability, availability, and governance
119124requirements before production use.
125+
126+ ## Validation
127+
128+ The GitHub Actions workflow runs backend, frontend, and AgentCore CDK checks on
129+ every push to ` main ` . Run the same commands locally:
130+
131+ ``` bash
132+ cd meridian
133+ source venv/bin/activate
134+ python -m pytest
135+ python -m pip_audit -r requirements.txt
136+ ```
137+
138+ ``` bash
139+ cd meridian/frontend
140+ npm ci
141+ npm run lint
142+ npm run test:run
143+ npm run build
144+ npm audit --audit-level=high
145+ ```
146+
147+ ``` bash
148+ cd meridian/meridian_agentcore/agentcore/cdk
149+ npm ci
150+ npm run build
151+ npm test -- --runInBand
152+ npm run format:check
153+ ```
0 commit comments