Iris-pro

Climbing to the Search Frontier.

🤗 Collection  |  💻 GitHub  |  🔬 Evaluation Harness

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).

Base Qwen3.5-397B-A17B
Parameters 397B total / 17B active (512 experts, 10 active)
Layers / hidden 60 / 4096
Context 256K
Precision bfloat16

Performance

Open-weight systems around 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 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.

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 + retry 90.3 85.1 93.4 56.6

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.

Downloads last month
580
Safetensors
Model size
403B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for AllSpark-Research/Iris-pro

Finetuned
(40)
this model

Collection including AllSpark-Research/Iris-pro