Skip to main content
JobSpec 不用手写,sf submit 会把它构造进作业包。什么时候读这一页: 调试一次被拒的提交、写一个会提交作业的工具,或者通过 MCP 操作。 apiVersion 必须是 forge/v2kind 必须是 SDK 提供的训练 kind(KIND_TRAINING)。 其他取值在客户端和服务端都会被拒绝,而且发生在任何调度动作之前。

形状

字段规则

这里的每一条都是因为有提交被它拒绝过才写下来的。按字段分组,不按「有多意外」分组。

握手

准入会拿四样东西和服务端 catalog 比对:recipe 名、版本、digest,以及 framework.runtime_id。 任何一项不一致都会被拒。 这正是 sf recipe status 报告、sf recipe upgrade 修复的东西。 provenance 里的 core_version 还必须满足锁文件上的 requires.core 范围—— 旧 CLI 对着更新的 catalog 提交会被拒,错误里会同时点出两个版本。