Skip to content

内置组件

本页面列出了所有🧩 组件及其实现的⚙️ 协议,这些组件是原生提供的,并由AutoGPT代理使用。 部分组件在表格中列出了额外的配置选项,详见组件配置了解更多信息。

注意

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

SystemComponent

允许代理完成任务的基本组件。

DirectiveProvider

  • API预算的约束条件

MessageProvider

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

CommandProvider

  • finish 用于任务完成时

UserInteractionComponent

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

CommandProvider

  • ask_user 用于向用户请求输入

FileManagerComponent

增加了读写本地存储、Google Cloud Storage或Amazon S3中持久文件的能力。 对于保存和加载代理的状态(保持会话)是必要的。

FileManagerConfiguration

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

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

DirectiveProvider

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

CommandProvider

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

CodeExecutorComponent

允许代理执行非交互式的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

跟踪代理的操作及其结果。向提示提供它们的摘要。

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 在提示中包含未摘要的周期数 int 4

MessageProvider

  • 代理的进度摘要

AfterParse

  • 注册代理的操作

ExecutionFailure

  • 回滚代理的操作,使其不被保存

AfterExecute

  • 将代理的操作结果保存到历史中

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一起使用。### 确保您在启用--api的情况下运行WebUI。

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的基本认证,ENV: SD_WEBUI_AUTH str格式为{username}:{password} None

CommandProvider

  • generate_image 用于根据提示生成图像

WebSearchComponent

允许代理搜索网络。使用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

允许代理使用Selenium读取网站。

WebSeleniumConfiguration

配置变量 详情 类型 默认值
llm_name 用于读取网站的llm模型名称 ModelName "gpt-3.5-turbo"
web_browser Selenium使用的网页浏览器 "chrome" \| "firefox" \| "safari" \| "edge" "chrome"
headless 以无头模式运行浏览器 bool True
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

在提示中保持文件和文件夹内容的最新状态。

MessageProvider

  • 上下文中元素的内容

CommandProvider

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

WatchdogComponent

监视代理是否在循环,并在必要时切换到智能模式。

AfterParse

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