Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Autonomous AI agent platform for building and deploying continuous agents. Use when creating visual workflow agents, deploying persistent autonomous agents, or building complex multi-step AI automation systems.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 118% | 0% |
Comprehensive platform for building, deploying, and managing continuous AI agents through a visual interface or development toolkit.
Use AutoGPT when:
Key features:
Use alternatives instead:
bash# Clone repository git clone https://github.com/Significant-Gravitas/AutoGPT.git cd AutoGPT/autogpt_platform # Copy environment file cp .env.example .env # Start backend services docker compose up -d --build # Start frontend (in separate terminal) cd frontend cp .env.example .env npm install npm run dev
AutoGPT has two main systems:
Agents are represented as graphs containing nodes connected by links:
Graph (Agent)
├── Node (Input)
│ └── Block (AgentInputBlock)
├── Node (Process)
│ └── Block (LLMBlock)
├── Node (Decision)
│ └── Block (SmartDecisionMaker)
└── Node (Output)
└── Block (AgentOutputBlock)Blocks are reusable functional components:
| Block Type | Purpose | |------------|---------| | INPUT | Agent entry points | | OUTPUT | Agent outputs | | AI | LLM calls, text generation | | WEBHOOK | External triggers | | STANDARD | General operations | | AGENT | Nested agent execution |
User/Trigger → Graph Execution → Node Execution → Block.execute()
↓ ↓ ↓
Inputs Queue System Output YieldsAI Blocks:
AITextGeneratorBlock - Generate text with LLMsAIConversationBlock - Multi-turn conversationsSmartDecisionMakerBlock - Conditional logicIntegration Blocks:
Control Blocks:
Manual execution:
httpPOST /api/v1/graphs/{graph_id}/execute Content-Type: application/json { "inputs": { "input_name": "value" } }
Webhook trigger:
httpPOST /api/v1/webhooks/{webhook_id} Content-Type: application/json { "data": "webhook payload" }
Scheduled execution:
json{ "schedule": "0 */2 * * *", "graph_id": "graph-uuid", "inputs": {} }
WebSocket updates:
javascriptconst ws = new WebSocket('ws://localhost:8001/ws'); ws.onmessage = (event) => { const update = JSON.parse(event.data); console.log(`Node ${update.node_id}: ${update.status}`); };
REST API polling:
httpGET /api/v1/executions/{execution_id}
bash# Setup forge environment cd classic ./run setup # Create new agent from template ./run forge create my-agent # Start agent server ./run forge start my-agent
my-agent/
├── agent.py # Main agent logic
├── abilities/ # Custom abilities
│ ├── __init__.py
│ └── custom.py
├── prompts/ # Prompt templates
└── config.yaml # Agent configurationpythonfrom forge import Ability, ability @ability( name="custom_search", description="Search for information", parameters={ "query": {"type": "string", "description": "Search query"} } ) def custom_search(query: str) -> str: """Custom search ability.""" # Implement search logic result = perform_search(query) return result
bash# Run all benchmarks ./run benchmark # Run specific category ./run benchmark --category coding # Run with specific agent ./run benchmark --agent my-agent
Benchmarks use recorded HTTP responses for reproducibility:
bash# Record new cassettes ./run benchmark --record # Run with existing cassettes ./run benchmark --playback
Blocks automatically access user credentials:
pythonclass MyLLMBlock(Block): def execute(self, inputs): # Credentials are injected by the system credentials = self.get_credentials("openai") client = OpenAI(api_key=credentials.api_key) # ...
| Provider | Auth Type | Use Cases | |----------|-----------|-----------| | OpenAI | API Key | LLM, embeddings | | Anthropic | API Key | Claude models | | GitHub | OAuth | Code, repos | | Google | OAuth | Drive, Gmail, Calendar | | Discord | Bot Token | Messaging | | Notion | OAuth | Documents |
yaml# docker-compose.prod.yml services: rest_server: image: autogpt/platform-backend environment: - DATABASE_URL=postgresql://... - REDIS_URL=redis://redis:6379 ports: - "8006:8006" executor: image: autogpt/platform-backend command: poetry run executor frontend: image: autogpt/platform-frontend ports: - "3000:3000"
| Variable | Purpose | |----------|---------| | DATABASE_URL | PostgreSQL connection | | REDIS_URL | Redis connection | | RABBITMQ_URL | RabbitMQ connection | | ENCRYPTION_KEY | Credential encryption | | SUPABASE_URL | Authentication |
bashcd autogpt_platform/backend poetry run cli gen-encrypt-key
Services not starting:
bash# Check container status docker compose ps # View logs docker compose logs rest_server # Restart services docker compose restart
Database connection issues:
bash# Run migrations cd backend poetry run prisma migrate deploy
Agent execution stuck:
bash# Check RabbitMQ queue # Visit http://localhost:15672 (guest/guest) # Clear stuck executions docker compose restart executor
Other measured skills in the registry, with their headline benchmark lift.