Skip to content

契约与接口

English | 中文

AxisVela 通过版本化契约组合独立产品,而不是共享运行时内核。本页解释这在实践中意味着 什么。

什么算契约

契约类型 示例 保护什么
HTTP/OpenAPI Rheovela Worker API 请求/响应兼容性
JSON Schema Harmovela 事件与任务 数据形状与校验
协议规范 Harmovela 协调维度 跨实现的语义
SDK AEGIVELA、EIDOVELA 身份 SDK 语言级易用性与兼容性
一致性夹具 跨语言测试向量 行为等价
签名产物 技能包、发布二进制 溯源与完整性
CLI 契约 tek、rheo、archharness 自动化稳定性

契约不是描述实现的文档。它是让实现可以变化而不破坏消费者的边界。

版本化

一个实用的契约策略:

  1. 版本化接口,而不是内部实现。 消费者依赖契约,不依赖运行时。
  2. 显式破坏性变更。 使用新主版本或新契约路径。
  3. 保留兼容窗口。 给出弃用日期与迁移路径。
  4. 测试契约。 一致性夹具是产品的一部分。
  5. 发布开放接口层。 契约、SDK 与示例应无需销售介入即可发现。

独立产品,不是单体

契约的替代方案是共享内核:一个运行时拥有所有领域。那在单一产品内部更简单,在其他地方 更昂贵:它耦合发布节奏、失败模式与治理。

契约接受集成纪律,换取:

  • 独立版本化;
  • 可替换实现;
  • 清晰的许可证边界;
  • 组织分离。

生态中的例子

  • PRAXO-CORE 接缝。 模型、工具、记忆、事件、策略、沙箱、检查点与执行都是接口。 产品或集成方提供适配器。
  • Harmovela。 协议跨语言、跨传输定义协调语义,并带一致性夹具。
  • Rheovela。 Worker SDK 与 HTTP Worker API 让现有服务无需用 Go 重写即可参与。
  • 开放接口层。 *-open 仓库发布契约与 SDK;核心或企业运行时可以单独存在。

反模式

  • 把共享数据库当集成。 它耦合 schema 并绕过策略。
  • 复制 SDK。 客户端分支不是契约。
  • 未文档化行为。 如果消费者依赖它,它就是契约的一部分,无论是否承认。
  • 静默破坏性变更。 改变语义的补丁版本比主版本更快摧毁信任。
  • 没有一致性测试的契约。 “兼容”需要测试,不是声明。

一个有用的测试

问:如果明天替换这个接口背后的实现,什么会坏? 如果答案是“全部”,它是内核,不是契约。 如果答案是“只依赖契约的东西不会坏”,边界就是真实的。