--- name: autogpt-agents description: 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. license: MIT metadata: version: 1.0.0 category: llm-applications maintainer: Kalaris Labs tags: Agents, AutoGPT, Autonomous Agents, Workflow Automation, Visual Builder, AI Platform dependencies: autogpt-platform>=0.4.0 --- # AutoGPT - Autonomous AI Agent Platform Comprehensive platform for building, deploying, and managing continuous AI agents through a visual interface or development toolkit. ## When to use AutoGPT **Use AutoGPT when:** - Building autonomous agents that run continuously - Creating visual workflow-based AI agents - Deploying agents with external triggers (webhooks, schedules) - Building complex multi-step automation pipelines - Need a no-code/low-code agent builder **Key features:** - **Visual Agent Builder**: Drag-and-drop node-based workflow editor - **Continuous Execution**: Agents run persistently with triggers - **Marketplace**: Pre-built agents and blocks to share/reuse - **Block System**: Modular components for LLM, tools, integrations - **Forge Toolkit**: Developer tools for custom agent creation - **Benchmark System**: Standardized agent performance testing **Use alternatives instead:** - **LangChain/LlamaIndex**: If you need more control over agent logic - **CrewAI**: For role-based multi-agent collaboration - **OpenAI Assistants**: For simple hosted agent deployments - **Semantic Kernel**: For Microsoft ecosystem integration ## Quick start ### Installation (Docker) ```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 ``` ### Access the platform - **Frontend UI**: http://localhost:3000 - **Backend API**: http://localhost:8006/api - **WebSocket**: ws://localhost:8001/ws ## Architecture overview AutoGPT has two main systems: ### AutoGPT Platform (Production) - Visual agent builder with React frontend - FastAPI backend with execution engine - PostgreSQL + Redis + RabbitMQ infrastructure ### AutoGPT Classic (Development) - **Forge**: Agent development toolkit - **Benchmark**: Performance testing framework - **CLI**: Command-line interface for development ## Core concepts ### Graphs and nodes 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 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 | ### Execution flow ``` User/Trigger → Graph Execution → Node Execution → Block.execute() ↓ ↓ ↓ Inputs Queue System Output Yields ``` ## Building agents ### Using the visual builder 1. **Open Agent Builder** at http://localhost:3000 2. **Add blocks** from the BlocksControl panel 3. **Connect nodes** by dragging between handles 4. **Configure inputs** in each node 5. **Run agent** using PrimaryActionBar ### Available blocks **AI Blocks:** - `AITextGeneratorBlock` - Generate text with LLMs - `AIConversationBlock` - Multi-turn conversations - `SmartDecisionMakerBlock` - Conditional logic **Integration Blocks:** - GitHub, Google, Discord, Notion connectors - Webhook triggers and handlers - HTTP request blocks **Control Blocks:** - Input/Output blocks - Branching and decision nodes - Loop and iteration blocks ## Agent execution ### Trigger types **Manual execution:** ```http POST /api/v1/graphs/{graph_id}/execute Content-Type: application/json { "inputs": { "input_name": "value" } } ``` **Webhook trigger:** ```http POST /api/v1/webhooks/{webhook_id} Content-Type: application/json { "data": "webhook payload" } ``` **Scheduled execution:** ```json { "schedule": "0 */2 * * *", "graph_id": "graph-uuid", "inputs": {} } ``` ### Monitoring execution **WebSocket updates:** ```javascript 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:** ```http GET /api/v1/executions/{execution_id} ``` ## Using Forge (Development) ### Create custom agent ```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 ``` ### Agent structure ``` my-agent/ ├── agent.py # Main agent logic ├── abilities/ # Custom abilities │ ├── __init__.py │ └── custom.py ├── prompts/ # Prompt templates └── config.yaml # Agent configuration ``` ### Implement custom ability ```python 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 ``` ## Benchmarking agents ### Run benchmarks ```bash # Run all benchmarks ./run benchmark # Run specific category ./run benchmark --category coding # Run with specific agent ./run benchmark --agent my-agent ``` ### Benchmark categories - **Coding**: Code generation and debugging - **Retrieval**: Information finding - **Web**: Web browsing and interaction - **Writing**: Text generation tasks ### VCR cassettes Benchmarks use recorded HTTP responses for reproducibility: ```bash # Record new cassettes ./run benchmark --record # Run with existing cassettes ./run benchmark --playback ``` ## Integrations ### Adding credentials 1. Navigate to Profile > Integrations 2. Select provider (OpenAI, GitHub, Google, etc.) 3. Enter API keys or authorize OAuth 4. Credentials are encrypted and stored securely ### Using credentials in blocks Blocks automatically access user credentials: ```python 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) # ... ``` ### Supported providers | 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 | ## Deployment ### Docker production setup ```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" ``` ### Environment variables | Variable | Purpose | |----------|---------| | `DATABASE_URL` | PostgreSQL connection | | `REDIS_URL` | Redis connection | | `RABBITMQ_URL` | RabbitMQ connection | | `ENCRYPTION_KEY` | Credential encryption | | `SUPABASE_URL` | Authentication | ### Generate encryption key ```bash cd autogpt_platform/backend poetry run cli gen-encrypt-key ``` ## Best practices 1. **Start simple**: Begin with 3-5 node agents 2. **Test incrementally**: Run and test after each change 3. **Use webhooks**: External triggers for event-driven agents 4. **Monitor costs**: Track LLM API usage via credits system 5. **Version agents**: Save working versions before changes 6. **Benchmark**: Use agbenchmark to validate agent quality ## Common issues **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 ``` ## References - **[Advanced Usage](references/advanced-usage.md)** - Custom blocks, deployment, scaling - **[Troubleshooting](references/troubleshooting.md)** - Common issues, debugging ## Resources - **Documentation**: https://docs.agpt.co - **Repository**: https://github.com/Significant-Gravitas/AutoGPT - **Discord**: https://discord.gg/autogpt - **License**: MIT (Classic) / Polyform Shield (Platform) ## Agent operating procedure 1. **Check the environment.** Confirm the framework version, model provider, API keys and rate limits. 2. **Pin down the inputs.** Confirm formats, identifiers and parameters from the data or the user. Ask rather than guess any value that changes the result. 3. **Run a small version first.** Test a single call or chain with a known input and inspect raw outputs. 4. **Execute the full task** using the instructions and references above. 5. **Validate the result.** Evaluate on a small labeled set; check structured outputs against their schema; log prompts and responses. 6. **Report.** State what was run (versions, commands, parameters), what was checked, and what is still uncertain. | If this happens | Do this | |---|---| | Outputs do not match the expected schema | Add validation and retries, tighten the schema, or simplify the prompt. | | A function, flag or endpoint in these instructions is missing in the installed version | Check the installed version's own documentation (`help()`, `--help`, official docs), adapt, and tell the user. Never invent an API. | | A required input, identifier or parameter is ambiguous | Ask the user, or state the assumption explicitly before running. | **Integrity rules** - Never fabricate results, parameters, identifiers, citations or statistics. If something cannot be run or verified, say so plainly. - Never send private or sensitive data to external APIs without the user's consent. - Treat version-specific details here as possibly outdated: confirm them against the official documentation for the installed version. - Ask before actions that cost money, consume shared GPUs or cloud quota, touch personal or patient data, or cannot be undone. ## Related skills - `langchain`: Framework for building LLM-powered applications with agents, chains, and RAG. - `crewai-multi-agent`: Multi-agent orchestration framework for autonomous AI collaboration. - `evolving-ai-agents`: Provides guidance for automatically evolving and optimizing AI agents across any domain using LLM-driven evolution algorithms.