内置组件¶
本页面列出了所有原生提供的 🧩 组件 及其实现的 ⚙️ 协议。这些组件由 AutoGPT 代理使用。 部分组件在表格中列出了额外的配置选项,详见组件配置了解更多信息。
Note
如果配置字段使用环境变量,仍可通过配置模型传递。### 配置中的值优先于环境变量!仅当配置中未设置值时才会应用环境变量。
SystemComponent
¶
允许代理完成任务的基础组件。
DirectiveProvider¶
- API 预算约束
MessageProvider¶
- 当前时间和日期
- 剩余 API 预算及预算不足时的警告
CommandProvider¶
- 任务完成时使用的
finish
命令
UserInteractionComponent
¶
增加在 CLI 中与用户交互的能力。
CommandProvider¶
- 用于向用户请求输入的
ask_user
命令
FileManagerComponent
¶
增加向本地存储、Google Cloud Storage 或 Amazon S3 读写持久化文件的能力。 用于保存和加载代理状态(保持会话)的必要组件。
FileManagerConfiguration
¶
Config variable | 详情 | 类型 | 默认值 |
---|---|---|---|
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 |
历史摘要使用的最大令牌数 | int |
1024 |
spacy_language_model |
使用spacy进行摘要分块的语言模型 | str |
"en_core_web_sm" |
full_message_count |
提示中包含未摘要的循环次数 | int |
4 |
MessageProvider¶
- 代理进度摘要
AfterParse¶
- 注册代理操作
ExecutionFailure¶
- 回滚代理操作,使其不被保存
AfterExecute¶
- 将代理操作结果保存到历史记录中
GitOperationsComponent
¶
添加与git仓库和GitHub交互的能力。
GitOperationsConfiguration
¶
Config variable | Details | Type | Default |
---|---|---|---|
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 > Settings > Tokens
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 令牌,环境变量: HUGGINGFACE_API_TOKEN |
str |
None |
sd_webui_url |
自托管 Stable Diffusion WebUI 的 URL | str |
"http://localhost:7860" |
sd_webui_auth |
Stable Diffusion WebUI 的基础认证,环境变量: SD_WEBUI_AUTH |
str 格式为 {username}:{password} |
None |
CommandProvider¶
generate_image
用于根据提示生成图像
WebSearchComponent
¶
允许代理搜索网络。DuckDuckGo 无需 Google 凭据。如何设置 Google API 密钥的说明
WebSearchConfiguration
¶
配置变量 | 详情 | 类型 | 默认值 |
---|---|---|---|
google_api_key |
Google API 密钥, 环境变量: GOOGLE_API_KEY |
str |
None |
google_custom_search_engine_id |
Google 自定义搜索引擎 ID, 环境变量: 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使用的Web浏览器 | "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
用于读取特定网址并查找特定主题或回答问题
ContextComponent
¶
添加在提示中保持最新文件和文件夹内容的能力。
MessageProvider¶
- 上下文中的元素内容
CommandProvider¶
open_file
用于将文件打开到上下文中open_folder
用于将文件夹打开到上下文中close_context_item
从上下文中移除项目
WatchdogComponent
¶
监视代理是否循环,必要时切换到智能模式。
AfterParse¶
- 调查发生的情况,必要时切换到智能模式