Zamil Majdy bb20821634 feat(backend): Add k6 load testing infrastructure + fix critical performance issues (#10941)
# AutoGPT Platform Load Testing Infrastructure

A comprehensive k6-based load testing suite for AutoGPT Platform API
with Grafana Cloud integration for real-time monitoring and performance
analysis.

## 🚀 Quick Start

### Prerequisites
- k6 installed ([Install
Guide](https://k6.io/docs/getting-started/installation/))
- Backend server running (port 8006)
- Valid test user credentials

### Running Tests

#### 1. Setup Test Users (First Time Only)
```bash
cd autogpt_platform/backend/load-tests
k6 run setup-test-users.js
```

#### 2. Basic Load Tests
```bash
# Test API connectivity and authentication
k6 run basic-connectivity-test.js

# Test core API endpoints (credits, profiles)
k6 run core-api-load-test.js

# Test graph operations (create, execute)
k6 run graph-execution-load-test.js

# Full platform integration test
k6 run scenarios/comprehensive-platform-load-test.js
```

#### 3. Run with Grafana Cloud (Optional)
```bash
# Set environment variables
export K6_CLOUD_TOKEN="your-grafana-cloud-token"
export K6_CLOUD_PROJECT_ID="your-project-id"

# Run with cloud monitoring
k6 run basic-connectivity-test.js --out cloud
```

## 📊 Test Scenarios

| Test | Purpose | Endpoints Tested | Load Pattern |
|------|---------|-----------------|-------------|
| **Basic Connectivity** | Validate infrastructure | Auth, health checks
| 1-10 VUs, 10s-5m |
| **Core API** | Test CRUD operations | /api/credits, /api/auth/user |
1-5 VUs, 30s-2m |
| **Graph Execution** | Test graph workflows | /api/graphs,
/api/graphs/*/execute | 1-3 VUs, 1-3m |
| **Comprehensive** | End-to-end user journeys | All major endpoints |
1-2 VUs, 2-5m |

## 🔧 Configuration

### Environment Variables
```bash
# Target Environment
export K6_ENVIRONMENT="dev"    # dev, local, staging

# Load Test Parameters  
export VUS="5"                 # Virtual users (concurrent)
export DURATION="2m"           # Test duration
export REQUESTS_PER_VU="10"    # Requests per user

# Grafana Cloud (Optional)
export K6_CLOUD_TOKEN="your-token"
export K6_CLOUD_PROJECT_ID="your-project-id"
```

### Test Environments
- **LOCAL**: localhost:8006 (development)
- **DEV**: dev-server.agpt.co (staging)

## 📈 Performance Thresholds

Current SLA targets:
- **Response Time P95**: < 2 seconds
- **Error Rate**: < 5%
- **Authentication Success**: > 95%
- **Graph Creation**: < 5 seconds
- **Graph Execution**: < 30 seconds

## 🔍 Current Performance Issues Identified

⚠️ **Load testing reveals significant performance bottlenecks that need
optimization:**

### 📊 **Load Test Results**
| Endpoint | RPS | P95 Latency | Success Rate | Status |
|----------|-----|-------------|--------------|---------|
| Basic Connectivity | 40.6 | 926ms | 99.15% |  |
| Core API | 4.6 | 24.2s | 99.83% | ⚠️ |
| Graph Execution | 1.1 | 47.8s | 70.28% |  |
| Comprehensive Platform | 0.3 | 44.2s | 96.25% |  |

### 🚨 **Critical Issues Requiring Performance Work**
1. **Graph Operations**: 70% failure rate under load, P95 latency 47.8s
2. **Database Bottlenecks**: Transaction timeouts during concurrent
operations
3. **Query Optimization**: Graph creation involves multiple large
database operations
4. **Connection Pooling**: Database connection limits under high
concurrency

###  **Configuration Fixes Applied**
- **Database Transaction Timeout**: Increased from 15s to 30s (bandaid
solution)
- **Block Execution API**: Fixed missing user_context parameter  
- **Credits API Error Handling**: Added proper exception handling
- **CI Tests**: Fixed test_execute_graph_block

**Note**: These are configuration fixes, not performance optimizations.
The underlying performance issues still need to be addressed through
query optimization, database tuning, and application-level improvements.

## 🛠️ Infrastructure Features

- **k6 Load Testing**: JavaScript-based scenarios with realistic user
workflows
- **Grafana Cloud Integration**: Real-time dashboards and alerting
- **Multi-Environment Support**: Dev, local, staging configurations
- **Authentication Testing**: Supabase JWT token validation
- **Performance Monitoring**: SLA validation with configurable
thresholds
- **Automated User Setup**: Test user creation and management

## 📁 Files Structure

```
load-tests/
├── basic-connectivity-test.js          # Infrastructure validation
├── core-api-load-test.js               # Core API testing  
├── graph-execution-load-test.js        # Graph operations
├── setup-test-users.js                 # User management
├── scenarios/
│   └── comprehensive-platform-load-test.js  # End-to-end testing
├── configs/
│   ├── environment.js                  # Environment settings
│   └── grafana-cloud.js               # Monitoring configuration
└── utils/
    └── auth.js                        # Authentication utilities
```

## 🎯 Next Steps for Performance Optimization

1. **Query Optimization**: Profile and optimize graph creation queries
2. **Database Tuning**: Optimize connection pooling and indexing
3. **Caching Strategy**: Implement appropriate caching for frequently
accessed data
4. **Load Balancing**: Fix uneven traffic distribution between pods
5. **Monitoring**: Use this load testing infrastructure to measure
improvements

##  Test Plan
- [x] All load testing scenarios validated locally
- [x] Grafana Cloud integration working
- [x] Test user setup automated
- [x] Performance baselines established
- [x] Critical performance bottlenecks identified
- [x] CI tests passing (test_execute_graph_block fixed)
- [x] Configuration issues resolved
- [ ] **Performance optimizations still needed** (separate work)

**This PR provides the infrastructure to identify and monitor
performance issues. The actual performance optimizations are separate
work that should be prioritized based on these findings.**

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-22 08:28:57 +07:00
2025-01-29 10:31:57 -06:00
2024-05-04 09:38:37 -05:00
2025-03-24 18:11:56 +00:00
2025-07-25 15:39:29 +01:00

AutoGPT: Build, Deploy, and Run AI Agents

Discord Follow Twitter Follow

Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

AutoGPT is a powerful platform that allows you to create, deploy, and manage continuous AI agents that automate complex workflows.

Hosting Options

  • Download to self-host (Free!)
  • Join the Waitlist for the cloud-hosted beta (Closed Beta - Public release Coming Soon!)

How to Self-Host the AutoGPT Platform

Note

Setting up and hosting the AutoGPT Platform yourself is a technical process. If you'd rather something that just works, we recommend joining the waitlist for the cloud-hosted beta.

System Requirements

Before proceeding with the installation, ensure your system meets the following requirements:

Hardware Requirements

  • CPU: 4+ cores recommended
  • RAM: Minimum 8GB, 16GB recommended
  • Storage: At least 10GB of free space

Software Requirements

  • Operating Systems:
    • Linux (Ubuntu 20.04 or newer recommended)
    • macOS (10.15 or newer)
    • Windows 10/11 with WSL2
  • Required Software (with minimum versions):
    • Docker Engine (20.10.0 or newer)
    • Docker Compose (2.0.0 or newer)
    • Git (2.30 or newer)
    • Node.js (16.x or newer)
    • npm (8.x or newer)
    • VSCode (1.60 or newer) or any modern code editor

Network Requirements

  • Stable internet connection
  • Access to required ports (will be configured in Docker)
  • Ability to make outbound HTTPS connections

Updated Setup Instructions:

We've moved to a fully maintained and regularly updated documentation site.

👉 Follow the official self-hosting guide here

This tutorial assumes you have Docker, VSCode, git and npm installed.


Skip the manual steps and get started in minutes using our automatic setup script.

For macOS/Linux:

curl -fsSL https://setup.agpt.co/install.sh -o install.sh && bash install.sh

For Windows (PowerShell):

powershell -c "iwr https://setup.agpt.co/install.bat -o install.bat; ./install.bat"

This will install dependencies, configure Docker, and launch your local instance — all in one go.

🧱 AutoGPT Frontend

The AutoGPT frontend is where users interact with our powerful AI automation platform. It offers multiple ways to engage with and leverage our AI agents. This is the interface where you'll bring your AI automation ideas to life:

Agent Builder: For those who want to customize, our intuitive, low-code interface allows you to design and configure your own AI agents.

Workflow Management: Build, modify, and optimize your automation workflows with ease. You build your agent by connecting blocks, where each block performs a single action.

Deployment Controls: Manage the lifecycle of your agents, from testing to production.

Ready-to-Use Agents: Don't want to build? Simply select from our library of pre-configured agents and put them to work immediately.

Agent Interaction: Whether you've built your own or are using pre-configured agents, easily run and interact with them through our user-friendly interface.

Monitoring and Analytics: Keep track of your agents' performance and gain insights to continually improve your automation processes.

Read this guide to learn how to build your own custom blocks.

💽 AutoGPT Server

The AutoGPT Server is the powerhouse of our platform This is where your agents run. Once deployed, agents can be triggered by external sources and can operate continuously. It contains all the essential components that make AutoGPT run smoothly.

Source Code: The core logic that drives our agents and automation processes.

Infrastructure: Robust systems that ensure reliable and scalable performance.

Marketplace: A comprehensive marketplace where you can find and deploy a wide range of pre-built agents.

🐙 Example Agents

Here are two examples of what you can do with AutoGPT:

  1. Generate Viral Videos from Trending Topics

    • This agent reads topics on Reddit.
    • It identifies trending topics.
    • It then automatically creates a short-form video based on the content.
  2. Identify Top Quotes from Videos for Social Media

    • This agent subscribes to your YouTube channel.
    • When you post a new video, it transcribes it.
    • It uses AI to identify the most impactful quotes to generate a summary.
    • Then, it writes a post to automatically publish to your social media.

These examples show just a glimpse of what you can achieve with AutoGPT! You can create customized workflows to build agents for any use case.


License Overview:

🛡️ Polyform Shield License: All code and content within the autogpt_platform folder is licensed under the Polyform Shield License. This new project is our in-developlemt platform for building, deploying and managing agents.
Read more about this effort

🦉 MIT License: All other portions of the AutoGPT repository (i.e., everything outside the autogpt_platform folder) are licensed under the MIT License. This includes the original stand-alone AutoGPT Agent, along with projects such as Forge, agbenchmark and the AutoGPT Classic GUI.
We also publish additional work under the MIT Licence in other repositories, such as GravitasML which is developed for and used in the AutoGPT Platform. See also our MIT Licenced Code Ability project.


Mission

Our mission is to provide the tools, so that you can focus on what matters:

  • 🏗️ Building - Lay the foundation for something amazing.
  • 🧪 Testing - Fine-tune your agent to perfection.
  • 🤝 Delegating - Let AI work for you, and have your ideas come to life.

Be part of the revolution! AutoGPT is here to stay, at the forefront of AI innovation.

📖 Documentation | 🚀 Contributing


🤖 AutoGPT Classic

Below is information about the classic version of AutoGPT.

🛠️ Build your own Agent - Quickstart

🏗️ Forge

Forge your own agent! Forge is a ready-to-go toolkit to build your own agent application. It handles most of the boilerplate code, letting you channel all your creativity into the things that set your agent apart. All tutorials are located here. Components from forge can also be used individually to speed up development and reduce boilerplate in your agent project.

🚀 Getting Started with Forge This guide will walk you through the process of creating your own agent and using the benchmark and user interface.

📘 Learn More about Forge

🎯 Benchmark

Measure your agent's performance! The agbenchmark can be used with any agent that supports the agent protocol, and the integration with the project's CLI makes it even easier to use with AutoGPT and forge-based agents. The benchmark offers a stringent testing environment. Our framework allows for autonomous, objective performance evaluations, ensuring your agents are primed for real-world action.

📦 agbenchmark on Pypi | 📘 Learn More about the Benchmark

💻 UI

Makes agents easy to use! The frontend gives you a user-friendly interface to control and monitor your agents. It connects to agents through the agent protocol, ensuring compatibility with many agents from both inside and outside of our ecosystem.

The frontend works out-of-the-box with all agents in the repo. Just use the CLI to run your agent of choice!

📘 Learn More about the Frontend

⌨️ CLI

To make it as easy as possible to use all of the tools offered by the repository, a CLI is included at the root of the repo:

$ ./run
Usage: cli.py [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  agent      Commands to create, start and stop agents
  benchmark  Commands to start the benchmark and list tests and categories
  setup      Installs dependencies needed for your system.

Just clone the repo, install dependencies with ./run setup, and you should be good to go!

🤔 Questions? Problems? Suggestions?

Get help - Discord 💬

Join us on Discord

To report a bug or request a feature, create a GitHub Issue. Please ensure someone else hasn't created an issue for the same topic.

🤝 Sister projects

🔄 Agent Protocol

To maintain a uniform standard and ensure seamless compatibility with many current and future applications, AutoGPT employs the agent protocol standard by the AI Engineer Foundation. This standardizes the communication pathways from your agent to the frontend and benchmark.


Stars stats

Star History Chart

Contributors

Contributors
Description
No description provided
Readme MIT Cite this repository 806 MiB
Languages
Python 67.5%
TypeScript 28.6%
Dart 1.4%
JavaScript 0.9%
PLpgSQL 0.6%
Other 0.8%