mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-29 17:08:01 -05:00
Docker containers cannot have their mount bindings updated after creation. When running benchmarks or multiple agent instances, the same container name could be reused with a different workspace directory, causing the container to still reference the OLD mount path. This resulted in "python: can't open file '/workspace/temp*.py'" errors. The fix: remove existing containers before creating new ones to ensure fresh mount bindings to the current workspace directory. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
AutoGPT Forge
Core autonomous agent framework for building AI agents.
Quick Start
All commands run from the classic/ directory (parent of this directory):
# Install (one-time setup)
cd classic
poetry install
# Configure
cp .env.example .env
# Edit .env with your OPENAI_API_KEY
# Run
poetry run python -m forge
The agent server runs on http://localhost:8000 by default.
Configuration
Environment Variables (.env)
# Required
OPENAI_API_KEY=sk-...
# Optional LLM settings
SMART_LLM=gpt-4o # Model for complex reasoning
FAST_LLM=gpt-4o-mini # Model for simple tasks
EMBEDDING_MODEL=text-embedding-3-small
# Optional search providers
TAVILY_API_KEY=tvly-...
SERPER_API_KEY=...
GOOGLE_API_KEY=...
GOOGLE_CUSTOM_SEARCH_ENGINE_ID=...
# Optional infrastructure
LOG_LEVEL=DEBUG # DEBUG, INFO, WARNING, ERROR
DATABASE_STRING=sqlite:///agent.db # Agent Protocol database
PORT=8000 # Server port
FILE_STORAGE_BACKEND=local # local, s3, or gcs
Workspace Settings (.autogpt/autogpt.yaml)
Workspace-wide permissions for all agents:
allow:
- read_file({workspace}/**)
- write_to_file({workspace}/**)
- list_folder({workspace}/**)
- web_search(*)
deny:
- read_file(**.env)
- read_file(**.key)
- execute_shell(rm -rf:*)
- execute_shell(sudo:*)
Agent Settings (.autogpt/agents/{id}/permissions.yaml)
Agent-specific permission overrides:
allow:
- execute_python(*)
deny:
- execute_shell(*)
Workspace Structure
{workspace}/
├── .autogpt/
│ ├── autogpt.yaml # Workspace permissions
│ ├── ap_server.db # Agent Protocol database
│ └── agents/
│ └── AutoGPT-{agent_id}/
│ ├── state.json # Agent state
│ ├── permissions.yaml # Agent permissions
│ └── workspace/ # Agent's working directory
Permissions
Permission checks follow this order (first match wins):
- Agent deny list → Block
- Workspace deny list → Block
- Agent allow list → Allow
- Workspace allow list → Allow
- Prompt user → Interactive approval
Pattern Syntax
Format: command_name(glob_pattern)
| Pattern | Description |
|---|---|
read_file({workspace}/**) |
Read any file in workspace |
execute_shell(python:**) |
Execute Python commands |
web_search(*) |
All web searches |
Special tokens:
{workspace}- Replaced with workspace path**- Matches any path including/*- Matches any characters except/
Tutorials
The tutorial series guides you through building a custom agent: