添加 schema codec
一个 schema codec 使用 System One API 的一个版本。添加一个 codec(例如把标准的新版本作为 systemone/0.3)不会影响任何调用方:配置通过注册表解析 schema,Router 的客户端和 listener 路径都经过 codec 接口。
- 描述规范。 把规范文件放到
config/schemas/systemone下,并在该目录的 README 中列出。对于标准,用我们自己的话描述接口(字段名、类型和结构),附上source和核对时的source_sha256;不要复制没有许可证的文档。运行make systemone-schemas-drift,把描述与已发布的文档比较。 - 重新生成表格。
make systemone-schemas-generate把文件及其 sha256 记录在pkg/systemonecodec/zz_generated_specs.go中;注册表拒绝规范不匹配的 codec。 - 编写 codec,放在
src/semantic-router/pkg/systemonecodec中:一个无状态类型,实现ID、Spec、Capabilities、Plan、DecodeReply、ListingPath和DecodeListing。Plan决定一个批量的每次传输调用:一次批量调用,或每个请求一次调用;只读写 IR(systemoneprotocol),从不读写其他 codec 的传输形式。listener 可以使用的 schema 还需要一个ListenerCodec(见listener.go)。 - 注册 到
Builtin()(registry.go),并把它的 ID 加入pkg/apiregistry的systemone项(上游 schema;listener 可以使用时还要加入ListenerSchemas)。 - 测试: 黄金计划和回复、加载时的拒绝、它的错误和模型列表,以及针对由规范构建的 mock 服务器的一致性测试。
- 文档: 更新 System One schema 页面和由规范生成的兼容性矩阵。