ZIXUAN WANG*, 2026
<aside> 📌
Personal technical writeup, based on work done during an internship on the MiroMind RL team, written for personal learning only
</aside>

Figure 1: MiroVerse data engine. Two synthesis tracks: curated public datasets passed through a quality filter and a verifiability check, and raw data lifted into a concept graph and expanded, converge on an agent whose trajectories are kept only when they pass a verifier.
<aside> 🧭
Abstract
From large scale industry practice, a deep‑research agent's capability upper bound is mainly set by the questions it trains on, the environment(tool) it interacts with. The hard, under‑appreciated problem is synthesizing multi‑hop questions that are simultaneously: (i) genuinely multi‑hop (no single‑retrieval shortcut) (ii) verifiable (pairing checkable gold answer) (iii) difficulty‑controllable (iv) diverse and cheaply scalable
Open deep‑research agents have scaled along two visible axes: model size and context length. MiroMind's tech report (arXiv:2511.11793) names a third: interaction depth, up to ~600 tool calls inside a 256K‑token context, and shows accuracy rising monotonically as the tool‑call budget grows. But interaction depth is bounded by the same thing: the questions in the training set. A question solvable by one search teaches a single retrieval, no matter how long the context or how many GRPO steps you run on it. A shortcut‑solvable question never teaches a 40‑hop search. So the real lever is the data‑generation process. MiroMind's data engine (Figure 1) runs two synthesis tracks: curated public data passed through quality and verifiability filters, and raw data lifted into a concept graph and expanded. Both feed into an agent that runs full trajectories, keeping only those a Success/Fail verifier accepts. The resulting traces are overwhelmingly web‑grounded. Reading the shares off Figure 1's pie chart (which displays percentages; the integer counts below are computed from the 602,179 total tool calls):
| tool | calls | share |
|---|---|---|
| Google Search | 251,102 | 41.7% |
| Web Scraping | 177,053 | 29.4% |
| Search & Browse | 112,485 | 18.7% |
| Python Code | 43,124 | 7.2% |
| Create Sandbox | 11,662 | 1.9% |
| Run Command | 1,889 | 0.3% |
| Others | 4,864 | 0.8% |
A question worth training on must be four things at once:
<aside>
Principle. Properties (i)-(iv) are jointly achievable only when you fix the latent structure first (blue) and certify the item with a verifier (green); only then does the surface text (red) become a faithful encoding of that structure. Text‑first generation hopes the structure emerges; structure‑first guarantees it.
</aside>
The naive baseline shows an LLM a passage and asks it to "write a hard multi‑hop question." It controls surface fluency and topical relevance, but nothing about structure or answer.