Skip to content

SDK 对齐矩阵

本文档记录的是各语言 SDK 必须对齐的统一基线,而不是继续维护历史 local serverLocalControlgRPC callback 的静态遗留能力表。

评估口径

统一使用以下状态:

  • Required: 所有 SDK 必须支持
  • Optional: 可选增强项,但语义必须一致
  • Forbidden: 新设计中禁止继续实现或继续宣传

统一基线

Capability基线
SDK 主动连接 Agent 本地 gatewayRequired
单条长连接复用注册、心跳、调用、作业控制Required
ProviderConnectRequest 作为首帧Required
默认 transport 为独立 tcp sessionRequired
tls 作为 tcp 的可选安全配置Required
InvokeRequest/Response/TaskEvent 默认 JSON payloadRequired
input_schema/output_schema 描述 JSON SchemaRequired
自动重连 + 指数退避 + 上限后廉价周期重试Required
drain / overload / backpressure 语义Required
JSON payload 自动编解码Required
多地址回退Optional
IPC / 本地专用优化 transportOptional
mTLSOptional
SDK 本地监听端口Forbidden
rpc_addr / 回拨式注册Forbidden
SDK 侧 NNGServerForbidden
gRPC 作为 SDK 默认主链路Forbidden

协议边界

所有 SDK 必须遵守以下分层:

协议层

  • protobuf message
  • 8 字节 header
  • request / response 对应规则
  • ProviderConnectRequest / ProviderHeartbeatRequest
  • InvokeRequest / StartTaskRequest / CancelTaskRequest

业务 payload 层

  • 默认固定为 UTF-8 JSON
  • SDK 负责把语言原生对象编码为 JSON
  • Agent 不默认解析业务 JSON 内部结构

统一配置面

所有 SDK 建议至少暴露以下统一配置语义:

字段说明
addressAgent 本地 gateway 地址
connectTimeoutMs建连超时
requestTimeoutMs单请求超时
tls.enabled是否启用 TLS
tls.caFileCA 文件
tls.certFile客户端证书
tls.keyFile客户端私钥
tls.serverNameTLS SNI / 校验名
tls.insecureSkipVerify仅开发环境跳过校验
heartbeat.intervalMs心跳间隔
reconnect.enabled自动重连
reconnect.initialDelayMs初始退避
reconnect.maxDelayMs最大退避
reconnect.multiplier退避倍率
reconnect.jitter抖动比例
reconnect.steadyStateDelayMs到达上限后的廉价重试周期

命名要求

为了减少跨语言认知成本,建议统一术语:

  • shared session runtime
  • sdk-agent subprotocol
  • provider session
  • payload
  • drain
  • backpressure

不建议继续把新的实现文档写成:

  • LocalControl
  • RegisterLocal
  • local_listen
  • rpc_addr
  • session client/server

为什么主仓库不再维护旧式“现状能力表”

过去那种静态矩阵有两个问题:

  1. 很快过期
  2. 会把历史实现细节误写成目标能力

主仓库现在更适合维护:

  • 统一协议与配置基线
  • 统一术语
  • 统一禁止项

而每个 SDK 当前实现状态,应由各 SDK 仓库自己的 README、测试矩阵和 CI 结果负责给出。

SDK 仓库

  • Go: croupier-sdk-go
  • C++: croupier-sdk-cpp
  • Java: croupier-sdk-java
  • JS/TS: croupier-sdk-js
  • Python: croupier-sdk-python
  • C#: croupier-sdk-csharp

相关文档