---
# Iris
**Climbing to the Search Frontier.**
Iris-mini (35B-A3B) and Iris-pro (397B-A17B) are open-weight search agents post-trained from the
Qwen3.5/3.6 series. 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.
## Performance
**30–35B**
| Model | Size | BrowseComp | BrowseComp-ZH | DeepSearchQA | HLE |
| --- | --- | --- | --- | --- | --- |
| MiroThinker-1.7-mini | 30B | 67.9 | 72.3 | – | 36.4 |
| FORT-Searcher | 30B | 72.2 | 75.0 | – | – |
| Apodex-1.0-mini | 35B | 71.5 | 80.6 | 82.2 | 46.8 |
| Nex-N2-mini | 35B | 74.1 | 79.6r | 87.2r | 37.1r |
| Agents-A1 | 35B | 75.5 | – | – | 47.6 |
| XYZ-Aquila-mini | 35B | 78.8 | 82.9 | **89.5** | 51.1 |
| **Iris-mini** | 35B | **82.2** | **84.8** | 86.9 | **52.3** |
**~400B**
| 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 | 79.6r | 92.3r | 50.0r |
| XYZ-Aquila-pro | 397B | 84.8 | **85.1** | 92.5 | 53.3 |
| **Iris-pro** | 397B | **88.6** | **85.1** | **92.9** | **56.4** |
DeepSearchQA is scored with F1, the rest with accuracy; HLE uses the 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.
## Models
| Model | Base | Params (total / active) | Context | Download |
| --- | --- | --- | --- | --- |
| **Iris-mini** | Qwen3.6-35B-A3B | 35B / 3B | 256K | [🤗 Iris-mini](https://huggingface.co/AllSpark-Research/Iris-mini) |
| **Iris-pro** | Qwen3.5-397B-A17B | 397B / 17B | 256K | [🤗 Iris-pro](https://huggingface.co/AllSpark-Research/Iris-pro) |
## Context Management
Long-horizon search runs out of context before a hard question is resolved, so every serious system
carries some mechanism for this. It is worth enough that a single published number belongs to the
agent and its harness together, which is why we report every benchmark in both regimes, under one
tool set, one context limit, and one judge.
| Setting | BrowseComp | BrowseComp-ZH | DeepSearchQA | HLE |
| --- | --- | --- | --- | --- |
| **Iris-mini** | | | | |
| w/o | 64.7 | 72.3 | 81.0 | 43.2 |
| retry | – | 83.0 | 89.1 | 52.0 |
| discard-all | 82.2 | 84.8 | 86.9 | 52.3 |
| discard-all + retry | **85.9** | **85.1** | **89.9** | **52.4** |
| **Iris-pro** | | | | |
| 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 + retry | **90.3** | **85.1** | **93.4** | **56.6** |
`discard-all` clears the accumulated tool history and restarts from the question once the running
context 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.
## Evaluation
[`Iris-Harness/`](./Iris-Harness) is the harness behind every number above: the agent loop, the two
tools, the context-management strategies, the four benchmarks and the graders. It runs against any
OpenAI-compatible endpoint.
```bash
cd Iris-Harness && uv sync
uv run python data/prepare_data.py
bash scripts/run_eval.sh --base-url http://127.0.0.1:21234/v1 --llm-config iris-mini \
--benchmarks "browsecomp:0:1" --context-discard-threshold 131072
```
## Acknowledgements
Iris is built on open-source work, and we are grateful to the teams behind it:
- [**MiroThinker**](https://github.com/MiroMindAI/MiroThinker)
- [**Relax**](https://github.com/redai-studio/Relax)
- [**ms-swift**](https://github.com/modelscope/ms-swift)
- [**slime**](https://github.com/THUDM/slime)
---
The data construction and training pipelines are coming soon.
Questions or collaboration: reach us at
.