📚 文档
您可以在文档中找到更多信息。
🧾 摘要
AI代理领域仍处于初期阶段。大多数开发者都在以自己的方式构建代理。这造成了一个挑战: 由于接口经常不同,很难与不同的代理进行通信。 因为我们在与不同代理通信时遇到困难,所以也很难轻松地比较它们。 此外,如果我们有一个与代理通信的统一接口,也会使开发能够直接与代理配合使用的开发工具变得更加容易。
我们提出了代理协议 - 一个与代理通信的统一通用接口。 任何代理开发者都可以实现这个协议。 代理协议是一个API规范 - 代理应该暴露的端点列表,具有预定义的响应模型。 该协议是与技术栈无关的。任何代理都可以采用这个协议,无论他们使用什么框架(或不使用框架)。
我们相信,这将有助于生态系统更快地发展并简化集成。
我们从一个最小化的核心开始。我们希望通过向代理开发者学习他们实际需要什么,在此基础上进行迭代式构建。
🚀 采用协议的激励
- 可以轻松使用基准测试。
- 其他人可以更容易地使用和集成您的代理
- 能够构建基于此协议的通用开发工具(用于开发、部署和监控)
- 您不需要编写样板API,可以专注于开发您的代理
🎯 协议的直接目标
设定一个通用的简单标准,以便轻松对代理进行基准测试。该协议的主要目标之一是出色的开发者体验,以及代理开发者端的简单实现。您只需启动您的代理,这就是您需要做的全部。
🗣️ 征求意见
如果您想对协议提出更改或改进建议,请遵循RFC模板。
⚙️ 组件
协议
最重要的部分。它指定了代理应该暴露哪些端点。 协议在OpenAPI规范中定义。
协议如何工作?
目前,协议被定义为REST API(通过OpenAPI规范),有两个与您的代理交互的基本路由:
POST /ap/v1/agent/tasks
用于为代理创建新任务(例如给代理一个您想要完成的目标)POST /ap/v1/agent/tasks/{task_id}/steps
用于执行定义任务的一个步骤
它还有一些额外的路由用于列出任务、步骤以及下载/上传工件。
SDK
这是我们对协议的实现。它是一个您可以用来构建代理的库。您可以使用它,也可以自行实现。这取决于您。
使用SDK应该将协议的实现简化到最低限度,但同时不应限制您的操作。目标应该是让代理构建者能够构建他们的代理,而SDK应该解决其余的问题。
基本上,它将您的代理包装在一个Web服务器中,允许与您的代理进行通信(以及将来代理之间的通信)。
客户端
这个库应该由代理的用户使用。您的代理部署在某个地方,您的代理用户可以使用这个库与您的代理交互。
由于标准的存在,用户可以尝试多个代理,而无需对其代码进行任何额外调整(或只需最小调整)。
📦 如何使用协议
如果您是代理开发者,可以使用SDK来实现协议。您可以在文档或SDK文件夹中找到更多信息。
🤗 采用情况
参与代理协议开发的项目
已采用代理协议的开源代理和项目
- ✅ Auto-GPT
- 在这里跟踪PR
- ✅ Auto-GPT-Forge
- 🚧 babyagi
- 在这里跟踪PR。等待合并。
- ✅ smol developer
- 在这里跟踪PR。
- 🚧 beebot
- 可能需要更多功能。请参阅这里的问题。
📃 高级未来路线图
- 代理间通信
- 与外部世界的连接:
- 第三方服务(= "代理I/O")
- 代表用户进行身份验证
- 协议插件
- 还有什么遗漏的吗?请提交一个RFC,提出您的功能建议!
💬 公开讨论与开发
- 欢迎提交PR和问题!
- 加入AIEF Discord及其专门的
agent-protocol
频道 - 加入Auto-GPT Discord及其专门的
agent-protocol
频道 - 加入e2b Discord及其专门的
agent-protocol
频道