Token-In-Token-Out (TITO) is Miles' token-preserving path for multi-turn agentic rollout: each turn remains a bit-perfect prefix of the next, so training consumes exactly the tokens emitted by the inference engine. This issue tracks model support and the remaining session-server roadmap.
User guide: Agentic Chat Templates (TITO). Blog: No Token Left Behind: Demystifying TITO in Miles.
Model support on main
Select a model family explicitly with --tito-model; Miles does not auto-detect it. Every named family owns one FIXED_TEMPLATE contract for its renderer and required chat-template kwargs. Named families require --use-session-server; use default for a native or custom template.
--tito-model |
Example models |
qwen3 |
Qwen3 |
qwen35 |
Qwen3.5 |
qwennext |
Qwen3-Thinking-2507, Qwen3-Next-Thinking |
glm47 |
GLM-4.7, GLM-5 |
nemotron3 |
NVIDIA Nemotron 3 Super / Ultra |
kimi25 |
Kimi K2.5 |
kimi26 |
Kimi K2.6 |
minimax_m25 |
MiniMax-M2.5 |
minimax_m27 |
MiniMax-M2.7 |
deepseekv32 |
DeepSeek-V3.2 |
deepseekv4 |
DeepSeek-V4 |
default |
Native or custom templates (best effort) |
Rollout status
Landed on main
Implementation complete in draft, not on main
TODO
Token-In-Token-Out (TITO) is Miles' token-preserving path for multi-turn agentic rollout: each turn remains a bit-perfect prefix of the next, so training consumes exactly the tokens emitted by the inference engine. This issue tracks model support and the remaining session-server roadmap.
User guide: Agentic Chat Templates (TITO). Blog: No Token Left Behind: Demystifying TITO in Miles.
Model support on
mainSelect a model family explicitly with
--tito-model; Miles does not auto-detect it. Every named family owns oneFIXED_TEMPLATEcontract for its renderer and required chat-template kwargs. Named families require--use-session-server; usedefaultfor a native or custom template.--tito-modelqwen3qwen35qwennextglm47nemotron3kimi25kimi26minimax_m25minimax_m27deepseekv32deepseekv4defaultRollout status
Landed on
mainImplementation complete in draft, not on
mainTODO