arXiv 2608.27912 · cs.IR

ITER

Interaction-aware retrieval for agentic search: a dense retriever trained from search-agent trajectories, conditioned on the searches the agent already tried, and trained to return documents it has not read yet. ITER is one setting of the SkimSearchAgent library.

Chen, Wang, Yin, Zhuang, Zuccon, Leelanupab, 2026

The method

Retrieval that remembers what the agent already saw

A retriever trained only on question-document relevance keeps handing an agent the same top result on every search, even after the agent has already read it. ITER trains the retriever from the agent's own trajectories and evaluates it inside the same agent loop, so it learns to condition on interaction history rather than the question alone.

1

Trajectories

A search agent runs over a corpus, and every search and every read is recorded, question by question.

2

Conditioned query

The retriever's query carries the main question plus every sub-query the agent already tried in that episode, not the raw question alone.

3

Novelty training

Training rewards documents the agent has not read yet, so the retriever stops repeating a result once the agent has already seen it.

4

In-loop evaluation

The trained retriever is evaluated the same way it was trained: inside a running agent, not against a static ranking of a fixed query set.

Search tools

Two tools: search, and open a document

ITER's agent has two tools. search_dedup drops every document an earlier search in the same episode already surfaced, so a query never returns a result the agent has already been shown; a document that would have ranked but was already shown is listed as already seen, so the agent can still choose to reopen it. get_document opens one document by id. That pairing is strategy=dedup_dense, with the run's dense model behind the search, or dedup_bm25, using the research_dedup task template.

Training

Trajectories become training data

Every run is a trajectory, so it is also training data. The generic recipe is shared with every other strategy in the library; this is ITER's path through it.

# trajectories -> triples -> checkpoint -> serving
skimsearchagent-build-triples --runs runs/... --dataset hotpotqa_structured \
  --out train_data/hotpotqa_i2.jsonl --query-style i2 --labeller oracle
skimsearchagent-train-retriever template > train.yaml
sbatch --export=ALL,TRAIN=train.yaml,TRAIN_ENV=$PWD/envs-train scripts/slurm/train_retriever.sbatch
skimsearchagent run configs/paper/hotpotqa_structured_sieve.yaml \
  retrieval.dense_model=models/my-retriever retrieval.dense_query_style=i2

Triples with tiered negatives come out of any run directory's records; a patched FlagEmbedding trainer fits a dense retriever on them; the checkpoint plugs back in as any strategy's dense model, served with the query style, the instruction and the precision it was trained with, so it behaves in production exactly as it behaved during training.

Retrievers

Released checkpoints

Any embedding model works as retrieval.dense_model. ITER releases two trained checkpoints:

ielabgroup/ITER-Qwen3-Embedding-0.6B

The smaller of the two released checkpoints, trained on ITER's trajectories.

ielabgroup/ITER-Qwen3-Embedding-4B

The larger released checkpoint, same training recipe, more parameters.

Both are decoder checkpoints without a sentence-transformers config; the library detects that from the model's own config file and serves them with last-token pooling and normalisation, in the precision ITER trained them in. The query side pairs a query style with an instruction: ITER's own conditioned style for its trained models, a plain style for the untrained Qwen3-Embedding baselines it started from.

Datasets

What it runs on

ITER runs on a Wikipedia chunk corpus with two question sets over it, infoseek_eval and infoseek_train, plus browsecomp_plus_chunks, a chunked BrowseComp-Plus corpus with its own evidence judgments. The Wikipedia-scale corpus is served from disk rather than held in memory, and retrieval over it goes through a prebuilt index rather than an index built during the run. The InfoSeek sets carry answers but no document labels, so they score on answer metrics and an LLM judge instead of ranking metrics.

Citation

If you use ITER

@misc{chen2026iter,
  title         = {ITER: Interaction-Aware Retrieval for Agentic Search},
  author        = {Chen, Haodong and Wang, Shuai and Yin, Yu and Zhuang, Shengyao and
                   Zuccon, Guido and Leelanupab, Teerapong},
  year          = {2026},
  eprint        = {2608.27912},
  archivePrefix = {arXiv},
  primaryClass  = {cs.IR},
  url           = {https://arxiv.org/abs/2608.27912}
}