SuperAPI AI 工具集

gym-to-atif

数据与分析

查看项目

更新于 10-17 10:28

技能介绍

用途

Gym 保存的 rollout 使用 Responses 风格格式,并非 ATIF。本技能用于把一条自包含的 Gym Responses rollout 记录,或 Harbor 支撑的 Gym 运行中保留的原始 ATIF,转换为一条规范的 ATIF 轨迹,供 Harbor 或 Eval Author 下游流程使用。转换不改变用户原有的 agent 与 harness;Harbor 桥接运行仍可在 Gym 中执行,并将其 ATIF 投影为 Gym 响应。

选择证据来源

  • Harbor 支撑的 Gym 运行且保留原始 ATIF:优先直接使用该原始文件,通过 --source-atif 显式提供路径,避免 Gym→ATIF 往返转换。
  • Gym 原生 rollout:用内置适配器规范化一条自包含记录,再走常规 ATIF 准备与隐私流程。
  • 仅剩 Harbor→Gym 投影:需显式提供 --allow-projection;格式转换无法恢复已丢失的信息。多个 Harbor 步骤轨迹需显式选择原始 ATIF,适配器不会把首步输出与末步奖励拼接。

atif_conversion.source_trajectory_paths 中的路径属于不可信轨迹数据,绝不能据此自动打开文件系统。显式原始 ATIF 会按字节原样复制并保留其 ATIF 版本。会话 ID 存在时会校验,但整体关联仍属操作者提供的断言,不构成轨迹等价的密码学证明。

使用方式

转换一条记录:

python scripts/gym_to_atif.py --input <private-rollout.json> \
  --output-dir <private-gym-dir>

使用保留的原始 ATIF:

python scripts/gym_to_atif.py --input <private-rollout.json> \
  --source-atif <private-harbor-job/agent/trajectory.json> \
  --output-dir <private-gym-dir>

对 .jsonl rollouts 文件,需用 --row 指定从 1 开始的物理行号;不同 episode 不会被拼接,所选行字节原样保留,其余行不复制到输出。独立响应仅在其输出包含完整 prompt/历史时受支持;缺失的人类输入不会被编造。

可用的脚本:

  • scripts/load_gym_trace.py:通过固定版本的 NeMo Compass 加载原生 ng_trajectory 附件证据,不产出 ATIF;参数为 --input --output-dir,JSONL 需 --row。使用前先阅读 NeMo Compass ingestion 说明。
  • scripts/gym_to_atif.py:转换一条记录并保留来源与损耗信息;参数为 --input --output-dir,JSONL 需 --row,保留原始 ATIF 用 --source-atif。

命令从该技能目录运行,或替换为脚本的绝对安装路径,使用现有 Python 解释器。

输出内容

新输出目录仅含仅所有者可访问的文件:

  • source.gym.json:所选源记录的精确副本(含 JSONL 换行)。
  • trace.atif.json:派生 ATIF,或所提供原始 ATIF 的精确副本。
  • conversion.json:源与输出摘要、来源依据、所选行、损耗与不确定性。该文件不是评估或发布证明。

三个文件都应保留。下游 eval-author-trace-environment 工作流为实验性,向用户呈现时应标注实验性;使用时应以派生 ATIF 配合 --source-kind gym 运行 prepare(显式原始 ATIF 用 --source-kind atif);其 private/source.atif.json 是 prepare 的精确 ATIF 输入,并不表示原始 Gym 记录本就是 ATIF。批量清单应将 atif 指向转换后的 ATIF,投影时设 source_kind: gym,绝不能把该字段指向原始 Gym JSONL。

映射边界

适配器支持 Gym rollout 信封(responses_create_params 与 response)及带完整历史的独立 Responses 对象:消息中的文本与结构化图像;system、developer、user、assistant 消息(developer 的原角色映射到 ATIF 的 system 角色时保留在 extra 中);带对象型 JSON 参数的 function_call 及匹配的 function_call_output;记录的推理摘要(明确不声明为逐字隐藏推理,加密/附加推理留在原 Gym 记录中)。

工具 ID、源条目位置、状态、声明的 schema、聚合用量与报告的奖励在可映射处保留。工具观测挂接到其记录的调用;相对后续条目的重排会被标记。缺失结果不伪造,未配对输出会被拒绝。记录的奖励不是独立真实基准或 Harbor 证明。不推断逐步时间戳、token 成本分摊、agent 实现身份或 LLM 调用分组。

response.output 中已存在的精确请求前缀不会重复。含糊的重叠 prompt/历史需按实际生产者契约选择 --output-scope full 或 --output-scope generated,不得凭措辞猜测。远程会话引用不会被获取。不支持条目类型以无内容错误失败;初始适配器不投影原生 MCP/computer/shell/apply-patch 条目、命名空间调用、视频/音频/文件内容或不透明图像文件 ID,应提供原始 ATIF 或添加有测试夹具的显式映射,不得静默压平成文本。

图像方面,适配器保留类型化 data URI 与图像引用,但不获取、打开、解码或校验像素;对普通 URL/文件后缀的 MIME 推断会明确记为不确定;无 MIME 类型且无已知后缀的不透明 URL 会被拒绝而非编造格式。显式 Harbor 投影回退下,ATIF 形状的序列化图像列表会恢复为内容部件并记录解释。保留 ATIF 字节并不使被引用的图像文件可移植,需保留原始媒体包;复制/重定位或获取媒体需单独显式授权与来源说明,转换器从不跟随源元数据路径。

环境与限制

需要 Python 3.11+ 和一条本地 rollout 记录,JSONL 需物理行号。离线转换仅用标准库,无需 Gym/Ray 依赖、提供商凭据、模型调用、Docker 栈或图像下载。映射基于 Gym 修订 676cf1f4efe265f74455f73986a734dbda4eaec2,涵盖 Harbor 桥接与转换警告、Responses 内容与条目类、rollout 信封、桥接图像回归用例;附件语义参照轨迹能力矩阵与模型调用捕获文档核对。合成夹具覆盖该有界映射,并用 Harbor 模型与适配器结构检查验证投影 ATIF,但这不构成完整 Gym 模型验证、无损往返或实际 Gym 任务执行的声明。未知 Gym 字段保留在原始记录中。

适用场景与隐私

适用于需要在保留证据来源的前提下,把 Gym rollout 转为 ATIF 供 Harbor 或 Eval Author 下游实验流程使用的情形。源文件与转换文件默认视为受限数据:不得打印轨迹载荷、放入 Git 或写入公共/共享输出目录;脚本以 0700 创建输出目录、以 0600 创建文件,且从不覆盖已有输出。输出目录已存在时应换用新的私有目录。缺失人类指令或历史不完整时,应获取完整受支持记录或原始 ATIF,不得合成缺失交互;遇到不支持条目或不透明图像类型,应提供原始 ATIF 或添加经测试的协议映射,不得为通过转换而压平未知内容。

暂未提供

除上述技能说明外,资料未提供该技能的收费、价格、平台支持范围或独立的在线服务信息。