菜单

API 参考

相关源文件

本文档提供了 AutoGPT 平台 API 的全面参考,涵盖了客户端接口和后端端点。它旨在供需要以编程方式与 AutoGPT 平台交互的开发人员使用,无论是构建前端应用程序还是与其他系统集成。有关 Agent Protocol 的具体信息,请参阅Agent Protocol

API 客户端概述

AutoGPT 平台提供了一个 TypeScript 客户端实现(BackendAPI),负责处理与后端服务器的所有通信,包括 REST API 调用、WebSocket 连接和身份验证。

来源

身份验证

API 客户端使用 Supabase 进行身份验证。所有 API 请求都包含从 Supabase 客户端获取的身份验证令牌。

来源

核心 API 方法

BackendAPI 类提供了与 AutoGPT 平台所有主要功能交互的方法。

图管理

方法描述参数返回类型
getBlocks()检索可用于构建 Agent 的区块Promise<Block[]>
listGraphs()列出用户拥有的所有图Promise<GraphMeta[]>
getGraph()检索特定图id: GraphID, version?: number, for_export?: booleanPromise<Graph>
createGraph()创建新图graph: GraphCreatablePromise<Graph>
updateGraph()更新现有图id: GraphID, graph: GraphUpdateablePromise<Graph>
deleteGraph()删除图id: GraphIDPromise<void>

来源

图执行

方法描述参数返回类型
executeGraph()执行图id: GraphID, version: number, inputData: objectPromise<{ graph_exec_id: GraphExecutionID }>
getExecutions()列出所有执行Promise<GraphExecutionMeta[]>
getGraphExecutions()列出特定图的执行graphID: GraphIDPromise<GraphExecutionMeta[]>
getGraphExecutionInfo()获取特定执行的详情graphID: GraphID, runID: GraphExecutionIDPromise<GraphExecution>
stopGraphExecution()停止正在运行的执行graphID: GraphID, runID: GraphExecutionIDPromise<GraphExecution>
deleteGraphExecution()删除执行runID: GraphExecutionIDPromise<void>

来源

数据类型

该 API 使用一套全面的类型系统来确保一致性和类型安全。

核心实体类型

类型描述关键属性
GraphID图的唯一标识符品牌字符串类型
GraphExecutionID图执行的唯一标识符品牌字符串类型
UserID用户的唯一标识符品牌字符串类型
LibraryAgentID库 Agent 的唯一标识符品牌字符串类型
ScheduleID计划的唯一标识符品牌字符串类型

图系统类型

来源

执行类型

来源

  • 249-265 - GraphExecutionMeta 类型
  • 270-274 - GraphExecution 类型
  • 331-352 - NodeExecutionResult 类型

实时通信

API 客户端支持 WebSocket 连接,用于图执行期间的实时更新。

WebSocket 方法

方法描述参数
connectWebSocket()建立 WebSocket 连接
disconnectWebSocket()关闭 WebSocket 连接
subscribeToGraphExecution()订阅特定执行的更新graphExecID: GraphExecutionID
subscribeToGraphExecutions()订阅图的所有执行graphID: GraphID
onWebSocketMessage()注册特定消息类型的处理程序method: string, handler: Function
sendWebSocketMessage()通过 WebSocket 发送消息method: string, data: object

来源

凭据管理

API 提供了管理各种外部服务和 API 密钥凭据的方法。

凭据管理方法

方法描述参数返回类型
oAuthLogin()启动 OAuth 登录流程provider: string, scopes?: string[]Promise<{ login_url: string, state_token: string }>
oAuthCallback()处理 OAuth 回调provider: string, code: string, state_token: stringPromise<CredentialsMetaResponse>
createAPIKeyCredentials()创建 API 密钥凭据credentials: Partial<APIKeyCredentials>Promise<APIKeyCredentials>
listCredentials()列出用户凭据provider?: stringPromise<CredentialsMetaResponse[]>
getCredentials()获取特定凭据provider: string, id: stringPromise<Credentials>
deleteCredentials()删除凭据provider: string, id: string, force?: booleanPromise<CredentialsDeleteResponse>

来源

API 密钥管理

该平台支持创建和管理用于程序化访问的 API 密钥。

API 密钥方法

方法描述参数返回类型
createAPIKey()创建新的 API 密钥name: string, permissions: APIKeyPermission[], description?: stringPromise<CreateAPIKeyResponse>
listAPIKeys()列出所有 API 密钥Promise<APIKey[]>
revokeAPIKey()撤销 API 密钥keyId: stringPromise<APIKey>
updateAPIKeyPermissions()更新 API 密钥权限keyId: string, permissions: APIKeyPermission[]Promise<APIKey>

来源

库和市场

API 提供了与 Agent 库和市场功能交互的方法。

库方法

方法描述参数返回类型
listLibraryAgents()列出用户库中的 Agentparams?: objectPromise<LibraryAgentResponse>
getLibraryAgent()获取库 Agent 的详情id: LibraryAgentIDPromise<LibraryAgent>
addMarketplaceAgentToLibrary()将市场 Agent 添加到库中storeListingVersionID: stringPromise<LibraryAgent>
updateLibraryAgent()更新库中的 AgentlibraryAgentId: LibraryAgentID, params: objectPromise<void>

市场方法

方法描述参数返回类型
getStoreAgents()列出市场 Agentparams?: objectPromise<StoreAgentsResponse>
getStoreAgent()获取市场 Agent 的详情username: string, agentName: stringPromise<StoreAgentDetails>
createStoreSubmission()提交 Agent 到市场submission: StoreSubmissionRequestPromise<StoreSubmission>
reviewAgent()评审市场 Agentusername: string, agentName: string, review: StoreReviewCreatePromise<StoreReview>

来源

计划管理

API 提供了调度 Agent 自动运行的方法。

计划方法

方法描述参数返回类型
createSchedule()创建新计划schedule: ScheduleCreatablePromise<Schedule>
deleteSchedule()删除计划scheduleId: ScheduleIDPromise<{ id: string }>
listSchedules()列出所有计划Promise<Schedule[]>

来源

使用示例

以下是如何在 React 组件中使用 API 客户端的示例

执行图

来源

订阅实时更新

来源

管理库 Agent

来源

REST API 内部实现

BackendAPI 客户端内部使用 _request 方法来处理所有 REST API 调用。此方法:

  1. 从 Supabase 获取身份验证令牌
  2. 构建带查询参数的适当 URL
  3. 使用适当的方法和标头发起请求
  4. 解析响应并处理错误

来源

错误处理

API 客户端包含对各种情况的错误处理

  1. 身份验证错误
  2. 网络错误
  3. 来自后端的验证错误
  4. 包含详细信息的错误响应

发生错误时,客户端会解析错误响应并提供可向用户显示的描述性错误消息。

来源