AutoGPT

repository·master·Indexed 11 days ago

https://github.com/significant-gravitas/autogpt

An open-source platform for building, deploying, and running autonomous AI agents that execute workflows based on plain English descriptions or visual logic. The platform includes a shared library for common functionality, a hybrid search infrastructure for embedding and searching content, a Store Module for managing agents and creators, and the CoPilot Bot for integrating agents with Discord, Slack, and Telegram.

Tokens
328.3K
Snippets
659
Records
1.2K
Agent score
99%

What's inside AutoGPT

  1. Overview of AutoGPT Classic Components

    master

    AutoGPT Classic is a semi-autonomous, generalist agent system designed to execute a wide range of computer-based tasks. The project is composed of four primary components:

    1. Agent: The core semi-autonomous LLM-powered agent (located in classic/original_autogpt/). Note that AutoGPT Classic is currently under a maintenance notice: it is not supported from a security perspective, and dependencies/issues will not be actively updated.
    2. Benchmark (agbenchmark): A framework for measuring agent performance using a stringent testing environment. It supports any agent following the Agent Protocol (standardized by the AI Engineer Foundation).
    3. Forge: A template and boilerplate system used to "forge" (create) your own custom agent applications.
    4. Frontend: An open-source user interface designed to manage any Agent Protocol-compliant agent and integrate with the benchmarking system.
  2. Reference AutoGPT Blocks by Category

    master

    AutoGPT uses 'Blocks' to perform specific tasks, handle logic, or integrate with external services. Blocks are categorized by their functional purpose:

    • Productivity: Integrations with tools like Google Calendar, Notion, and Todoist for managing schedules, notes, and tasks.
    • Logic and Control Flow: Core operational blocks for math (Calculator), conditional branching (Condition, If Input Matches), iteration (Step Through Items), and vector database management (Pinecone).
    • Input/Output: Mechanisms for receiving data via Webhooks or reading external data like RSS Feeds and making Web Requests.
    • Agent Integration: Advanced blocks like Agent Executor (running an existing agent) and AutoPilot (executing tasks with full platform tool access).
    • CRM Services: Management of leads and contacts in platforms like SmartLead and HubSpot.
    • Issue Tracking: Integration with Linear for managing projects and issues.
    • AI Safety: Specialized blocks like Nvidia Deepfake Detect for image verification.
    • Hardware: Triggers for hardware-specific data, such as Compass AI Trigger for transcriptions.
  3. Explore Social Media and Content AutoGPT Blocks

    master

    AutoGPT provides a wide range of integration blocks for social media and content management. These blocks allow agents to perform actions like posting, retrieving information, and managing interactions across various platforms.

    Key categories include:

    • Discord: Create threads, manage channel/user info, send messages/files/embeds, and read messages.
    • Reddit: Post/edit/delete posts and comments, search Reddit, get subreddit/user/post info, and manage inbox.
    • Twitter (X): Extensive management including posting tweets, managing lists, following/unfollowing users, liking/unliking, retweeting, and searching tweets/spaces.
    • Telegram: Send/edit/delete messages, audio, documents, photos, and videos; download files; and use message/reaction triggers.
    • LinkedIn: Fetch profile data and pictures via Enrichlayer, and perform person/role lookups.
    • Multi-platform Posting (via Ayrshare): Post to Bluesky, Facebook, Google My Business, Instagram, LinkedIn, Pinterest, Reddit, Snapchat, Telegram, Threads, TikTok, X, and YouTube.
    • Other: Post to Medium, send Slack messages, and transcribe YouTube videos.

    Refer to the specific integration documentation for each block to understand its required parameters and configuration.

  4. Overview of AutoGPT Blocks

    master
    AutoGPT Blocks are modular integration components that allow AI agents to interact with external services, tools, and data sources. These blocks can be used to extend the agent's capabilities, such as sending emails, managing GitHub repositories, interacting with social media, or performing complex data operations. For a full list of available integrations, refer to the specific block documentation.
  5. Configure Evaluation Methods (Evals) for Challenges

    master

    Challenges support three evaluation methods defined within the ground.eval object:

    1. file (Default): Compares files specified in the files field against the should_contain and should_not_contain ground truth lists.
    2. python: Executes a Python function within the specified files and captures print statements to score them against should_contain and should_not_contain.
    3. llm: Uses a language model to evaluate the agent's response.
      • Templates (template):
        • rubric: Evaluates based on a rubric provided in the answer field.
        • reference: Evaluates based on the ideal reference response in the answer field.
        • custom: Uses the answer field directly as the evaluation prompt.
      • Scoring (scoring):
        • percentage: Returns a score out of 100.
        • scale: Returns a score from 1-10.
        • binary: Returns a boolean (correct/incorrect).
      • Note: You can combine llm evaluation with should_contain and should_not_contain for direct string matching.
  6. Configure Auth transport security (JWKS)

    master

    The backend verifies login tokens by fetching signing keys from the frontend via the JWT_JWKS_URL endpoint.

    • Local/Container Traffic: Using http:// is safe for localhost or internal Docker network traffic (e.g., http://frontend:3000).
    • Untrusted/Public Networks: If the backend and frontend are on different machines or exposed publicly, you must use https to prevent attackers from intercepting the JWKS fetch and forging tokens.

    Security Settings:

    • If you must use http on a non-local host, set JWKS_ALLOW_INSECURE_TRANSPORT=true in your environment variables to allow the backend to boot.
    • Otherwise, the backend will refuse to start if JWT_JWKS_URL points to a cleartext http:// URL on a non-local host.
  7. Use the secrets directory for sensitive data

    master

    The server supports a dedicated secrets directory located at ./secrets. Any files placed in this directory are automatically loaded by the server at startup.

    This pattern is particularly useful when running in Docker, as it allows you to mount secrets into a container without hardcoding them into a Dockerfile.

    To create a secret named my_secret, create a file at ./secrets/my_secret containing the secret value.

    # ./secrets/my_secret
    my_secret_value
  8. How AutoGPT permissions work

    master

    AutoGPT uses a layered permission system with pattern matching. Permissions follow a 'First Match Wins' order:

    1. Agent deny list $\rightarrow$ Block
    2. Workspace deny list $\rightarrow$ Block
    3. Agent allow list $\rightarrow$ Allow
    4. Workspace allow list $\rightarrow$ Allow
    5. Prompt user $\rightarrow$ Interactive approval

    Pattern Syntax

    Format: command_name(glob_pattern)

    • read_file({workspace}/**): Read any file in workspace.
    • execute_shell(python:**): Execute Python commands.
    • web_search(*): All web searches.

    Interactive Approval Scopes

    When prompted, you can choose:

    • Once: Allow this one time only.
    • Agent: Always allow for this agent (saves to permissions.yaml).
    • Workspace: Always allow for all agents (saves to autogpt.yaml).
    • Deny: Block this command.

    Default Security

    AutoGPT automatically denies sensitive files (.env, .key, .pem), destructive commands (rm -rf, sudo), and operations outside the workspace.

  9. Use the AI Condition block for intelligent branching

    master

    The AI Condition block uses an LLM to evaluate natural language conditions that cannot be expressed with simple logic. You describe a condition in plain English, and the AI determines if it is true or false based on the input_value. The result is used to route data to either yes_output or no_output, enabling complex branching based on meaning, sentiment, or other criteria.

    Use Cases:

    • Sentiment Routing: Route messages based on whether they express frustration or satisfaction.
    • Content Moderation: Check if content contains inappropriate material.
    • Intent Detection: Determine if a user message is a question, complaint, or request.