Skip to content

MikePfunk28/agent_builder_application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

98 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AI Agent Builder Application

A comprehensive platform for building, testing, and deploying AI agents with support for multiple LLM providers (AWS Bedrock, Ollama), deployment tiers (AgentCore, Fargate), and MCP (Model Context Protocol) integration.

Try it out:

https://ai-forge.mikepfunk.com

βœ… Infrastructure Verified & Updated

Three Chat System:

  • βœ… Chat UI Panel - Agent building with interleaved reasoning
  • βœ… Agent Builder Input - Automated processing with Claude Haiku 4.5
  • βœ… Test Chat - Testing built agents with conversation manager

MCP Servers (11+ configured):

  • βœ… bedrock-agentcore-mcp-server - Windows uv tool setup for AgentCore integration
  • βœ… document-fetcher-mcp-server - Document retrieval and processing
  • βœ… aws-diagram-mcp-server - Infrastructure diagram generation
  • βœ… Plus 8+ others - Configured in mcpConfig.ts

Rate-Limited External APIs:

  • βœ… Tavily Web Search - 1000 requests/month for web search
  • βœ… Mem0 Memory - 1000 requests/month for memory operations
  • βœ… AgentOps Tracing - 1000 requests/month for agent observability

Model Registry (49 models):

  • βœ… AWS Bedrock - Claude, Titan, and other foundation models
  • βœ… Ollama - Local model execution (llama, mistral, etc.)

Tool Registry (50+ Strands tools):

  • βœ… Pre-configured tools - From toolRegistry.ts with auto-discovery

DNS & Hosting:

  • βœ… Cloudflare DNS (NOT Route53) - manages all domain resolution
  • βœ… Cloudflare Pages - frontend hosting at ai-forge.mikepfunk.com
  • βœ… Custom API Domain - api.mikepfunk.com points to Convex (via Cloudflare DNS)

Memory Architecture:

  • βœ… STM (Short-Term): Convex tables (<8KB) for real-time access
  • βœ… LTM (Long-Term): S3 storage (>8KB) for persistence
  • βœ… DynamoDB: Memory indexing for fast lookups and semantic search

Authentication:

  • βœ… Web Identity Federation: STS AssumeRoleWithWebIdentity
  • βœ… NO static AWS keys: All credentials are temporary via STS
  • βœ… Cognito + OAuth: GitHub, Google integration

Testing vs Deployment Separation:

  • βœ… agentcoreSetup.ts - Testing via MCP server
  • βœ… agentcoreDeployment.ts - Deployment to AgentCore sandbox
  • βœ… awsDeployment.ts - User AWS Fargate deployment

Backend:

  • βœ… Convex Serverless: Primary database and real-time backend
  • βœ… Built-in Indexes: Convex table indexes (NOT external database)
  • βœ… 14+ Tables: users, agents, deployments, agentMemories, etc.

πŸ—οΈ Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Frontend - Cloudflare Pages (ai-forge.mikepfunk.com)    β”‚
β”‚                   Cloudflare CDN + DNS + DDoS + SSL              β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚  β”‚ Chat Panel   β”‚  β”‚ Agent Builderβ”‚  β”‚ Test Chat    β”‚          β”‚
β”‚  β”‚ - Interleavedβ”‚  β”‚ - Walkthroughβ”‚  β”‚ - Agent      β”‚          β”‚
β”‚  β”‚   Reasoning  β”‚  β”‚ - Automated  β”‚  β”‚   Testing    β”‚          β”‚
β”‚  β”‚              β”‚  β”‚   (Haiku 4.5)β”‚  β”‚ - Conv Mgr   β”‚          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                             β”‚
β”‚  β”‚ Monitoring   β”‚  β”‚ Auditing     β”‚                             β”‚
β”‚  β”‚ - CloudWatch β”‚  β”‚ - Audit Logs β”‚                             β”‚
β”‚  β”‚ - X-Ray      β”‚  β”‚ - Events     β”‚                             β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           Authentication (Web Identity Federation)               β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ AWS Cognito User Pool                                    β”‚   β”‚
β”‚  β”‚  - GitHub OAuth β†’ JWT ID Token                           β”‚   β”‚
β”‚  β”‚  - Google OAuth β†’ JWT ID Token                           β”‚   β”‚
β”‚  β”‚  - STS AssumeRoleWithWebIdentity β†’ Temp AWS Credentials β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      Backend - Convex Serverless (resolute-kudu-325.convex)     β”‚
β”‚              Custom API Domain: api.mikepfunk.com                β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Core Services                                            β”‚   β”‚
β”‚  β”‚  - Real-time API (WebSocket subscriptions)              β”‚   β”‚
β”‚  β”‚  - Convex Functions (TypeScript-safe APIs)              β”‚   β”‚
β”‚  β”‚  - HTTP Routes (OAuth callbacks, MCP endpoints)         β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Database (14+ Tables)                                    β”‚   β”‚
β”‚  β”‚  - users, agents, deployments                            β”‚   β”‚
β”‚  β”‚  - agentMemories (STM/LTM hybrid)                        β”‚   β”‚
β”‚  β”‚  - conversations, testExecutions                         β”‚   β”‚
β”‚  β”‚  - mcpServers, diagrams                                  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Memory Architecture                                      β”‚   β”‚
β”‚  β”‚  - STM: Convex storage (<8KB) β†’ Real-time access        β”‚   β”‚
β”‚  β”‚  - LTM: S3 storage (>8KB) β†’ Cost-effective              β”‚   β”‚
β”‚  β”‚  - DynamoDB: Memory indexing β†’ Fast lookups             β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Agent Management                                         β”‚   β”‚
β”‚  β”‚  - Agent Builder (Code Generation)                       β”‚   β”‚
β”‚  β”‚  - Validator (Schema & Syntax)                           β”‚   β”‚
β”‚  β”‚  - Deployment Router (Tier Selection)                    β”‚   β”‚
β”‚  β”‚  - Model Registry (49 models: Bedrock + Ollama)         β”‚   β”‚
β”‚  β”‚  - Tool Registry (50+ Strands tools)                    β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ MCP & Strands Integration                                β”‚   β”‚
β”‚  β”‚  - MCP Servers (11+ configured)                          β”‚   β”‚
β”‚  β”‚    β€’ bedrock-agentcore-mcp-server (Windows uv)           β”‚   β”‚
β”‚  β”‚    β€’ document-fetcher-mcp-server                         β”‚   β”‚
β”‚  β”‚    β€’ aws-diagram-mcp-server                              β”‚   β”‚
β”‚  β”‚    β€’ Plus 8+ others                                      β”‚   β”‚
β”‚  β”‚  - Strands Tools SDK (50+ tools)                         β”‚   β”‚
β”‚  β”‚  - Agent as MCP Tool                                     β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Rate-Limited External APIs                               β”‚   β”‚
β”‚  β”‚  - Tavily Web Search (1000 req/month)                    β”‚   β”‚
β”‚  β”‚  - Mem0 Memory (1000 req/month)                          β”‚   β”‚
β”‚  β”‚  - AgentOps Tracing (1000 req/month)                     β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              AWS Backend & AI Services (us-east-1)               β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Storage Layer                                            β”‚   β”‚
β”‚  β”‚  - S3: LTM (>8KB), Artifacts, Deployment Packages       β”‚   β”‚
β”‚  β”‚  - DynamoDB: Memory indexing & semantic search          β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ AI Services                                              β”‚   β”‚
β”‚  β”‚  - Bedrock AgentCore (Tier 1 runtime)                   β”‚   β”‚
β”‚  β”‚  - Bedrock Models (Claude, etc.)                         β”‚   β”‚
β”‚  β”‚  - Strands Agents SDK                                    β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Tier 2 - User AWS Account (ECS Fargate)                 β”‚   β”‚
β”‚  β”‚  - VPC with public/private subnets                       β”‚   β”‚
β”‚  β”‚  - Application Load Balancer                             β”‚   β”‚
β”‚  β”‚  - ECS Fargate Cluster                                   β”‚   β”‚
β”‚  β”‚  - ECR Container Registry                                β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ Monitoring & Observability                               β”‚   β”‚
β”‚  β”‚  - CloudWatch Logs (Fargate, AgentCore, Convex)         β”‚   β”‚
β”‚  β”‚  - CloudWatch Metrics & Dashboards                       β”‚   β”‚
β”‚  β”‚  - AWS X-Ray (Distributed tracing)                       β”‚   β”‚
β”‚  β”‚  - OpenTelemetry (OTEL instrumentation)                  β”‚   β”‚
β”‚  β”‚  - Audit Logs (User actions, deployments)               β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Infrastructure Components

Frontend:

  • Hosting: Cloudflare Pages (ai-forge.mikepfunk.com)
  • CDN: Global edge network with HTTP/2, Brotli compression
  • DNS: Cloudflare DNS (NOT Route53)
  • Security: DDoS protection, automatic SSL/TLS certificates
  • Tech: React 19, Vite, TypeScript, TailwindCSS

Backend:

  • Platform: Convex serverless ({{convex-cloud-url}}.convex.cloud)
  • API Domain: Custom domain api.mikepfunk.com (via Cloudflare DNS)
  • Database: Convex with 14+ tables and built-in indexes
  • Real-time: WebSocket subscriptions for live updates

Authentication:

  • Primary: AWS Cognito User Pool (us-east-1_{{hash}})
  • OAuth Providers: GitHub, Google
  • Federation: STS AssumeRoleWithWebIdentity for temporary AWS credentials
  • NO static AWS access keys - all credentials are temporary

Memory Architecture:

  • STM (Short-Term Memory): Convex storage for recent data (<8KB)
  • LTM (Long-Term Memory): S3 storage for persistent data (>8KB)
  • Indexing: DynamoDB for fast memory lookups and semantic search
  • Hybrid Strategy: Automatic routing based on data size

AI & Agents:

  • Bedrock AgentCore: Tier 1 freemium runtime (platform-managed)
  • Bedrock Models: Claude, Titan, and other foundation models
  • Strands Agents: SDK for agent creation and tool integration
  • MCP Integration: 11+ MCP servers for extended capabilities

AWS Services:

  • S3: Long-term memory, deployment packages, artifacts
  • DynamoDB: Memory indexing, semantic search
  • ECS Fargate: Tier 2 containerized agent execution
  • ECR: Container registry for agent images
  • CloudWatch: Logs and metrics for all services
  • X-Ray: Distributed tracing and performance insights
  • Cognito: User authentication and OAuth
  • STS: Temporary credential generation

Observability:

  • OpenTelemetry (OTEL): Instrumentation for traces, metrics, and logs
  • AWS X-Ray: Distributed tracing across AWS services
  • CloudWatch: Centralized logging and metrics
  • Integration: OTEL exports traces to X-Ray for end-to-end visibility

DNS & Domains:

  • Provider: Cloudflare DNS (NOT AWS Route53)
  • Frontend: ai-forge.mikepfunk.com β†’ Cloudflare Pages
  • API: api.mikepfunk.com β†’ Convex backend
  • All DNS managed through Cloudflare

πŸš€ Features

Agent Creation

  • Model Selection: Choose from 49 AI models across AWS Bedrock and Ollama
  • Tool Selection: Browse 50+ pre-configured Strands tools
  • Custom System Prompts: Define agent behavior and context
  • Code Generation: One-click generation of complete agent packages
  • @agent Decorator: Preprocessing and postprocessing hooks
  • @tool Decorator: Create custom tools with automatic MCP integration

Authentication

  • OAuth 2.0: GitHub, Google, AWS Cognito
  • Password Authentication: Email/password sign-up
  • Anonymous Access: Guest mode for quick testing
  • Custom Profile Handlers: Extended user data (GitHub username, Google locale)

Deployment Tiers

Tier 1: AgentCore (Freemium + Testing)

  • Testing: Via bedrock-agentcore-mcp-server (agentcoreSetup.ts)
  • Deployment: AWS Bedrock AgentCore sandbox (agentcoreDeployment.ts)
  • Bedrock models only
  • Limited test executions (10/month for freemium)
  • No AWS account required
  • Cost-effective for experimentation
  • Platform-managed runtime

Tier 2: Fargate (Personal)

  • Deployment: User's AWS account via cross-account IAM role (awsDeployment.ts)
  • Full Docker container support
  • Ollama + Bedrock models
  • Unlimited executions
  • Cross-account IAM role setup with External ID
  • VPC, ECS Fargate, ECR infrastructure

Tier 3: Enterprise (Future)

  • Multi-user support
  • AWS SSO + Organizations
  • Advanced monitoring
  • Custom integrations
  • SLA guarantees

MCP Integration

  • MCP Server Management: Configure and manage 11+ MCP servers
  • bedrock-agentcore-mcp-server: Windows uv tool setup for AgentCore testing
  • document-fetcher-mcp-server: Document retrieval and processing
  • aws-diagram-mcp-server: Infrastructure diagram generation
  • Tool Discovery: Automatic tool detection from MCP servers
  • Agent as Tool: Expose agents as MCP tools for agent-to-agent communication

Rate-Limited External APIs

  • Tavily Web Search: 1000 requests/month for comprehensive web search
  • Mem0 Memory: 1000 requests/month for advanced memory operations
  • AgentOps Tracing: 1000 requests/month for agent observability and debugging

Three Chat System

  • Chat UI Panel: Agent building process with interleaved reasoning
  • Agent Builder Input: Automated agent processing with Claude Haiku 4.5
  • Test Chat: Testing built agents with conversation manager

Meta-Tooling

  • Dynamic Tool Creation: Agents can create tools they need
  • @tool Decorator: Automatic tool registration
  • Tool Persistence: Save and reuse generated tools

πŸ“ Project Structure

agent_builder_application/
β”œβ”€β”€ src/                          # Frontend (React + Vite)
β”‚   β”œβ”€β”€ components/               # UI components
β”‚   β”œβ”€β”€ App.tsx                   # Main application
β”‚   β”œβ”€β”€ SignInForm.tsx            # Authentication UI
β”‚   └── main.tsx                  # Entry point
β”‚
β”œβ”€β”€ convex/                       # Backend (Convex)
β”‚   β”œβ”€β”€ auth.ts                   # Authentication configuration
β”‚   β”œβ”€β”€ auth.config.ts            # OAuth provider config
β”‚   β”œβ”€β”€ schema.ts                 # Database schema
β”‚   β”œβ”€β”€ agents.ts                 # Agent CRUD operations
β”‚   β”œβ”€β”€ codeGenerator.ts          # Agent code generation
β”‚   β”œβ”€β”€ modelRegistry.ts          # 49 AI models catalog
β”‚   β”œβ”€β”€ toolRegistry.ts           # 50+ tools catalog
β”‚   β”œβ”€β”€ mcpConfig.ts              # MCP server management
β”‚   β”œβ”€β”€ mcpClient.ts              # MCP tool invocation
β”‚   β”œβ”€β”€ awsDiagramGenerator.ts    # Architecture diagrams
β”‚   β”œβ”€β”€ agentcoreDeployment.ts    # Tier 1 deployment
β”‚   β”œβ”€β”€ deploymentRouter.ts       # Tier routing logic
β”‚   β”œβ”€β”€ awsCrossAccount.ts        # Cross-account IAM
β”‚   β”œβ”€β”€ testExecution.ts          # Agent testing
β”‚   β”œβ”€β”€ queueProcessor.ts         # Test queue management
β”‚   └── integration.test.ts       # Integration tests
β”‚
β”œβ”€β”€ cloudformation/               # AWS CloudFormation templates
β”‚   β”œβ”€β”€ user-cross-account-role.yaml    # User IAM role
β”‚   └── user-onboarding-template.yaml   # User setup
β”‚
β”œβ”€β”€ requirements.txt              # Python dependencies (for agents)
β”œβ”€β”€ package.json                  # Node.js dependencies
β”œβ”€β”€ vite.config.ts                # Vite configuration
└── README.md                     # This file

πŸ› οΈ Development Setup

Prerequisites

  • Node.js 18+ and npm
  • Convex account (free tier available)
  • AWS account (for Tier 2 deployments)
  • OAuth provider credentials (GitHub, Google, or Cognito)

Installation

  1. Clone the repository
git clone <repository-url>
cd agent_builder_application
  1. Install dependencies
npm install
  1. Set up Convex
npx convex dev
  1. Configure environment variables

Create .env.local:

# Convex Configuration
VITE_CONVEX_URL=https://{{convex-cloud-url}}.convex.cloud
CONVEX_SITE_URL=https://{{convex-site-url}}.convex.site

# OAuth - GitHub
AUTH_GITHUB_ID=your_github_client_id
AUTH_GITHUB_SECRET=your_github_client_secret

# OAuth - Google
AUTH_GOOGLE_ID=your_google_client_id
AUTH_GOOGLE_SECRET=your_google_client_secret

# OAuth - Cognito (optional)
COGNITO_ISSUER_URL=your_cognito_issuer_url
COGNITO_CLIENT_ID=your_cognito_client_id
COGNITO_CLIENT_SECRET=your_cognito_client_secret
  1. Start development server
npm run dev

Visit http://localhost:5173 to see the application.

πŸ§ͺ Testing

Run Integration Tests

npm test

Test Coverage

  • OAuth authentication flows (GitHub, Google, Cognito)
  • Agent creation and code generation
  • MCP server integration
  • AWS diagram generation
  • AgentCore deployment
  • Cross-account IAM role validation

🚒 Deployment

Frontend (Cloudflare Pages)

  1. Connect to Cloudflare Pages

    • Link your GitHub repository
    • Set build command: npm run build
    • Set output directory: dist
  2. Configure environment variables

    VITE_CONVEX_URL=https://{{convex-cloud-url}}.convex.cloud
    
  3. Deploy

    • Push to main branch
    • Cloudflare automatically builds and deploys

Backend (Convex)

  1. Deploy to production
npx convex deploy --prod
  1. Set production environment variables
npx convex env set AUTH_GITHUB_ID "your_value"
npx convex env set AUTH_GITHUB_SECRET "your_value"
npx convex env set AUTH_GOOGLE_ID "your_value"
npx convex env set AUTH_GOOGLE_SECRET "your_value"

OAuth Callback URLs

Configure these callback URLs in your OAuth providers:

GitHub: https://{{convex-site-url}}.convex.site/api/auth/callback/github Google: https://{{convex-site-url}}.convex.site/api/auth/callback/google Cognito: https://{{convex-site-url}}.convex.site/api/auth/callback/cognito

πŸ” Security

  • OAuth 2.0 with PKCE (Proof Key for Code Exchange)
  • Cross-account IAM roles with External ID
  • No hardcoded credentials in code
  • Environment variables for all secrets
  • Session-based authentication
  • Rate limiting per tier

πŸ“Š Monitoring & Observability

Distributed Tracing

  • OpenTelemetry (OTEL): Auto-instrumentation for all agent code
    • Trace context propagation
    • Custom spans for agent operations
    • Export to AWS X-Ray and CloudWatch
  • AWS X-Ray: End-to-end request tracing
    • Service maps showing dependencies
    • Latency analysis per operation
    • Error and fault detection

Logging

  • Convex Logs: npx convex logs for backend function execution
  • CloudWatch Logs: Centralized logs for AWS services
    • Fargate container logs
    • AgentCore runtime logs
    • Lambda function logs
  • Structured Logging: JSON format with trace IDs for correlation

Metrics & Dashboards

  • CloudWatch Metrics: System and custom metrics
  • CloudWatch Dashboards: Real-time monitoring
  • Error Tracking: errorLogs table in Convex
  • Audit Trail: auditLogs table for compliance

Observability Stack

Agent Code (Python)
    ↓ (OpenTelemetry SDK)
OTEL Traces + Metrics
    ↓ (OTLP Exporter)
AWS X-Ray β†’ Service Map
    ↓
CloudWatch Logs + Metrics
    ↓
Monitoring Panel (Frontend)

🀝 Contributing

This is a private project. For questions or issues, contact the development team.

πŸ“„ License

Proprietary - All rights reserved

πŸ”— Links

πŸ“ Notes

  • This project uses Convex for backend and database
  • Frontend is deployed on Cloudflare Pages
  • Agent deployments use AWS (AgentCore or Fargate)
  • MCP integration enables agent-to-agent communication
  • Meta-tooling allows agents to create their own tools

About

agent builder for the aws ai agent hackathon

Resources

Stars

Watchers

Forks

Packages

No packages published