Molt is agentic-first and PyTorch-native. The agent is the program; the trainer is a single actor; reward is any Python you write inside an Env or ChatAgent: graders, multi-turn tools, VLM environments, LLM-as-judge. Three components carry the rest: Ray for placement and async queues, vLLM for rollout, and NVIDIA AutoModel + FSDP2 for training in pure PyTorch.
That is the whole stack: about 9.2K lines of RL code that scale to 1T-class MoE on vLLM with TP / EP / CP, think DeepSeek-V3 at --fsdp.ep_size 256, with Adam CPU offload for the largest actors. One agent API, one trainable actor, clean enough to read end to end.
