Results
Task success (%) of Qwen3.5-4B (the paper's Table 3). MiniWeb: the 63 human tasks of the 13 held-out sites, from which
no training data comes; the other three benchmarks are not trained on either.
Table with columns: MiniWeb held-out, WebArena-Lite, WebVoyager, Online-Mind2Web | MiniWeb held-out | WebArena-Lite | WebVoyager | Online-Mind2Web |
|---|
| Untrained single agent | 37.0 | 27.1 | 45.5 | 17.9 |
| Untrained planner + untrained executor | 42.3 | 30.7 | 59.9 | 21.8 |
| MiniWebAgent (untrained planner + this executor) | 54.5 | 36.4 | 65.5 | 33.9 |
On the 103 generated single-primitive tasks of the held-out sites, the trained model as a single agent goes from 55.3%
to 80.3%, with gains in every skill family. On whole tasks it needs the planner: trained mostly on one-primitive
episodes, the single agent often stops before reaching the skills it learned (37.0% on the held-out tasks, as untrained).
Use
Serve the base model with the adapter (vLLM), then run MiniWebAgent with the repository's evaluator:
python scripts/fetch_adapters.py # -> data/webmix/adapters/pooled_v4MODEL=Qwen/Qwen3.5-4B SERVED=qwen35-4b PORT=8400 MAX_LORA_RANK=64 \ LORA_MODULES=pooled_v4=data/webmix/adapters/pooled_v4 bash src/miniwebagent/scripts/serve.shpython -m miniwebagent.evaluate --human --arm agent_planner --agent-version v6 --planner-name qwen35-4b \ --adapters none --fallback pooled_v4 --vllm http://127.0.0.1:8400/v1 --ports 8300,8301 --out runs/miniwebagent
With PEFT directly: PeftModel.from_pretrained(base_model, "miniweb/MiniWebAgent").
The executor expects the browser-use agent prompt it was trained on (the
system prompt, the task, the agent's memory, the indexed interactive elements and the screenshot) and answers with
its memory and one action. Thinking is off: the chat template renders an empty <think></think> block.
Training
- Data: 27,646 steps of MiniWebGen (the dataset's
training_steps table, rows with is_target and not
validation): 3,128 verified single-primitive trajectories on the 52 training sites, 857 chains of two trajectories
and 629 trajectories with an injected and corrected mistake, replayed through the agent harness with the base model
writing each step's memory.
- Recipe: rank-64 LoRA (alpha 128, dropout 0.05) on the language model's attention projections (full-attention
layers) and MLP projections (every layer); no vision tower. One epoch, AdamW, learning rate 1e-4 with 3% warmup and a
cosine decay, 8 steps per optimizer update, cross-entropy on the whole target (memory and action); 4 GPUs, about 5.5
hours.
training_meta.json and train_log.jsonl hold the settings and the loss curve.
Other checkpoints
The paper's other trained executors, in ablations/ (same base model and LoRA shape; each folder has its own
training_meta.json). python scripts/fetch_adapters.py --all downloads them under the names the paper's run commands
use (scripts/reproduce.py show <arm>).
Table with columns: Folder, What it is, Held-out task success| Folder | What it is | Held-out task success |
|---|
| (root) | MiniWebAgent's executor | 54.5 |
ablations/task_centric | trained at matched size on task-centric trajectories: InSTA's pipeline reimplemented on the 52 training sites (the dataset's task_centric_steps) | 45.5 |
ablations/specialists/{drag,io,select,rest,reasoning} | one specialist per skill family group (supplementary material): drag, io, select and rest start from the main executor and train on their families' steps with a KL penalty toward it; starts from the base model |
All numbers are with the untrained planner except no_done (single agent; 37.0 with the done steps). The specialists
are served under their family names and picked by the planner's family for each subtask:
LORA_MODULES='drag=.../drag io=.../io select=.../select rest=.../rest reasoning=.../reasoning pooled_v4=...' and
--adapters drag,io,select,rest,reasoning --fallback pooled_v4.
Limitations
Trained only on MiniWeb's synthetic sites and English instructions, mostly on single primitives: on whole tasks it
relies on the planner for their structure. Outside MiniWeb it has been evaluated only on the three benchmarks above.
License
Apache 2.0, as the base model.