跳转至

从 MiniMax H3 适配看 Agent Dev First

TeleFuser 最近完成了对 MiniMax H3 的适配。当前实现覆盖 T2VA、FL2VA 和 Ref2VA 三类联合音视频生成任务,支持完整音视频输出、单卡 stage-level CPU offload、 两卡和四卡模型常驻、FSDP、Ulysses Sequence Parallel、Tensor Parallel,以及统一的 example 和服务入口。

这次适配主要通过两次相互独立的 Codex Goal 会话完成。按照项目过程记录,期间没有人工直接修改代码;人工参与 集中在目标设定、环境准备和最终音视频质量验收。本文不把这一过程解释为“Agent 自动完成所有软件工程”的普遍 证明,而是讨论一个更具体的问题:

当 Agent 已经能够自主搜索代码、比较相邻实现并根据测试反馈调整方案时,软件系统应该怎样为 Agent 提供方向?

本文将这种面向 Agent 的工程设计称为 Agent Dev First(ADF)。它关注的不是为一次任务写出更长的操作手册, 而是让代码库通过知识结构、模块边界、验证路径和可持续交接物,回答“在哪里做”和“怎样确认做对了”。

验证快照

字段
状态 validated
验证 revision 819c238
集成与验收日期 2026-08-04 至 2026-08-06
GPU 1、2、4 x NVIDIA H100 80 GB HBM3;最终并行验收使用 4 x H100
软件 Python 3.11.13、PyTorch 2.11.0+cu128、CUDA 12.8、NCCL 2.28.9
Reference 固定 revision 的本地 SGLang MiniMax H3 实现
Faithful-path workload 768p,T2VA 10 秒、FL2VA 8 秒、Ref2VA 5 秒,均为 50-step
输出契约 24 FPS 视频、32 kHz 双声道音频、同步 MP4
四卡回归 768p、5 秒、50-step T2VA,Ulysses2 x TP2 常驻配置

验证结论只覆盖上述 checkpoint、请求、软件和硬件环境。它不构成其他 checkpoint、硬件拓扑或生成内容上的质量和 性能保证。Codex Goal 的会话边界与“没有人工直接修改代码”来自项目过程记录;代码提交证明的是实现内容、验证 结果和交接物,不单独证明编辑者身份。

为什么 MiniMax H3 是一个合适的案例

MiniMax H3 不是只加载一个 DiT checkpoint 的普通视频模型。一次完整推理至少经过:

Prompt 与参考素材
  -> Text Encoder
  -> Video / Audio Condition VAE
  -> 文本、视频和音频 token 联合打包
  -> DiT 联合去噪
  -> 视频和音频 scheduler 分别更新
  -> Video VAE 与 Audio VAE 解码
  -> 音视频同步与 MP4 封装

T2VA、FL2VA 和 Ref2VA 还有不同的条件路径、素材规则、时间语义和几何来源。适配同时涉及官方 checkpoint 转换、 FP32/BF16 精度边界、packed sequence、多卡并行、模型常驻、跨 stage 通信和服务请求。

因此,Agent 面对的不是“增加一个模型类”,而是一组相互关联、又必须能够独立验证的工程问题。这使 MiniMax H3 成为观察代码库能否为 Agent 提供方向的有效案例。

从操作手册到工程结构

为了让 Agent 稳定完成任务,常见方法是编写详细的 Skill:先读哪些文件、按什么顺序修改、遇到错误怎样处理、 最后运行哪些检查。这类操作手册仍然适合低频、专业和跨工具流程。

随着 Agent 的代码搜索、相邻实现理解和测试反馈能力增强,持续注入逐步骤指令的重要性可能下降,但工程设计的 重要性不会下降。当过程指导减少后,Agent 会更依赖系统本身回答以下问题:

  • 功能属于哪个模块?
  • 应该通过什么接口实现?
  • 哪些依赖和修改方向是允许的?
  • 怎样完成快速局部验证?
  • 哪些状态才算真正完成?
  • 失败后怎样定位、交接和继续?

Skill 主要回答“怎样做”;ADF 更关注“在哪里做”和“怎样确认做对了”。ADF 不要求把所有规则都变成类型检查或 CI,也不替代 Skill。它强调将长期稳定的知识放进代码结构、接口、测试和工具,而不是让每个 Agent 在每次会话中 重新记忆。

两次 Goal:先建立正确性,再优化执行

两次会话没有连续的对话记忆。它们通过仓库中的代码、测试、固定输入、manifest、报告生成工具和提交记录完成 交接。

Goal 允许改变 必须保持 关键证据
1. 建立 faithful path 模型与 pipeline 的新增实现、checkpoint 转换、任务规划、验证工具 官方任务语义、scheduler、精度边界和输出语义 82de4e90db88079b4dfb7
2. 优化执行 模型常驻、SP/TP 组合、stage 通信、静态布局、buffer 和公共 ops/kernel Goal 1 冻结的条件布局、scheduler 语义、精度边界和输出格式 b3e1672ecb261fb629b9e

第一次 Goal 建立了模型组件、三类请求规划、packed joint denoising、双模态 scheduler、完整音视频输出,以及 SGLang/TeleFuser trajectory 和 artifact 比较工具。官方 T2VA、FL2VA、Ref2VA 50-step 报告通过锁定门限后, 正确性基线才成立。

第二次 Goal 在这个基线之上加入常驻多卡、Ulysses 与 TP 组合、跨 stage CUDA tensor 直传、request-static layout、denoising buffer 复用,以及公共 ops 和 kernel 优化。随后建立的 a05d3ee 四卡回归和 a680135 音频/service 验收,把“优化没有改变输出契约”变成了可重复检查的事实。

提交时间线是工程证据链,不是 Goal 会话的逐条转录。重要的是,第二次会话不需要读取第一次对话,也能从系统中 恢复任务语义和完成定义。

TeleFuser 如何告诉 Agent“在哪里做”

这次适配没有使用 MiniMax H3 专用的逐步骤 Skill。Agent 主要根据目录结构、接口契约、相邻实现和测试自主推导 实现路径。

关注点 稳定落点 主要边界
模型数学与 checkpoint 转换 telefuser/models/ 模型通过 telefuser.ops 使用公共算子,不直接依赖内部 kernel
任务语义与素材规划 telefuser/pipelines/minimax_h3/ T2VA、FL2VA、Ref2VA 差异集中在 task profile 和 request plan
Text Encoder、Denoising、Video/Audio VAE 独立 stage 每个 stage 独立拥有精度、offload、设备和生命周期配置
并行执行 统一 parallel config 与 distributed runtime SP、TP、FSDP 复用现有配置,不增加模型私有框架接口
本地运行与服务 examples/minimax_h3/ 的标准入口和 manifest PPL_CONFIGget_pipelinerunrun_with_file 与服务契约共享
验证 tests/tools/validation/、冻结素材 快速局部测试与昂贵的真实生成分层执行

这套结构没有告诉 Agent “先改哪个文件的第几行”,但它回答了更关键的问题:模型数学、任务语义、运行时并行、 服务契约和输出呈现分别属于哪里。

稳定边界也限制了改动范围。MiniMax H3 没有引入新的框架级配置字段、环境变量、CLI 体系或服务 schema;需要的 扩展位于模型、pipeline、example 和已有公共 ops 的所有权范围内。

ADF 还必须提供完成定义

能找到文件并不等于能判断结果正确。MiniMax H3 的验证被拆成多个层次:

验证对象 主要证明内容 代表性位置
checkpoint 与数值测试 模型结构、转换和 FP32/BF16 边界正确 tests/unit/models/test_minimax_h3_*.py
packed sequence、scheduler、stage 测试 局部计算和编排语义正确 tests/unit/pipelines/minimax_h3/
trajectory parity 固定输入下的 token 布局、初始噪声和 scheduler 边界满足基线 compare_minimax_h3_trajectories.py
artifact parity 视频帧、音频波形、频谱、包络、时延和容器满足门限 compare_minimax_h3_artifacts.py
example 与 service parity 服务封装和直接入口使用相同的参数契约 test_examples.pytest_example_service_parity.py
四卡 50-step 回归 Ulysses2 x TP2 常驻配置能够完成端到端音视频生成 minimax_h3_t2va_4gpu registry

快速测试提供局部反馈,真实生成负责最终验收。失败因此可以定位到模型转换、pipeline 语义、并行运行时、服务入口 或最终产物,而不是全部压缩成一个服务失败。

冻结输入同样属于系统接口。provenance.json 记录官方素材的来源、大小和 SHA-256;reference 与 candidate runner 生成包含请求、素材、checkpoint 和 artifact hash 的 manifest。大型 tensor 和 MP4 可以保留为本地验收物,而源代码中的生成器、hash 规则和比较器使它们 能够重建。

复现入口

CPU 侧的模型、pipeline、契约和比较器测试可以独立运行:

pytest -q tests/unit/models/test_minimax_h3_*.py
pytest -q tests/unit/pipelines/minimax_h3
pytest -q tests/unit/service/test_example_service_parity.py

准备本地 checkpoint 和四张 H100 后,可建立或检查标准四卡回归:

TF_MODEL_ZOO_PATH=/path/to/model_zoo \
python examples/run_examples.py \
  --pipeline minimax_h3_t2va_4gpu \
  --gpus 0,1,2,3 \
  --update-baseline

TF_MODEL_ZOO_PATH=/path/to/model_zoo \
python examples/run_examples.py \
  --pipeline minimax_h3_t2va_4gpu \
  --gpus 0,1,2,3

官方路径比较由以下工具组成:

freeze_minimax_h3_reference.py
  -> run_minimax_h3_sglang_reference.py
  -> run_minimax_h3_telefuser_reference.py
  -> compare_minimax_h3_trajectories.py
  -> compare_minimax_h3_artifacts.py

这些工具要求本地 MiniMax H3 checkpoint、固定的 SGLang reference checkout 和足够的 H100 资源。完整参数可通过 各脚本的 --help 查看;验收门限由比较器显式写入 JSON report,而不是隐藏在人工观察中。最终音视频质量仍需要 人工验收,因为数值相似度不能证明条件遵循和感知质量的全部属性。

更强的 Agent 会更快暴露架构债务

这次适配也暴露了 TeleFuser 的三个改进方向。

第一,example regression、service parity 和相关测试之间仍有重复登记。虽然 pipeline manifest 已经存在,但还 没有成为 example registry、服务契约和回归矩阵的完整单一来源。

第二,SP 与 TP 的实现已经能够组合,但文档一度保留二者互斥的旧规则。代码正确并不能抵消过期文档带来的搜索和 判断成本。

第三,跨进程 CUDA tensor 的所有权和关闭顺序仍然复杂。后续提交通过独立 refcounter、channel-owned cleanup 和 cooperative shutdown 加固了生命周期,但 stage DAG 还不能完整表达 buffer、producer、consumer 和 teardown 依赖。

这些问题无法通过增加一份更长的 Skill 从根本上解决。更合理的方向是让机器可读的 pipeline manifest 驱动入口 登记和回归矩阵,并让 stage DAG 明确表达资源所有权。更强的 Agent 不会自动消除架构债务,但会更快地在组合实现 和测试反馈中遇到它们。

Prompt、Skills、Harness 与 ADF

本文使用以下分工理解四者关系;这是从本案例提炼的工程模型,不是对某个 Agent 产品机制的规范定义。

层次 负责内容
Prompt 当前任务的目标、约束与验收条件
Skills 专业、低频或跨工具任务的操作方法
Harness Agent 调度、工具访问、执行隔离与反馈循环
ADF 长期稳定的知识结构、模块边界、交接物和验证路径
类型、结构测试与 CI 任何参与者都不能破坏的不变量

当同一条规则开始在多个 Skill 中重复出现时,值得继续追问:它是否应该永远由 Agent 阅读和记忆,还是应该进入 架构、接口、测试和工具,成为系统本身的一部分?

SWE-agent 将 Agent-Computer Interface 作为提升软件工程 Agent 能力的重要 设计对象;SWE-bench 使用真实 GitHub issue 和测试衡量代码库级任务结果。 仓库级指令、Skills、可执行规格、architecture fitness function 和 paved path 也都在降低工具或开发者与系统 交互的成本。

ADF 不主张这些思想是新的,也不主张清晰架构只对 Agent 有价值。本文更窄的观点是:当 Agent 能够自主决定局部 实现步骤时,代码库本身需要承担更多导航、约束、验证和跨会话交接责任;MiniMax H3 提供了一个有提交记录和真实 生成验收支撑的案例。

限制与下一步

  • 这是一个项目、一个模型族和一种 Agent 工作方式的案例,不能代表所有代码库或 Agent 配置。
  • “两次 Goal”只证明在本次边界与环境下可以交接,不证明会话数量越少越好。
  • 质量验收包含人工判断,尚未形成完全自动化、可公开重放的感知质量评测。
  • 关键大型 trajectory 和 MP4 artifact 未进入 Git;仓库保存的是固定输入、hash、生成工具、比较逻辑和验收摘要。
  • ADF 的收益尚未与重型 Skill 或其他代码库进行受控对照实验。

后续可以比较入口发现时间、首次有效验证时间、跨模块修改规模、交接成功率和失败恢复时间。TeleFuser 自身更直接 的工程任务,是让 manifest 驱动 example、service 和 regression,并让 stage DAG 表达资源及其生命周期。

结论

MiniMax H3 的接入不是因为 Agent 获得了一份更详细的专用操作手册。它能够分阶段完成,首先是因为 TeleFuser 已经为模型、stage、pipeline、并行、服务和验证提供了稳定落点。

过程中最难处理的问题,也出现在验收条件、重复登记和资源所有权尚未被系统清晰表达的地方。这支持了一个有限但 可操作的判断:当系统具备清晰的 stage 边界、冻结验收物和契约测试时,Agent 可以减少对连续对话记忆和逐步骤 手册的依赖,分阶段完成精度对齐与执行优化。

Skills 是给 Agent 的操作手册。Agent Dev First,则是把工程系统设计成 Agent 能够直接工作、局部验证并持续 交接的形态。操作手册会随着模型和工具变化;架构决定此后的每一个 Agent 将以多高的成本理解、修改、验证和继续 演进系统。