Introduction
Iris-pro is an open-weight search agent post-trained from
Qwen3.5-397B-A17B. A capable search agent has to
decide what to search, how to read what comes back, when to keep going, and when the evidence it has
gathered is enough. Iris is trained for exactly that loop, through alternating rounds of supervised
fine-tuning and reinforcement learning.
Its smaller sibling is Iris-mini (35B-A3B).
Table | |
|---|
| Base | Qwen3.5-397B-A17B |
| Parameters | 397B total / 17B active (512 experts, 10 active) |
| Layers / hidden | 60 / 4096 |
| Context | 256K |
| Precision | bfloat16 |
Open-weight systems around 400B:
Table with columns: Model, Size, BrowseComp, BrowseComp-ZH, DeepSearchQA, HLE| Model | Size | BrowseComp | BrowseComp-ZH | DeepSearchQA | HLE |
|---|
| MiroThinker-1.7 | 397B | 74.0 | 75.3 | – | 42.9 |
| Apodex-1.0 | 397B | 75.5 | 82.6 | 84.6 | 49.0 |
| Nex-N2-Pro | 397B | 83.7 |
DeepSearchQA is scored with F1, the rest with accuracy; HLE uses the 2,158-question text-only
subset. Iris numbers use the discard-all context-management setting; baselines come from their
public reports, each under its own context management. r reproduced by the XYZ-Aquila
team.
Context management
Long-horizon search runs out of context before a hard question is resolved, so a published number
belongs to the agent and its harness. We report every benchmark in both regimes, under one tool
set, one context limit and one judge.
Table with columns: Setting, BrowseComp, BrowseComp-ZH, DeepSearchQA, HLE| Setting | BrowseComp | BrowseComp-ZH | DeepSearchQA | HLE |
|---|
| w/o | 72.6 | 76.8 | 86.4 | 50.8 |
| retry | – | 84.1 | 92.3 | 56.6 |
| discard-all | 88.6 | 85.1 | 92.9 | 56.4 |
discard-all resets the conversation to the opening question once the prompt crosses a threshold.
retry restarts an episode that ended without a parseable answer, carrying forward a short summary
of what was already ruled out. We report discard-all as the headline setting even where adding
retry scores higher.
Quickstart
Serve with SGLang. At 397B this needs multiple nodes or a large single node; scale --tp-size to
the hardware you have:
python -m sglang.launch_server \
--model-path AllSpark-Research/Iris-pro \
--served-model-name Iris-pro \
--port 21234 --tp-size 8 --ep-size 8 \
--context-length 262144 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder
Then evaluate with Iris-Harness,
which reproduces the numbers above:
bash scripts/run_eval.sh \
--base-url http://127.0.0.1:21234/v1 \
--llm-config iris-pro \
--benchmarks "browsecomp:0:1" \
--context-discard-threshold 131072
The model is trained to call tools through the OpenAI function-calling interface and to wrap its
final answer in \boxed{}. Prior reasoning is carried back into the conversation on each turn; the
harness's iris-pro config sets this up for you.
License
Apache 2.0.