Agent Protocol 是由 AI Engineer Foundation 创建的标准化通信规范,AutoGPT 通过实现该协议来确保代理与系统各个组件之间的一致交互。本文档涵盖了协议的技术细节、在 AutoGPT 中的实现,以及它如何实现代理、前端 UI 和基准测试工具之间的互操作性。
有关可能使用 Agent Protocol 的后端 REST API 端点的信息,请参阅 后端 API。
Agent Protocol 建立了一个统一的代理通信标准,允许不同 AI 代理实现之间的无缝兼容性。在 AutoGPT 中,它充当通信层,用于标准化之间的交互:
通过遵循此协议,代理可以轻松地进行交换、测试和集成到各种前端应用程序中,而无需修改其核心逻辑。
来源: README.md159-161
Agent Protocol 被设计为一个 REST API 规范,它定义了代理通信的标准端点和消息格式。这使得接口保持一致,而无需考虑代理的具体实现细节。
来源: README.md159-161
Agent Protocol 包含几个关键组件,它们共同构成了通信接口:
任务是 Agent Protocol 中的主要工作单元。每个任务代表代理要完成的特定目标或目的。
| 端点 | 方法 | 描述 |
|---|---|---|
/agent/tasks | POST | 为代理创建一个新任务 |
/agent/tasks/{task_id} | GET | 获取特定任务的详细信息 |
/agent/tasks/{task_id}/steps | POST | 执行任务中的一个步骤 |
/agent/tasks/{task_id}/steps/{step_id} | GET | 获取特定步骤的详细信息 |
工件是代理在任务执行期间可以创建、修改或访问的文件或数据对象。
| 端点 | 方法 | 描述 |
|---|---|---|
/agent/tasks/{task_id}/artifacts | GET | 列出任务的所有工件 |
/agent/tasks/{task_id}/artifacts | POST | 上传新工件 |
/agent/tasks/{task_id}/artifacts/{artifact_id} | GET | 下载特定工件 |
该协议定义了标准的通信消息格式。
Task: {
"task_id": string,
"input": string,
"status": "created" | "running" | "completed" | "failed",
"steps": Step[],
"artifacts": Artifact[]
}
Step: {
"step_id": string,
"task_id": string,
"status": "created" | "running" | "completed" | "failed",
"input": string,
"output": string,
"additional_input": object
}
Artifact: {
"artifact_id": string,
"task_id": string,
"file_name": string,
"relative_path": string,
"created_at": datetime
}
来源: README.md159-161
Agent Protocol 与 AutoGPT 系统的几个关键组件集成:
AutoGPT 前端 UI 通过 Agent Protocol 与代理进行通信,使用户能够创建任务、监控执行情况和查看结果,而无需了解底层代理实现。
基准测试系统使用 Agent Protocol 来标准化其与不同代理实现交互的方式,确保公平和一致的评估。
来源: README.md108-116
Agent Protocol 支持标准的身份验证方法:
该协议定义了标准的错误响应:
| 状态码 | 描述 |
|---|---|
| 400 | 错误请求 - 无效的输入 |
| 401 | 未授权 - 需要身份验证 |
| 404 | 未找到 - 资源不存在 |
| 500 | 内部服务器错误 - 代理失败 |
该协议主要使用:
application/json 用于请求和响应正文multipart/form-data 用于工件上传要为代理创建一个新任务,请执行以下操作:
POST /agent/tasks
Content-Type: application/json
{
"input": "Analyze the sentiment of this text: I really enjoyed the product."
}
要在任务中执行一个步骤,请执行以下操作:
POST /agent/tasks/{task_id}/steps
Content-Type: application/json
{
"input": "Continue with the sentiment analysis."
}
要列出任务期间创建的工件:
GET /agent/tasks/{task_id}/artifacts
要下载特定工件:
GET /agent/tasks/{task_id}/artifacts/{artifact_id}
Agent Protocol 规范由 AI Engineer Foundation 维护。有关完整且最新的规范,请访问官方网站 agentprotocol.ai。
来源: README.md159-161