Appearance
Croupier C++ SDK
本文档描述的是 C++ SDK 在主仓库中的统一设计基线,不再沿用历史 gRPC、SDK 本地监听或默认原生传输依赖的写法。
当前定位
C++ SDK 的目标定位很明确:
- 作为业务程序内嵌依赖
- 主动连接 Agent 本地 gateway
- 在单条 session 上完成注册、心跳、调用与作业控制
- 默认使用 JSON payload
- 按需启用 TLS
这意味着:
- 不再要求 SDK 开本地端口
- 不再要求业务接入方维护
rpc_addr - 不再把
gRPC作为当前默认链路 - 不再把
旧传输写成默认必选依赖
当前设计基线
传输
- 默认 transport:独立
tcp session - 默认安全策略:内网场景可明文,跨主机或合规场景启用
tls - 首帧:
ProviderConnectRequest - 同一连接支持双向 request/response 复用
会话
- SDK 建连后建立
provider session - Agent 基于既有 session 向 SDK 下发调用请求
- 断线后旧 session 立即失效
- SDK 自动重连后重新发起
ProviderConnectRequest
数据
- 平台协议:protobuf
- 业务 payload:UTF-8 JSON
input_schema/output_schema:JSON Schema,可选
C++ SDK 应向接入方暴露的核心能力
- 连接管理
addressconnect timeoutrequest timeouttls
- 会话管理
ProviderConnectheartbeatdrain- 重连
- 注册与调用
- 注册函数描述符
- 处理 Agent 下发的
InvokeRequest - 处理作业型请求
- 业务编解码
- 原生对象 <-> JSON
不再推荐的旧模型
以下内容如果仍出现在文档、示例或 README 中,都属于过时设计:
- SDK 本地
gRPC server - SDK 本地
NNGServer LocalControlServiceRegisterLocalrpc_addrlocal_listen- “Agent 回拨 SDK”
概念性接入流程
下面是概念流程,不代表某个具体 API 名字必须完全一致:
cpp
ClientOptions options;
options.address = "127.0.0.1:19091";
options.tls.enabled = false;
options.reconnect.initialDelayMs = 1000;
options.reconnect.maxDelayMs = 30000;
options.reconnect.steadyStateDelayMs = 30000;
Provider provider(options);
provider.registerFunction(descriptor, handler);
provider.serve();语义说明:
serve()表示维持 session 生命周期与处理下行请求serve()不再表示“启动本地监听服务”
推荐文档边界
主仓库中的 C++ SDK 文档只应说明:
- 协议基线
- 传输基线
- 配置语义
- 禁止项
具体 API 名称、构建脚本、发布工件和示例代码,应以 croupier-sdk-cpp 仓库为准。
