A modern web UI for exploring and visualizing AWS Bedrock AgentCore memory data. Built with Flask and HTMX for a responsive, interactive experience.
- Memory Store Explorer: Browse all available memory stores in your AWS account
- Actor Management: View actors within each memory store
- Session Tracking: Explore conversation sessions for each actor
- Event Visualization: Detailed view of conversation events with payload data
- Real-time Navigation: Smooth HTMX-powered interface with no page reloads
- Responsive Design: Clean, modern UI built with Tailwind CSS
The application provides a hierarchical view of AgentCore memory data:
Memories (Control Plane)
├── Actors (Data Plane)
├── Sessions (Data Plane)
└── Events (Data Plane)
- Python 3.13.1 (specified in .tool-versions)
- AWS credentials configured (via AWS CLI, environment variables, or IAM roles)
- Access to AWS Bedrock AgentCore services
-
Initialize the project:
make init
-
Install dependencies:
make install
-
Configure AWS credentials (if not already done):
aws configure
-
Start the application:
make start
-
Open your browser and navigate to
http://localhost:5000
Your AWS credentials need the following permissions:
bedrock-agentcore-control:ListMemoriesbedrock-agentcore-control:GetMemory
genesismemory:ListActorsgenesismemory:ListSessionsgenesismemory:ListEventsgenesismemory:GetEvent
- Start at Memories: View all available memory stores
- Select a Memory: Click "View Actors" to see actors in that memory store
- Choose an Actor: Click "View Sessions" to see conversation sessions
- Pick a Session: Click "View Events" to see detailed conversation events
- Explore Events: View conversation payloads, timestamps, and metadata
r- Refresh current viewh- Return to home page
The application also provides REST API endpoints:
GET /health- Health checkGET /api/memory/{id}/details- Get detailed memory informationGET /api/memory/{memory_id}/actor/{actor_id}/session/{session_id}/event/{event_id}- Get event details
agentcore-memory-viewer/
├── app.py # Flask application
├── main.py # Application entry point
├── log.py # JSON logging utilities
├── templates/ # Jinja2 templates
│ ├── base.html # Base template
│ ├── index.html # Home page
│ ├── memories.html # Memory list view
│ ├── actors.html # Actor list view
│ ├── sessions.html # Session list view
│ ├── events.html # Event list view
│ └── error.html # Error page
├── static/ # Static assets
│ └── app.js # Client-side JavaScript
└── requirements.txt # Python dependencies
make install <package_name>This automatically updates both requirements.txt and piplock.txt.
Build and run with Docker:
docker build -t agentcore-memory-viewer .
docker run -p 5000:5000 agentcore-memory-viewer- Backend: Flask (Python web framework)
- Frontend: HTMX (dynamic HTML) + Tailwind CSS (styling)
- AWS Integration: boto3 (AWS SDK for Python)
- Logging: Custom JSON logging utilities
-
AWS Credentials Not Found
- Ensure AWS credentials are configured:
aws configure - Check environment variables:
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY
- Ensure AWS credentials are configured:
-
Permission Denied Errors
- Verify your AWS user/role has the required AgentCore permissions
- Check the AWS region is correct for your AgentCore resources
-
No Memories Found
- Ensure you have created memory stores in AWS Bedrock AgentCore
- Verify you're in the correct AWS region
The application runs in debug mode by default during development. Check the console output for detailed error messages and API call logs.
- Follow the existing code style and structure
- Add appropriate logging for new features
- Update templates to maintain consistent UI/UX
- Test with real AWS AgentCore data when possible
MIT
