agent-compose English GitHub

Connect 传输支持矩阵

本矩阵说明 daemon 的 Connect 控制面 RPC 所需的传输方式。“Unary”表示请求/响应 RPC,“server-stream”表示 daemon 发送多个响应,“bidi”表示 RunAttach/ExecAttach 一类双方都可能发送消息的交互调用。

传输方式 Unary Server-stream Bidi attach 部署说明
Unix socket 支持 支持 支持 配置后 CLI 使用本地 socket,不经过 HTTP 代理。
HTTP/1.1 支持 支持(需要流式响应) 不支持 代理必须保留分块响应并逐个事件 flush;交互式 attach 需要 HTTP/2。
h2c(明文 HTTP/2) 支持 支持 支持 仅在可信网络或外层隧道提供传输保护时使用。
TLS h2(HTTPS) 支持 支持 支持 直接暴露 TCP 时推荐;若由代理终止 TLS,bidi 必须端到端保留 HTTP/2。

代理要求

请求的组合不可用时,daemon 返回标明操作的 Connect CodeUnimplemented 或传输错误。这与 HTTP/1 代理下 unary 调用成功不同:代理可以支持状态/列表操作,但仍会阻止 attach。

可恢复的 Agent 连接

AttachAgentRunStart.run_id 为空时,AttachAgentRun 保持现有的“创建并连接”行为。将 disconnect_policy 设置为 DETACH,可在客户端断开后继续运行该交互任务;重新建立 AttachAgentRun 流,并在首帧中传入服务端返回的 run_id 即可恢复连接。同一时刻只允许一个 attachment 发送输入。

StartAgentRun(interactive=true) 可直接启动相同的 detached prompt session,而无需保持提交请求。普通 StartAgentRun 调用仍是非交互任务。

只有 daemon 进程仍存活时才能恢复 attachment。daemon 重启后,已持久化的 run events 和 logs 仍可读取,但 runtime 输入/输出句柄无法重建,此时 attach 会明确失败。页面刷新或 IM/Web 切换后,客户端应先通过 ListRunEvents/FollowRunLogs 恢复历史,再订阅 attachment 实时输出。