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.
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:
# 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 Yields
AI Blocks:
AITextGeneratorBlock - Generate text with LLMsAIConversationBlock - Multi-turn conversationsSmartDecisionMakerBlock - Conditional logicIntegration Blocks:
Control Blocks:
Manual execution:
POST /api/v1/graphs/{graph_id}/execute
Content-Type: application/json
{
"inputs": {
"input_name": "value"
}
}
Webhook trigger:
POST /api/v1/webhooks/{webhook_id}
Content-Type: application/json
{
"data": "webhook payload"
}
Scheduled execution:
{
"schedule": "0 */2 * * *",
"graph_id": "graph-uuid",
"inputs": {}
}
WebSocket updates:
const 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:
GET /api/v1/executions/{execution_id}
# 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 configuration
from 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
# 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:
# Record new cassettes
./run benchmark --record
# Run with existing cassettes
./run benchmark --playback
Blocks automatically access user credentials:
class 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 |
# 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 |
cd autogpt_platform/backend
poetry run cli gen-encrypt-key
Services not starting:
# Check container status
docker compose ps
# View logs
docker compose logs rest_server
# Restart services
docker compose restart
Database connection issues:
# Run migrations
cd backend
poetry run prisma migrate deploy
Agent execution stuck:
# Check RabbitMQ queue
# Visit http://localhost:15672 (guest/guest)
# Clear stuck executions
docker compose restart executor
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/agents-autogpt · pinned to the source commit
# Run from your project root
git clone https://github.com/davila7/claude-code-templates.git .skillboard-tmp
git -C .skillboard-tmp checkout 77b087e2153e35250cd3cc7c192218a2d990b6ed
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/cli-tool/components/skills/ai-research/agents-autogpt" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/davila7/claude-code-templates.git .skillboard-tmp
git -C .skillboard-tmp checkout 77b087e2153e35250cd3cc7c192218a2d990b6ed
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/cli-tool/components/skills/ai-research/agents-autogpt" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/agents-autogpt
Scanner static-checks@0.1.0 · commit 77b087e2153e. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
References credentials, tokens or secret files that a skill should not need.
Evidence: [redacted]· fingerprint e9cbb0224c4a3d23
Instructs shell/process/package operations that run commands on the host.
Evidence: npm install· fingerprint 3a2dc0ae21eb56d7