Skip to main contentACP 使用 JSON-RPC 对消息进行编码。JSON-RPC 消息必须使用 UTF-8 编码。
协议目前为代理-客户端通信定义了以下传输机制:
- stdio,通过标准输入和标准输出进行通信
- Streamable HTTP(草案提案进行中)
代理和客户端应该在可能的情况下支持 stdio。
代理和客户端也可以实现自定义传输方式。
stdio
在 stdio 传输中:
- 客户端将代理作为子进程启动。
- 代理从其标准输入(
stdin)读取 JSON-RPC 消息,并将消息发送到其标准输出(stdout)。
- 消息是单独的 JSON-RPC 请求、通知或响应。
- 消息以换行符(
\n)分隔,不得包含嵌入式换行符。
- 代理可以将 UTF-8 字符串写入其标准错误(
stderr)以用于日志记录。客户端可以捕获、转发或忽略这些日志。
- 代理不得向其
stdout 写入任何不是有效 ACP 消息的内容。
- 客户端不得向代理的
stdin 写入任何不是有效 ACP 消息的内容。
Streamable HTTP
讨论中,草案提案进行中。
自定义传输方式
代理和客户端可以实现额外的自定义传输机制以满足其特定需求。该协议与传输无关,可以在任何支持双向消息交换的通信通道上实现。
选择支持自定义传输的实现者必须确保它们保留 ACP 定义的 JSON-RPC 消息格式和生命周期要求。自定义传输应该记录其特定的连接建立和消息交换模式,以帮助互操作性。