客户端架构详解
客户端负责 发现 Agent → 选择传输 → 发送消息 / 管理任务 → 消费流式事件。
1. ClientFactory
| 职责 | 说明 |
|---|---|
| 读 Agent Card | URL、preferredTransport、capabilities |
| 建 Client | 按卡片或配置实例化对应 Transport |
| 认证 | 注入 Bearer / API Key 等 |
2. Client 能力(语义)
| API 类 | 作用 |
|---|---|
| 发消息 | 创建或继续 Task |
| 查任务 | getTask、列表 |
| 取消 | cancelTask |
| 流式 | 订阅 SSE 或 RPC stream |
| 推送配置 | 注册 webhook(若支持) |
多传输对上层 同一接口,差异在 Transport。
3. AgentCardResolver
- 拉取并缓存 Agent Card。
- 校验
url、协议版本、securitySchemes。 - 支持本地覆盖(测试)。
4. 配置与错误
- 超时、重试 在 fetch/grpc 层配置。
- JSON-RPC id 校验,防响应串线。
- 协议错误码映射为 typed Error。
5. 性能
- 复用 HTTP keep-alive。
- Card 缓存 TTL。
- 流式用 SSE 解析器增量读(见 06)。
6. 总结
写集成方代码只需 Factory + Client;换传输不改业务调用。