Skip to content

[uni-rl] env 契约解耦:uni_rl 对 unilab 的 import 清零 #1479

Description

@TATP-233

Roadmap: #1476

目标

消除 uni_rl 对 unilab 包的全部依赖,算法层只面向一个最小 env 契约(借鉴 mjlab:algo 层只见 gym-like 接口,env 构造由调用方注入)。

当前 outbound 耦合(迁移后须处理)

  • unilab.base.observations(get_obs_dims/get_critic_base_dim/split_obs_dict)
  • unilab.base.final_observation(resolve_terminal_observation_contract)
  • unilab.base.np_env(NpEnvState/NpEnv 类型引用)
  • unilab.base.registry(ensure_registries/registry.make,含 get_env_dims 探测 env)
  • unilab.base.config_adapter(create_env:fast_sac/flash_sac double_buffer、hora/appo)
  • unilab.base.process_device
  • unilab.utils.sim2sim(hora/appo play 中的 contract 校验)与 unilab.utils.checkpoint
  • hora/distill_config.pyparents[2]/"conf" 包内路径算术

方案方向

  • obs/final-observation/ dims 等纯函数随迁移下沉 uni_rl(它们本属算法侧语义)
  • env 构造(registry/config_adapter/create_env)改为注入:runner/builder 接受 env factory 或预构造 env,UniLab 侧入口脚本负责组装
  • sim2sim 校验、checkpoint 解析等 UniLab 业务逻辑留在 UniLab,由 play 入口在调用 uni_rl 前后执行
  • distill_config 的 conf 树解析移至 UniLab 侧(teacher 配置属于 task 资产)

验收

  • grep -r "unilab" uni_rl/src 零命中(注释/文档除外)
  • uni_rl 测试全绿(不安装 unilab)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions