切换主题
模型能力声明与检查
本页阅读位置
完成第一轮对话后,按当前业务需求深入。Spring 常规声明优先使用 RegistrationManifest 与注解;本页的底层 register / publish 或直连方法供协议细化与兼容集成参考。
SDK 示例
java
var capabilities = ModelCapabilities.builder()
.supports(ModelCapabilities.Feature.TOOL_CALLING, true)
.supports(ModelCapabilities.Feature.STREAMING, false)
.contextWindow(32768).maxOutputTokens(4096)
.regions(List.of("cn")).build();
var definition = Map.<String,Object>of(
"provider", Map.of("id", "provider", "version", "1.0.0"),
"modelId", "your-provider-model-id", "capabilities", capabilities.definition());
client.register("models", "business-model", "1.0.0", definition)
.toCompletableFuture().get();
var report = client.modelCompatibility("monitor-agent", "1.0.0")
.toCompletableFuture().get();kotlin
val capabilities = modelCapabilities {
toolCalling = true
streaming = false
contextWindow = 32768
maxOutputTokens = 4096
regions = listOf("cn")
}
val report = client.checkModelCompatibility("monitor-agent", "1.0.0")Java 示例说明:
用真实支持信息替换声明。只声明所需已知项,省略表示未知,false 明确不支持。构造器校验数值与地域,返回不可变快照;管理身份的平台注册/发布仍需服务端验证,register 只创建草稿。
Kotlin 示例说明:
nullable DSL 属性为 null 时省略,而不是发送 JSON null。Agent 的 requiredCapabilities 与 allowedModelRegions、Profile.outputSchema 可通过现有定义 Map/DSL 或 Starter YAML 配置。YAML 能力 regions、requiredCapabilities、allowedModelRegions 会恢复为数组;布尔和数字保持类型。
发布、输出与迁移
报告含 valid/checks/errors/warnings,声明不是供应商探测。工具、子 Agent、UI 推导 toolCalling,原生流推导 streaming,输出 Schema 推导 structuredOutput。Agent 的外部依赖需已发布;整条草稿链使用批次预检。
outputSchema 是闭合 JSON 对象 Schema,每层对象全部属性 required。模型服务接收 response_format,平台验证完整结果后发送文本,原生流也先缓存;非法输出 INVALID_MODEL_OUTPUT,不发布未验证文字。上下文使用 UTF-8 字节估算与独立根预算,不冒充厂商 Tokenizer 或费用。
已有工具型或流式链缺少声明需新 Model→Binding→Profile→Agent;不要修改已发布版本,明确预检后切换入口。视觉/音频仅为供应商声明,当前聊天输入仍为文本。详见产品文档的模型接入章节。
文档来源与验证记录
| 字段 | 内容 |
|---|---|
| 状态 | 已确认 |
| 日期 | 2026-09-30 |
| 来源 | ModelCapabilities、ModelDsl、PlatformClient 与平台 M01 合同 |
| 责任人 | SparkTide 维护者 |
| 关联任务 | M01 |
| 结论 | Java/Kotlin 共用不可变声明与只读检查,平台承担强制验证 |
| 证据 | 类型、未知/false、快照、HTTP 路由、实际 YAML 测试 |
