跳到内容

内置组件

本页面列出了所有原生提供的 🧩 组件 和它们实现的 ⚙️ 协议。它们被 AutoGPT agent 使用。某些组件在表格中列出了额外的配置选项,请参阅 组件配置 了解更多信息。

注意

如果配置字段使用环境变量,它仍然可以通过配置模型传递。### 配置中的值优先于环境变量!环境变量仅在配置中未设置值时应用。

SystemComponent

允许 agent 完成任务的必要组件。

DirectiveProvider

  • 关于 API 预算的约束

MessageProvider

  • 当前时间和日期
  • 剩余 API 预算以及预算较低时的警告

CommandProvider

  • finish 在任务完成时使用

UserInteractionComponent

添加在 CLI 中与用户交互的能力。

CommandProvider

  • ask_user 用于向用户请求输入

FileManagerComponent

添加了将持久化文件读写到本地存储、Google Cloud Storage 或 Amazon S3 的能力。对于保存和加载 agent 的状态(保留会话)至关重要。

FileManagerConfiguration

配置变量 详情 类型 默认值
storage_path agent 文件(例如状态)的路径 str agents/{agent_id}/[^1]
workspace_path agent 可以访问的文件的路径 str agents/{agent_id}/workspace/[^1]

[^1] 此选项是在组件构建期间动态设置的,而不是在配置模型中默认设置的,{agent_id} 将被替换为 agent 的唯一标识符。

DirectiveProvider

  • 关于可以读写文件的资源信息

CommandProvider

  • read_file 用于读取文件
  • write_file 用于写入文件
  • list_folder 列出文件夹中的所有文件

CodeExecutorComponent

允许 agent 执行非交互式 Shell 命令和 Python 代码。Python 代码执行仅在 Docker 可用时有效。

CodeExecutorConfiguration

配置变量 详情 类型 默认值
execute_local_commands 启用 shell 命令执行 bool False
shell_command_control 控制使用哪个列表 "allowlist" \| "denylist" "allowlist"
shell_allowlist 允许的 shell 命令列表 List[str] []
shell_denylist 禁止的 shell 命令列表 List[str] []
docker_container_name 用于代码执行的 Docker 容器名称 str "agent_sandbox"

所有 shell 命令配置仅用于方便。此组件不安全,不应在生产环境中使用。建议使用更合适的沙箱环境。

CommandProvider

  • execute_shell 执行 shell 命令
  • execute_shell_popen 使用 popen 执行 shell 命令
  • execute_python_code 执行 Python 代码
  • execute_python_file 执行 Python 文件

ActionHistoryComponent

跟踪 agent 的操作及其结果。将它们的摘要提供给 prompt。

ActionHistoryConfiguration

配置变量 详情 类型 默认值
llm_name 用于压缩历史记录的 llm 模型名称 ModelName "gpt-3.5-turbo"
max_tokens 用于历史摘要的最大 token 数量 int 1024
spacy_language_model 使用 spacy 进行摘要分块的语言模型 str "en_core_web_sm"
full_message_count 在 prompt 中包含未摘要的循环次数 int 4

MessageProvider

  • Agent 的进度摘要

AfterParse

  • 记录 agent 的操作

ExecutionFailure

  • 回退 agent 的操作,使其不被保存

AfterExecute

  • 将 agent 的操作结果保存在历史记录中

GitOperationsComponent

添加与 git 仓库和 GitHub 交互的能力。

GitOperationsConfiguration

配置变量 详情 类型 默认值
github_username GitHub 用户名,ENV: GITHUB_USERNAME str None
github_api_key GitHub API 密钥,ENV: GITHUB_API_KEY str None

CommandProvider

  • clone_repository 用于克隆 git 仓库

ImageGeneratorComponent

添加使用各种提供商生成图像的能力。

Hugging Face

要使用 Hugging Face 的文本到图像模型,您需要一个 Hugging Face API 令牌。相关设置页面的链接:Hugging Face > 设置 > 令牌

Stable Diffusion WebUI

您可以将自己托管的 Stable Diffusion WebUI 与 AutoGPT 一起使用。### 确保您的 WebUI 启用了 --api

ImageGeneratorConfiguration

配置变量 详情 类型 默认值
image_provider 图像生成提供商 "dalle" \| "huggingface" \| "sdwebui" "dalle"
huggingface_image_model Hugging Face 图像模型,请参阅 可用模型 str "CompVis/stable-diffusion-v1-4"
huggingface_api_token Hugging Face API 令牌,ENV: HUGGINGFACE_API_TOKEN str None
sd_webui_url 自托管 Stable Diffusion WebUI 的 URL str "http://localhost:7860"
sd_webui_auth Stable Diffusion WebUI 的 Basic Auth,ENV: SD_WEBUI_AUTH 格式为 {username}:{password}str None

CommandProvider

  • generate_image 用于根据 prompt 生成图像

WebSearchComponent

允许 agent 搜索网络。DuckDuckGo 不需要 Google 凭据。Google API 密钥设置说明

WebSearchConfiguration

配置变量 详情 类型 默认值
google_api_key Google API 密钥,ENV: GOOGLE_API_KEY str None
google_custom_search_engine_id Google 自定义搜索引擎 ID,ENV: GOOGLE_CUSTOM_SEARCH_ENGINE_ID str None
duckduckgo_max_attempts 使用 DuckDuckGo 搜索的最大尝试次数 int 3
duckduckgo_backend 用于 DDG sdk 的后端 "api" \| "html" \| "lite" "api"

DirectiveProvider

  • 关于可以搜索网络的资源信息

CommandProvider

  • search_web 用于使用 DuckDuckGo 搜索网络
  • google 用于使用 Google 搜索网络,需要 API 密钥

WebSeleniumComponent

允许 agent 使用 Selenium 读取网站。

WebSeleniumConfiguration

配置变量 详情 类型 默认值
llm_name 用于读取网站的 llm 模型名称 ModelName "gpt-3.5-turbo"
web_browser Selenium 使用的 Web 浏览器 "chrome" \| "firefox" \| "safari" \| "edge" "chrome"
headless 在无头模式下运行浏览器 bool True
user_agent 浏览器使用的 User agent 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 语言模型 str "en_core_web_sm"
selenium_proxy 与 Selenium 一起使用的 Http 代理 str None

DirectiveProvider

  • 关于可以读取网站的资源信息

CommandProvider

  • read_website 用于读取特定的 URL 并查找特定主题或回答问题

ContextComponent

添加了在 prompt 中保持文件和文件夹内容更新的能力。

MessageProvider

  • 上下文元素的内容

CommandProvider

  • open_file 用于将文件打开到上下文中
  • open_folder 用于将文件夹打开到上下文中
  • close_context_item 从上下文中移除一个项目

WatchdogComponent

监测 agent 是否陷入循环,并在必要时切换到智能模式。

AfterParse

  • 调查发生了什么,并在必要时切换到智能模式