Welcome to Agent OS AWS: a robust, production-ready application for serving Agentic Applications as an API. It includes:
- An AgentOS instance: An API-based interface for production-ready Agentic Applications.
- A PostgreSQL database for storing Agent sessions, knowledge, and memories.
- A set of pre-built Agents, Teams and Workflows to use as a starting point.
For more information, checkout Agno and give it a βοΈ
Follow these steps to get your Agent OS up and running:
Get Docker Desktop should be installed and running. Get OpenAI API key
git clone https://github.com/agno-agi/agent-infra-aws.git
cd agent-infra-awsWe use GPT 5 Mini as the default model, please export the OPENAI_API_KEY environment variable to get started.
export OPENAI_API_KEY="YOUR_API_KEY_HERE"Note: You can use any model provider, just update the agents in the
/agentsfolder and add the required libraries to thepyproject.tomlandrequirements.txtfiles.
This examples includes 2 environments, dev and prd.
ag infra up --env devThis command starts:
- The AgentOS instance, which is a FastAPI server, running on http://localhost:8000.
- The PostgreSQL database, accessible on
localhost:5432.
Once started, you can:
- Test the API at http://localhost:8000/docs.
- Open the Agno AgentOS UI.
- Connect your OS with
http://localhost:8000as the endpoint. You can name itAgentOS(or any name you prefer). - Explore all the features of AgentOS or go straight to the Chat page to interact with your Agents.
To load the knowledge base, you can use the following command:
docker exec -it agent-infra-aws-agentos python -m agents.agno_assistWhen you're done, stop the application using:
ag infra downag infra up --env prd- AWS Security Groups
- AWS Secrets
- AWS Db Subnet Group
- AWS RDS Instance
- AWS Load Balancer
- AWS Target Group
- AWS Listener
- AWS ECS Cluster
- AWS ECS Service
- AWS ECS Task
- AWS ECS Task Definition
Your ECS tasks are already enabled with SSH access. SSH into the production containers using:
ECS_CLUSTER=agent-infra-aws-prd-cluster
TASK_ARN=$(aws ecs list-tasks --cluster agent-infra-aws-prd-cluster --query "taskArns[0]" --output text)
CONTAINER_NAME=agent-infra-aws-agentos
aws ecs execute-command --cluster $ECS_CLUSTER \
--task $TASK_ARN \
--container $CONTAINER_NAME \
--interactive \
--command "zsh"After SSHing into the container, run the following command to load the knowledge base:
python -m agents.agno_assistNote: Please update the ECS cluster and the container name to match your prd resources.
The /agents folder contains pre-built agents, teams, and workflows that you can use as a starting point.
- Agno Assist: An Agent that can help answer questions about Agno and provide support for developers working with Agno.
- Web Search Agent: A Agent that can search the web based on the user's query.
The /teams folder contains pre-built teams that you can use as a starting point.
- Multilingual Team: A team consisting of member agents that specialize in different languages and can translate and provide cultural insights.
- Reasoning Research Team: A team consisting of member agents that can research and provide insights.
The /workflows folder contains pre-built workflows that you can use as a starting point.
- Investment Workflow: A workflow that creates a comprehensive investment strategy report based on the user's request.
- Research Workflow: A workflow that creates a comprehensive research report based on the user's request and provides a summary of the research findings.
To setup your local virtual environment:
We use uv for python environment and package management. Install it by following the the uv documentation or use the command below for unix-like systems:
curl -LsSf https://astral.sh/uv/install.sh | shRun the dev_setup.sh script. This will create a virtual environment and install project dependencies:
./scripts/dev_setup.shActivate the created virtual environment:
source .venv/bin/activate(On Windows, the command might differ, e.g., .venv\Scripts\activate)
If you need to add or update python dependencies:
Add or update your desired Python package dependencies in the [dependencies] section of the pyproject.toml file.
The requirements.txt file is used to build the application image. After modifying pyproject.toml, regenerate requirements.txt using:
./scripts/generate_requirements.shTo upgrade all existing dependencies to their latest compatible versions, run:
./scripts/generate_requirements.sh upgradeRebuild your Docker images to include the updated dependencies, set build_images to true in the infra/settings.py file and run the following command:
ag infra up -fNeed help, have a question, or want to connect with the community?
- π Read the Agno Docs for more in-depth information.
- π Read the Deployment Guide for more in-depth information.
- π¬ Chat with us on Discord for live discussions.
- β Ask a question on Discourse for community support.
- π Report an Issue on GitHub if you find a bug or have a feature request.