Skip to main content
ACP 使用 JSON-RPC 对消息进行编码。JSON-RPC 消息必须使用 UTF-8 编码。 协议目前为代理-客户端通信定义了以下传输机制:
  1. stdio,通过标准输入和标准输出进行通信
  2. Streamable HTTP(草案提案进行中)
代理和客户端应该在可能的情况下支持 stdio。 代理和客户端也可以实现自定义传输方式

stdio

stdio 传输中:
  • 客户端将代理作为子进程启动。
  • 代理从其标准输入(stdin)读取 JSON-RPC 消息,并将消息发送到其标准输出(stdout)。
  • 消息是单独的 JSON-RPC 请求、通知或响应。
  • 消息以换行符(\n)分隔,不得包含嵌入式换行符。
  • 代理可以将 UTF-8 字符串写入其标准错误(stderr)以用于日志记录。客户端可以捕获、转发或忽略这些日志。
  • 代理不得向其 stdout 写入任何不是有效 ACP 消息的内容。
  • 客户端不得向代理的 stdin 写入任何不是有效 ACP 消息的内容。

Streamable HTTP

讨论中,草案提案进行中。

自定义传输方式

代理和客户端可以实现额外的自定义传输机制以满足其特定需求。该协议与传输无关,可以在任何支持双向消息交换的通信通道上实现。 选择支持自定义传输的实现者必须确保它们保留 ACP 定义的 JSON-RPC 消息格式和生命周期要求。自定义传输应该记录其特定的连接建立和消息交换模式,以帮助互操作性。