菜单

前端

相关源文件

AutoGPT 平台的前端提供了一个现代化、直观的界面,用于构建、运行和管理 AI 代理。本文档涵盖了前端架构、核心组件以及与后端系统的关键交互。有关后端系统的更多信息,请参阅 后端

概述

该前端使用 Next.js、React 和 TypeScript 构建,提供了一个响应式的单页应用程序,使用户能够

  1. 使用基于节点的图形编辑器直观地创建代理
  2. 运行代理并实时查看执行结果
  3. 通过库和市场保存、共享和重用代理
  4. 安排代理的定期执行

该系统采用了模块化架构,包含可重用组件和用于状态管理的自定义钩子。

技术栈

该前端使用以下核心技术构建

技术目的
Next.js用于服务器端渲染和路由的 React 框架
ReactUI 组件库
TypeScript类型安全的 JavaScript
XY Flow用于代理构建器的图形可视化库
TailwindCSS实用优先 CSS 框架
Radix UI低级 UI 组件基础
Supabase认证和用户管理

来源

架构

高层架构

该前端架构遵循模块化方法,明确分离了关注点。应用程序的核心围绕 Next.js 页面构建,并带有用于动态行为的客户端组件。状态管理主要通过自定义钩子(如 useAgentGraph)来处理,该钩子与后端 API 进行交互。

来源

组件层次结构

来源

核心组件

代理构建器(流程编辑器)

代理构建器是一个基于图形的视觉编辑器,允许用户通过连接节点来设计代理,每个节点代表一个功能块。它使用 XY Flow 库(以前称为 React Flow)实现。

代理构建器的主要特点

  • 用于放置节点的拖放界面
  • 用于在节点之间创建数据流的连接点(柄)
  • 类型感知的连接和视觉反馈
  • 节点配置的实时验证
  • 具有历史记录管理的撤销/重做功能
  • 执行过程中数据流的视觉显示(使用“珠子”)

来源

节点输入组件

系统提供不同数据类型的专用输入组件,这些组件会根据块的架构定义动态渲染

数据类型组件描述
文本(短)NodeStringInput单行文本输入
文本(长)NodeTextBoxInput多行文本区域
数字NodeNumberInput数字输入字段
布尔值NodeBooleanInput切换开关
选择下拉选择下拉选择
多选MultiSelector多选项选择
对象NodeObjectInputTree嵌套对象属性
数组NodeArrayInput项目列表
键值对NodeKeyValueInput键值对字典
凭据NodeCredentialsInputAPI 凭据选择器
日期/时间NodeDateTimeInput日期和时间选择器
文件NodeFileInput文件上传组件

来源

块控制面板

块控制面板提供了一个分类的、可搜索的可用块列表,用户可以将这些块添加到他们的代理图中

块选择系统包括高级搜索功能,其评分基于

  • 精确子字符串匹配
  • 忽略顺序的单词匹配
  • 使用 Jaro-Winkler 算法的相似性匹配
  • 作为后备的描述文本匹配

来源

代理运行器

代理运行器提供了一个用于配置、执行和监控代理运行的界面

代理运行器允许用户

  • 配置代理执行的输入
  • 启动和停止代理运行
  • 查看实时执行状态和结果
  • 使用 cron 表达式安排代理的定期运行

来源

数据流和状态管理

构建和保存代理

代理构建器使用一个名为 useAgentGraph 的自定义钩子,它管理整个图形编辑器的状态,包括

  • 节点及其配置
  • 节点之间的边
  • 保存/运行状态管理
  • 与后端同步

当用户保存代理时,前端会构建一个图形表示,该表示映射到后端数据模型,然后发送到服务器。

来源

运行代理和处理结果

代理执行期间的实时更新通过 WebSocket 连接处理。前端订阅执行事件并相应地更新 UI,显示

  • 节点执行状态
  • 每个节点的输入和输出数据
  • 使用连接边缘上的“珠子”进行数据流可视化
  • 整体执行状态和统计信息

来源

后端 API 集成

前端通过一个集中的 BackendAPI 客户端类与后端通信,该类提供了所有必需操作的方法

API 客户端处理

  • 通过 Supabase 进行身份验证
  • 用于 CRUD 操作的 RESTful API 调用
  • 用于实时更新的 WebSocket 连接
  • 用于代理相关媒体的文件上传
  • 错误处理与重试

前端使用的一些关键 API 端点包括

  • /graphs - 创建和管理代理图
  • /blocks - 获取可用块
  • /executions - 管理代理执行
  • /library - 管理用户代理库
  • /store - 与市场进行交互
  • /integrations - 管理 API 凭据和 OAuth 流程

来源

类型系统

该前端使用 TypeScript 并拥有一个与后端数据模型相匹配的全面类型系统

类型系统确保了应用程序中端到端的类型安全,并在开发过程中实现智能自动补全和验证。

来源

用户界面

代理构建器界面

代理构建器提供了一个基于画布的界面,通过节点图创建代理。该界面包括

  1. 用于创建和连接节点的中央流程画布
  2. 一个带有可添加到画布的块的控制面板
  3. 用于命名和保存代理的保存控件
  4. 撤销/重做功能
  5. 代理配置的实时验证

图中的每个节点代表一个功能块(例如,API 调用、AI 任务、数据转换),包含

  • 左侧的输入柄
  • 右侧的输出柄
  • 带有类型特定输入字段的配置面板
  • 执行期间的状态指示器

构建器支持不同类型的节点,包括

  • 标准处理节点
  • 用于代理参数的输入节点
  • 用于代理结果的输出节点
  • 用于语言模型集成的 AI 节点
  • 用于事件驱动执行的 Webhook 节点

来源

Agent Runner 界面

Runner 界面允许用户

  1. 配置代理的输入参数
  2. 启动和停止代理执行
  3. 查看实时执行进度
  4. 检查每个步骤的输入和输出数据
  5. 安排定期执行

它包含三个主要视图

  • 运行草稿视图 - 用于配置新的运行
  • 运行详细信息视图 - 用于查看执行结果
  • 运行列表 - 用于在不同的运行之间进行选择

来源

结论

AutoGPT 前端提供了一个全面、用户友好的界面,用于构建和运行 AI 代理,而无需编程知识。该架构遵循现代前端开发实践,使用了 React 和 TypeScript,并与后端集成,可实现强大的功能和实时反馈。

前端系统的关键优势包括

  • 具有基于节点的界面的可视化代理构建
  • 类型感知的连接和验证
  • 具有可视化反馈的实时执行监控
  • 与市场集成,用于共享和发现代理
  • 模块化架构,易于扩展

有关特定前端组件的更详细信息,请参阅以下页面