扩展 UniLab:新后端¶
在添加后端代码之前,请先阅读 Backend 能力契约 与 ADR-0002 Backend Capability Boundary For Play And Snapshot。
当前后端形态¶
仓库目前在两个重要位置识别 mujoco 与 motrix:
src/unilab/base/registry.py中的registry.register_env(...)src/unilab/base/backend/__init__.py中的create_backend(...)
因此,引入第三个后端是一项架构变更,而不仅仅是新增一个包。
实现清单¶
在
src/unilab/base/backend/<backend>/下实现一个SimBackend子类。把后端构造逻辑加入
create_backend(...)。如果新后端应当被
@registry.env(..., sim_backend=...)接受, 则更新 registry 校验逻辑。通过
SimBackend方法、BackendPlayCapabilities、域随机化能力方法, 或新的显式抽象方法,暴露后端特定的可选能力。为受支持的 task/backend 组合添加任务 owner YAML。让面向用户的示例 走
--task <task> --sim <backend>,不要依赖training.sim_backend=<backend>作为 override。把 XML、asset 与 model 检查保留在后端 init 或 materialization 代码中。 热路径的 env 应当接收缓存好的 ID、数组或已声明的后端方法。
在风险点附近验证¶
后端导入与接口测试:
tests/base/test_backend_imports.py、tests/base/test_sim_backend.py特性边界附近的后端特定行为测试,例如
tests/base/test_motrix_backend_options.pyTask/backend config 组合:
tests/config/test_config_system.py
仓库内证据¶
后端接口:
src/unilab/base/backend/base.py后端工厂:
src/unilab/base/backend/__init__.pyMuJoCo 后端包:
src/unilab/base/backend/mujoco/Motrix 后端包:
src/unilab/base/backend/motrix/