ICLR 2026

Non-Collaborative User Simulators for Tool Agents

Jeonghoon Shim, Woojung Song, Cheyon Jin, Seungwon Kook, Yohan Jo

Graduate School of Data Science, Seoul National University

† Corresponding author

TL;DR

Existing user simulators always cooperate. Ours asks for the impossible, drifts off topic, loses patience, and types half-sentences, yet still delivers every goal item. Under these users, state-of-the-art tool agents lose up to half of their success rate, and fine-tuning on collaborative data alone does not fix it.

  1. Which behaviors? Unavailable service, tangential talk, impatience, and incomplete utterances.
  2. How do we keep the goal intact? A dialogue state tracker and an ending verifier on a τ-bench-style backbone; 97% of dialogues convey the full goal on the first try.
  3. How much do agents suffer? Every model drops on MultiWOZ and τ-bench; tangential users cost 29.1% relative success on average.
  4. Does fine-tuning help? Only when non-collaborative dialogues are in the training mix (average success 78.8 → 86.9).
  5. Is the simulator realistic? Harder on agents than a prompt-only simulator at equal goal alignment, and preferred by annotators about 70% of the time.

Each group is one agent LLM, each bar one user mode. Relative SR divides by the collaborative score, so bars below the dashed line are losses caused by the behavior.

Five agents, five kinds of user

mean relative SR over the four behaviors  largest loss 

Table 1 of the paper. Success rate: the final database state matches the ground truth, averaged over 4 trials (89 scenarios on MultiWOZ, 157 on τ-bench). Click a legend entry to dim the other modes.

Four non-collaborative behaviors

Grounded in marketing research on difficult customers and in real user–LLM chat logs. Each card: the behavior, an example, and how the simulator produces it (Figure 3 of the paper, one panel per behavior; click a panel to enlarge).

Unavailable service

Requests that no available API can fulfil.

Book me a window seat on the train.The booking API has no seat option. The agent has to decline or set it aside.

How: GPT-4.1-mini reads the API docs and the user goal, then appends three extra requests that need a missing API or an unsupported parameter.

Figure 3(a)

Tangential

Off-task talk, and complaints when it is ignored.

Factual questionOpinion questionGeneral opinionNon-opinion statement
By the way, where do you think I should visit first traveling in NA?Dropped into a train booking.

How: A Persona Hub persona drives GPT-4o-mini to write a tangent in one of four dialogue acts, merged into the utterance. If the agent ignores it, the next turn carries a complaint.

Figure 3(b)

Impatience

Anger after failures or delays, escalating over the dialogue.

Belligerent abuseThreatUrge
Stop wasting my time and just get it done!After another failed booking attempt.

How: Triggered when the agent reports a failure, or when all information was given and the task is still unresolved. Fires with probability 0.5, +0.1 per trigger; once angry, the user stays cynical.

Figure 3(c)

Incomplete utterances

Extremely brief or prematurely sent messages.

Book train, 2  ·  I want to resBoth mean “I want to reserve a train for 2 people.”

How: Style transfer from real LMSYS and WildChat messages, or truncation at a random point. The state tracker re-sends whatever was cut off.

Figure 3(d)

A simulator that misbehaves but still finishes the job

Every behavior is layered on a collaborative simulator built to deliver the whole user goal, so a failed task is the agent's fault, not a user who forgot to mention something.

Figure 1 of the paper. Left: tool-agent environment and DB-state evaluation. Right: the collaborative simulator, its two goal-alignment modules, and the four non-collaborative modules. Click to enlarge.
  • Backbone. The τ-bench prompt simulator (GPT-4.1-mini): user goal, instruction, dialogue history; emits <END> when done.
  • Dialogue state tracker. Shards the goal into information pieces and delivers any that are still unsent before the dialogue ends.
  • Ending verifier. Blocks <END> while the agent still has to act or is waiting for confirmation.
  • Goal alignment check. GPT-4o-mini verifies that every goal item was conveyed; failures are regenerated. Only 3.0% of 1,230 dialogues fail on the first attempt, and the judge agrees with a human at MCC 0.77.
MultiWOZBooking tasks; our new environment with 11 APIs discovered through helper APIs. 89 scenarios.
τ-benchAirline and retail; API docs in the system prompt, transfer_to_human removed. 157 scenarios.
AgentReAct with a 30-step limit. GPT-4.1-mini, GPT-4.1-nano, Qwen3-235b-a22b, Qwen3-30b-a3b, Llama-3.1-70b-instruct.
MetricSuccess rate: exact match of the final DB state, averaged over 4 trials per scenario.

Results

Every agent loses under every behavior, each in its own way: unavailable services and incomplete utterances break tool use, tangents and impatience break dialogue management.

ModelMetricMultiWOZτ-bench
Collab.Unavail.Tang.Impat.Incomp.Collab.Unavail.Tang.Impat.Incomp.
GPT-4.1-miniSR92.789.389.390.788.245.541.739.545.145.4
Relative SR100.096.396.397.895.1100.091.686.898.999.8
GPT-4.1-nanoSR23.616.99.826.714.712.010.06.88.88.0
Relative SR100.071.641.5113.162.3100.083.356.772.566.7
Qwen3-235b-a22bSR77.862.457.369.469.941.436.832.337.639.3
Relative SR100.080.273.789.289.8100.088.978.090.894.9
Qwen3-30b-a3bSR48.347.227.241.026.127.926.620.424.830.1
Relative SR100.097.756.384.954.0100.095.373.188.9107.9
Llama-3.1-70b-instructSR62.654.849.447.548.621.818.514.717.816.4
Relative SR100.087.578.975.977.6100.084.967.481.775.2

Table 1 of the paper. Relative SR is SR divided by the model's collaborative SR. Values below 60 are marked.

Unavailable service tool use

Agents re-fetch API docs they already have. Duplicated helper-API calls rise on MultiWOZ and eat the 30-step budget. Qwen3-235b-a22b avoids the duplication but fabricates API results instead (0.33 → 1.13 per dialogue).

Duplicated helper API calls per dialogue, MultiWOZ

ModelCollab.Unavail.
GPT-4.1-mini0.020.57
GPT-4.1-nano0.650.91
Qwen3-235b-a22b0.130.18
Qwen3-30b-a3b0.010.02
Llama-3.1-70b1.291.91

Tangential dialogue management

The most damaging behavior: 29.1% relative success lost on average. Agents increasingly fail to do the core task at all. GPT-4.1-nano ignores the tangent, the user complains, and the loop repeats until the step limit runs out.

Dialogues that hit the 30-step limit, MultiWOZ

ModelCollab.Tang.
GPT-4.1-mini1%3%
GPT-4.1-nano15%44%
Qwen3-235b-a22b5%9%
Qwen3-30b-a3b20%35%
Llama-3.1-70b22%38%

Impatience dialogue management

Agents apologize instead of acting, and the ones that apologize most lose most. The mildest behavior overall, but under a 30-step budget every apology delays the task and provokes more anger.

Apology share of agent utterances, collaborative → impatient

ModelMultiWOZτ-bench
GPT-4.1-mini.01 → .14.02 → .12
GPT-4.1-nano.16 → .36.06 → .21
Qwen3-235b-a22b.02 → .12.03 → .14
Qwen3-30b-a3b.03 → .25.07 → .24
Llama-3.1-70b.16 → .35.21 → .38

Incomplete utterances tool use

Terse users make agents invent API parameters, but only where docs must be looked up. On MultiWOZ, calls with undocumented parameter keys rise for every model; on τ-bench, where the docs sit in the system prompt, they stay near zero.

API calls with hallucinated parameter keys per dialogue, MultiWOZ

ModelCollab.Incomp.
GPT-4.1-mini0.521.05
GPT-4.1-nano1.722.19
Qwen3-235b-a22b1.972.15
Qwen3-30b-a3b4.786.44
Llama-3.1-70b2.763.66

Two behaviors at once

Even the most robust agent breaks when behaviors co-occur. GPT-4.1-mini, nearly unaffected by any single behavior, loses up to 16.6 points on MultiWOZ and 11.7 on τ-bench under a pair. Model size does not predict robustness: GPT-4.1-mini beats GPT-4.1-nano everywhere, but the Qwen models show no consistent size effect.

GPT-4.1-mini success rate, our simulator

User modesMultiWOZτ-bench
Collaborative92.745.5
Impatience + Unavailable82.340.9
Tangential + Incomplete76.134.6
Tangential + Unavailable86.036.8
Impatience + Tangential82.933.8
Incomplete + Unavailable78.140.0
Incomplete + Impatience80.138.1

Beyond tool use: ColBench and MINT

The simulator ports with small adjustments. ColBench (backend programming, no tools) repeats the tool-agent pattern; MINT (user–agent collaboration on HotpotQA) does not, so the findings hold for domains built around fulfilling a user goal.

ModelColBench · backend programmingMINT · HotpotQA
Collab.Unavail.Tang.Impat.Incomp.Collab.Unavail.Tang.Impat.Incomp.
GPT-4.1-mini50.349.446.245.446.952.353.554.152.950.6
GPT-4.1-nano46.146.539.046.240.145.944.844.240.746.5
Qwen3-30b-a3b29.436.223.324.423.840.134.339.034.336.6

Table 2 of the paper. Success rates averaged over 4 trials.

Fine-tuning on collaborative data leaves agents fragile

SFT on successful collaborative MultiWOZ dialogues takes 3B and 7B models from under 4% to over 90% success with collaborative users. The gains do not transfer: unavailable services (61 to 77%) and incomplete utterances (72 to 82%) lag far behind, with more duplicated API calls and parameter hallucinations than the zero-shot baselines.

Figure 4 of the paper. Success rate on MultiWOZ after SFT on collaborative dialogues only. The red line is the zero-shot level of the same base models.

Adding non-collaborative dialogues in equal proportion lifts Qwen2.5-3b on every behavior and raises the average from 78.8 to 86.9. Up-weighting incomplete-utterance data closes that gap further at a small cost elsewhere.

Training data (Qwen2.5-3b-instruct)Collab.Unavail.Tang.Impat.Incomp.Average
Collaborative only91.661.283.185.173.078.8
+ non-collaborative, uniformly weighted93.585.787.489.678.486.9
+ non-collaborative, incomplete up-weighted91.685.785.787.682.386.6

Table 3 of the paper. Success rate on MultiWOZ. Checkpoints and training sets are released (see Code).

Is the simulator itself any good?

Baseline: a prompt-based user simulator (PBUS) that adds the behavior descriptions to the τ-bench prompt, with no extra modules. Tested with two behaviors at once. PBUS barely moves the agent; ours does, at equal or better initial goal alignment (IGA), so the difficulty comes from the behaviors, not from missing information.

BenchmarkSimulatorCOLIMP+UNATAN+INCTAN+UNAIMP+TANINC+UNAINC+IMP
SRIGASRIGASRIGASRIGASRIGASRIGASRIGA
MultiWOZPBUS93.597.884.691.687.698.684.695.590.296.990.489.092.497.5
Ours92.797.882.389.976.198.086.094.982.997.578.191.080.196.3
τ-benchPBUS38.987.840.992.444.495.839.297.943.396.039.392.345.188.3
Ours45.597.540.998.134.696.436.899.533.897.740.097.738.193.8

Table 4 of the paper, agent GPT-4.1-mini. COL collaborative, IMP impatience, UNA unavailable service, TAN tangential, INC incomplete utterance.

Human evaluation

Nine annotators compared dialogues pairwise. Ours wins about 70% overall and every single-behavior mode:

Figure 5 of the paper, single-behavior mode.

Takeaways

  • Test agents against users who do not cooperate. A collaborative simulator hides the failures that appear the moment a user asks for the impossible, changes the subject, gets angry, or types “I want to res”.
  • Each behavior needs its own fix. Better grounding in API docs for unavailable services and terse users; dialogue strategies that acknowledge without stalling for tangents and anger.
  • Put non-collaborative dialogues in the training set. A uniform mix of the four behaviors recovers most of the gap that collaborative-only SFT leaves.

Run the simulator on your own agent

Both environments ship with their own conda setup. Behaviors are switched on by dropping YAML files into non_coll_list/; models, trials, and API keys are set in the run script.

# MultiWOZ environment
git clone https://github.com/holi-lab/NCUser
cd NCUser/multiwoz_env
conda create -n multiwoz_env python=3.11 && conda activate multiwoz_env
pip install -r requirements.txt

# choose the user behaviors to simulate (any subset; each YAML is one mode):
#   normal (collaborative) · unavailable_service · tangential
#   emotional_acts (impatience) · fragment_dumping (incomplete utterance)
cp non_coll_normal.yaml non_coll_tangential.yaml non_coll_list/

# set N (trials), the models array, and API keys in run_dialogue_simulation.sh, then
./run_dialogue_simulation.sh
./run_error_analysis.sh

# τ-bench environment: same workflow
cd ../tau_env && conda create -n tau_env python=3.11 && conda activate tau_env
pip install -e .
./run_dialogue_simulation.sh

Fine-tuned agents and training sets: Hugging Face. All dialogue logs behind the tables: Google Drive. Configuration, vLLM serving, and training: README.

BibTeX

@inproceedings{shim2026noncollaborative,
    title     = {Non-Collaborative User Simulators for Tool Agents},
    author    = {Shim, Jeonghoon and Song, Woojung and Jin, Cheyon and Kook, Seungwon and Jo, Yohan},
    booktitle = {The Fourteenth International Conference on Learning Representations},
    year      = {2026},
    url       = {https://openreview.net/forum?id=UAUimofy3W}
}