Built-in Components
This page lists all 🧩 Components and ⚙️ Protocols they implement that are natively provided. They are used by the AutoGPT agent. Some components have additional configuration options listed in the table, see Component configuration to learn more.
Note
If a configuration field uses environment variable, it still can be passed using configuration model. ### Value from the configuration takes precedence over env var! Env var will be only applied if value in the configuration is not set.
SystemComponent
SystemComponentEssential component to allow an agent to finish.
DirectiveProvider
Constraints about API budget
MessageProvider
Current time and date
Remaining API budget and warnings if budget is low
CommandProvider
finishused when task is completed
UserInteractionComponent
UserInteractionComponentAdds ability to interact with user in CLI.
CommandProvider
ask_userused to ask user for input
FileManagerComponent
FileManagerComponentAdds ability to read and write persistent files to local storage, Google Cloud Storage or Amazon's S3. Necessary for saving and loading agent's state (preserving session).
FileManagerConfiguration
FileManagerConfigurationstorage_path
Path to agent files, e.g. state
str
agents/{agent_id}/[^1]
workspace_path
Path to files that agent has access to
str
agents/{agent_id}/workspace/[^1]
[^1] This option is set dynamically during component construction as opposed to by default inside the configuration model, {agent_id} is replaced with the agent's unique identifier.
DirectiveProvider
Resource information that it's possible to read and write files
CommandProvider
read_fileused to read filewrite_fileused to write filelist_folderlists all files in a folder
CodeExecutorComponent
CodeExecutorComponentLets the agent execute non-interactive Shell commands and Python code. Python execution works only if Docker is available.
CodeExecutorConfiguration
CodeExecutorConfigurationexecute_local_commands
Enable shell command execution
bool
False
shell_command_control
Controls which list is used
"allowlist" \| "denylist"
"allowlist"
shell_allowlist
List of allowed shell commands
List[str]
[]
shell_denylist
List of prohibited shell commands
List[str]
[]
docker_container_name
Name of the Docker container used for code execution
str
"agent_sandbox"
All shell command configurations are expected to be for convience only. This component is not secure and should not be used in production environments. It is recommended to use more appropriate sandboxing.
CommandProvider
execute_shellexecute shell commandexecute_shell_popenexecute shell command with popenexecute_python_codeexecute Python codeexecute_python_fileexecute Python file
ActionHistoryComponent
ActionHistoryComponentKeeps track of agent's actions and their outcomes. Provides their summary to the prompt.
ActionHistoryConfiguration
ActionHistoryConfigurationllm_name
Name of the llm model used to compress the history
ModelName
"gpt-3.5-turbo"
max_tokens
Maximum number of tokens to use for the history summary
int
1024
spacy_language_model
Language model used for summary chunking using spacy
str
"en_core_web_sm"
full_message_count
Number of cycles to include unsummarized in the prompt
int
4
MessageProvider
Agent's progress summary
AfterParse
Register agent's action
ExecutionFailure
Rewinds the agent's action, so it isn't saved
AfterExecute
Saves the agent's action result in the history
GitOperationsComponent
GitOperationsComponentAdds ability to interact with git repositories and GitHub.
GitOperationsConfiguration
GitOperationsConfigurationgithub_username
GitHub username, ENV: GITHUB_USERNAME
str
None
github_api_key
GitHub API key, ENV: GITHUB_API_KEY
str
None
CommandProvider
clone_repositoryused to clone a git repository
ImageGeneratorComponent
ImageGeneratorComponentAdds ability to generate images using various providers.
Hugging Face
To use text-to-image models from Hugging Face, you need a Hugging Face API token. Link to the appropriate settings page: Hugging Face > Settings > Tokens
Stable Diffusion WebUI
It is possible to use your own self-hosted Stable Diffusion WebUI with AutoGPT. ### Make sure you are running WebUI with --api enabled.
ImageGeneratorConfiguration
ImageGeneratorConfigurationimage_provider
Image generation provider
"dalle" \| "huggingface" \| "sdwebui"
"dalle"
huggingface_image_model
Hugging Face image model, see available models
str
"CompVis/stable-diffusion-v1-4"
huggingface_api_token
Hugging Face API token, ENV: HUGGINGFACE_API_TOKEN
str
None
sd_webui_url
URL to self-hosted Stable Diffusion WebUI
str
"http://localhost:7860"
sd_webui_auth
Basic auth for Stable Diffusion WebUI, ENV: SD_WEBUI_AUTH
str of format {username}:{password}
None
CommandProvider
generate_imageused to generate an image given a prompt
WebSearchComponent
WebSearchComponentAllows agent to search the web. Google credentials aren't required for DuckDuckGo. Instructions how to set up Google API key
WebSearchConfiguration
WebSearchConfigurationgoogle_api_key
Google API key, ENV: GOOGLE_API_KEY
str
None
google_custom_search_engine_id
Google Custom Search Engine ID, ENV: GOOGLE_CUSTOM_SEARCH_ENGINE_ID
str
None
duckduckgo_max_attempts
Maximum number of attempts to search using DuckDuckGo
int
3
duckduckgo_backend
Backend to be used for DDG sdk
"api" \| "html" \| "lite"
"api"
DirectiveProvider
Resource information that it's possible to search the web
CommandProvider
search_webused to search the web using DuckDuckGogoogleused to search the web using Google, requires API key
WebSeleniumComponent
WebSeleniumComponentAllows agent to read websites using Selenium.
WebSeleniumConfiguration
WebSeleniumConfigurationllm_name
Name of the llm model used to read websites
ModelName
"gpt-3.5-turbo"
web_browser
Web browser used by Selenium
"chrome" \| "firefox" \| "safari" \| "edge"
"chrome"
headless
Run browser in headless mode
bool
True
user_agent
User agent used by the browser
str
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
browse_spacy_language_model
Spacy language model used for chunking text
str
"en_core_web_sm"
selenium_proxy
Http proxy to use with Selenium
str
None
DirectiveProvider
Resource information that it's possible to read websites
CommandProvider
read_websiteused to read a specific url and look for specific topics or answer a question
ContextComponent
ContextComponentAdds ability to keep up-to-date file and folder content in the prompt.
MessageProvider
Content of elements in the context
CommandProvider
open_fileused to open a file into contextopen_folderused to open a folder into contextclose_context_itemremove an item from the context
WatchdogComponent
WatchdogComponentWatches if agent is looping and switches to smart mode if necessary.
AfterParse
Investigates what happened and switches to smart mode if necessary
Last updated
Was this helpful?