菜单

块系统

相关源文件

块系统是 AutoGPT 平台的核心组件,它提供了构建 AI 代理的积木。它定义了一个标准化的框架,用于将组件(块)连接起来形成代理工作流。这些块封装了从 AI 文本生成到网络搜索能力的功能,使用户无需编写代码即可创建复杂的代理。

有关代理如何作为连接的块图执行的信息,请参阅 执行引擎。有关在 UI 中块如何呈现和连接的详细信息,请参阅 代理构建器

块架构概述

块系统围绕一个核心 Block 基类构建,该基类为所有块类型提供了统一的接口。这种标准化使得块可以在平台内轻松组合、执行和管理。

来源:backend/data/block.py46-510

块基类

Block 类是块系统的基础。它定义了所有块必须实现的接口

  • 标识:每个块都有唯一的 ID 和名称
  • 输入/输出模式:块使用 Pydantic 模型定义其输入和输出要求
  • 执行逻辑run 方法包含块的实现逻辑
  • 类别:块根据其功能属于不同的类别
  • 执行统计:块在执行期间跟踪性能指标

来源:backend/data/block.py278-398

块模式

块模式使用 Pydantic 模型定义块的输入和输出结构。它们提供验证功能并有助于强制类型安全

  • 字段定义:模式中的每个字段都定义了其类型、描述和其他元数据
  • 验证:模式验证数据是否符合预期的结构
  • 必填字段:模式跟踪执行所需的字段
  • 缺失数据检测:模式可以检测输入或链接的缺失

来源:backend/data/block.py83-225

块类型

块根据它们在代理工作流中的作用和行为分为不同的类型

  • STANDARD:处理输入并产生输出的常规块
  • INPUT:为代理工作流提供输入的块
  • OUTPUT:从代理产生最终输出的块
  • AI:与 AI 模型交互的块
  • AGENT:执行其他代理图的块
  • WEBHOOK:由外部事件触发的块

来源:backend/data/block.py46-77 backend/blocks/llm.py535-860

LLM 集成

块系统的一个关键组成部分是其 LLM(大型语言模型)集成,它允许块与各种 AI 提供商进行交互。该系统支持多种提供商,包括 OpenAI、Anthropic、Groq、Ollama 和 OpenRouter。

LLM 模型

该系统定义了一套全面的支持的 LLM 模型及其相应的元数据

来源:backend/blocks/llm.py90-223

AI 块类型

块系统提供了几种专门的 AI 块,用于不同的目的

  1. AITextGeneratorBlock:根据提示生成文本
  2. AIStructuredResponseGeneratorBlock:以 JSON 格式生成结构化数据
  3. AITextSummarizerBlock:总结较长的文本
  4. AIConversationBlock:管理多轮对话
  5. SmartDecisionMakerBlock:决定下一步使用哪个工具

每个 AI 块都通过通用接口与 LLM 提供商集成,处理通信细节、凭证管理和响应解析。

来源:backend/blocks/llm.py282-522 backend/blocks/llm.py535-860

智能决策器

智能决策器 (SDM) 是一个专门的块,它使用 AI 来智能地决定代理工作流中下一步要执行的动作或工具。它在自主代理行为中起着至关重要的作用。

SDM 将可用工具转换为 LLM 可以理解的函数签名

来源:backend/blocks/smart_decision_maker.py127-509

块执行流程

当执行一个块时,它遵循一个标准化的过程

  1. 输入验证:根据块的输入模式验证输入数据
  2. 执行:使用验证后的输入调用块的 run 方法
  3. 输出生成:块为不同的输出引脚产生输出数据
  4. 输出验证:每个输出都根据块的输出模式进行验证
  5. 统计信息收集:收集执行统计信息以进行监控和计费

来源:backend/data/block.py449-464

凭证和成本管理

块系统支持管理 API 凭证和跟踪与块执行相关的成本。

凭证管理

块可能需要凭证才能连接到外部服务

  • 凭证类型:API 密钥、OAuth 令牌、用户名/密码
  • 特定提供商的凭证:不同的块可能需要特定提供商的凭证
  • 验证:系统会验证是否提供了必需的凭证

来源:backend/data/model.py215-226

成本跟踪

系统会跟踪与块执行相关的成本,特别是对于 AI 块

成本按块进行配置,并且可能取决于所使用的特定模型或提供商

来源:backend/data/block_cost_config.py38-272

本地 LLM 与 Ollama 的集成

块系统支持通过 Ollama 运行本地 LLM。这允许用户使用本地托管的模型运行 AutoGPT 代理。

Ollama 集成的关键特性

  • 支持各种 Llama 模型
  • Ollama 主机配置(默认:localhost:11434)
  • Ollama API 的自定义请求处理

来源:backend/blocks/llm.py454-473 docs/content/platform/ollama.md1-71

块注册和初始化

块系统包括在数据库中注册和初始化块的机制

这确保所有块都已在数据库中正确注册,并具有最新的模式。

来源:backend/data/block.py470-510

总结

块系统是 AutoGPT 平台的一个基本组成部分,它提供了

  1. 所有代理构建块的标准接口
  2. 与多个 LLM 提供商的丰富集成
  3. 用于不同目的的专用 AI 块
  4. 用于自主代理的智能决策能力
  5. 凭证管理和成本跟踪
  6. 通过 Ollama 支持本地 LLM

这种架构使用户能够通过代理构建器界面连接块来构建复杂的代理,而无需编码知识。