AgentX is an agent management platform built on top of the Strands framework, allowing you to create, manage, and orchestrate AI agents with various tools and capabilities. It follows the principle:
Agent = LLM Model + System Prompt + Tools + Environment
- Agent Management: Create, configure, and manage AI agents through a user-friendly interface
- Multiple Model Support: Use models from Bedrock, OpenAI, Anthropic, LiteLLM, Ollama, or custom providers
- Extensive Tool Library: Equip agents with tools for RAG, file operations, web interactions, image generation, and more
- Agent Orchestration: Create orchestrator agents that can coordinate with other agents
- Scheduling: Schedule agent tasks to run automatically at specified times
- MCP Integration: Extend agent capabilities with Model Context Protocol servers
The project consists of three main components:
A FastAPI-based API server that provides:
- RESTful APIs for agent management
- WebSocket endpoints for streaming chat with agents
- Integration with AWS services (DynamoDB, EventBridge, Lambda)
A React/TypeScript application built with:
- Vite for fast development and optimized builds
- Ant Design for UI components
- Zustand for state management
- TypeScript for type safety
Model Context Protocol servers that extend agent capabilities:
- MySQL MCP: Tools for interacting with MySQL databases
- Redshift MCP: Tools for interacting with Amazon Redshift
- DuckDB MCP: Tools for interacting with DuckDB databases
- OpenSearch MCP: Tools for interacting with OpenSearch
- Python 3.13+
- Node.js 18+ and Bun
- Docker (for containerized deployment)
- AWS account (for AWS services)
-
Clone the repository:
git clone https://github.com/your-username/agentx.git cd agentx -
Set up the backend:
cd be uv sync source .venv/bin/python3 uvicorn app.main:app --reload --loop asyncio
-
Set up local DynamoDB tables:
For local development, you need to create the following DynamoDB tables:
-
AgentTable
- Partition key:
id(String)
- Partition key:
-
ChatRecordTable
- Partition key:
id(String)
- Partition key:
-
ChatResponseTable
- Partition key:
id(String) - Sort key:
resp_no(Number)
- Partition key:
-
HttpMCPTable
- Partition key:
id(String)
- Partition key:
-
AgentScheduleTable
- Partition key:
id(String)
- Partition key:
-
-
Set up the frontend:
cd fe bun install bun run dev -
Set up MCP servers (optional):
# For MySQL MCP cd mcp/mysql bun install bun run index.ts --transport http --port 3000 # For Redshift MCP cd mcp/redshift uv sync python -m redshift_mcp_server --transport streamable-http --port 3001 # For DuckDB MCP cd mcp/duckdb # Follow setup instructions in the directory # For OpenSearch MCP cd mcp/opensearch # Follow setup instructions in the directory
The deployment process consists of three main steps:
- Create ECR repositories for storing Docker images
- Build and push Docker images to ECR
- Deploy the infrastructure using AWS CDK
For detailed deployment instructions, see README-DEPLOYMENT.md.
- Backend API Documentation
- Frontend Documentation
- MySQL MCP Server Documentation
- Redshift MCP Server Documentation
- DuckDB MCP Server Documentation
- OpenSearch MCP Server Documentation
- Backend: FastAPI, Strands, Boto3, DynamoDB, EventBridge
- Frontend: React, TypeScript, Vite, Ant Design, Zustand
- MCP Servers: Python, Bun, MySQL, Redshift
- Deployment: Docker, AWS CDK, ECS, ECR
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.