Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

Qwen3.5-2B-tool-router-v2-q4f32_1-MLC

by Fuk Kwang tfukkwang/Qwen3.5-2B-tool-router-v2-q4f32_1-MLC

Qwen3.5-2B-tool-router-v2-q4f32_1-MLC is an open-weight model for text generation from Fuk Kwang, released under Apache License 2.0. Its published files total 1.1 GB.

A fine-tune of Qwen/Qwen3.5-2B that works as a tool router in pure mode: it answers every user message with exactly one tool call and writes no text. The app writes every sentence. It runs in the browser with WebLLM on WebGPU. Download: 1.1 GB.

Parameters—
Context—
Weights1.1 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Fuk Kwang, published under apache-2.0, revision 4334c44b5d95.

A fine-tune of Qwen/Qwen3.5-2B that works as a tool router in pure mode: it answers every user message with exactly one tool call and writes no text. The app writes every sentence. It runs in the browser with WebLLM on WebGPU. Download: 1.1 GB. This is the f32 build: it runs on any WebGPU. The f16 build (tfukkwang/Qwen3.5-2B-tool-router-v2-q4f161-MLC) has the same weights, is faster, and needs the shader-f16 feature. Every reply is one: - Greetings, thanks, goodbyes, "what can you do": smalltalk. - Requests that have nothing to do with the app: unsupported. - A request that needs an id the user did not give: askuser. The app should force one tool call per reply with a grammar (WebLLM…

Read Fuk Kwang's full model card

Qwen3.5-2B tool router v2 (q4f32_1, MLC / WebLLM)

A fine-tune of Qwen/Qwen3.5-2B that works as a tool router in pure mode: it answers every user message with exactly one tool call and writes no text. The app writes every sentence. It runs in the browser with WebLLM on WebGPU. Download: 1.1 GB.

This is the f32 build: it runs on any WebGPU. The f16 build (tfukkwang/Qwen3.5-2B-tool-router-v2-q4f16_1-MLC) has the same weights, is faster, and needs the shader-f16 feature.

Demo: tfukkwang/credit-copilot-demo

What the model does

Every reply is one <tool_call>: - Data requests: the app's list, count, record and chart tools, with filters taken from the user's words. - Judgement and advice: the app's expert tool. - Actions (approve, cancel, ...): only when the user explicitly asks. - Greetings, thanks, goodbyes, "what can you do": small_talk. - Requests that have nothing to do with the app: unsupported. - A request that needs an id the user did not give: ask_user.

The app should force one tool call per reply with a grammar (WebLLM structural tags), as the demo does.

Training

  • Data: 3,000 generated pure-mode conversations about 30 made-up apps (orders, tickets, clinics, fleets, ...). Each app has its own tool names, arguments and enums, so the model learns tool routing in general, not one app.
  • Method: LoRA (r=16) SFT on the stock Qwen3.5-2B, 2 epochs, bf16.
  • Conversion: merged weights converted to MLC q4f32_1 for the official Qwen3.5-2B WebGPU library. No new compilation.

Evaluation

Browser test on four apps that were not in the training data (credit underwriting, support desk, leave requests, shop orders; 82 turns): 74/82 router alone, 76/82 after the app's code guards. The guards are small code fixes in the app (for example, a missing id is asked for instead of guessed).

Usage with WebLLM

import { CreateMLCEngine, prebuiltAppConfig } from "https://esm.run/@mlc-ai/[email protected]";

const appConfig = {
  model_list: [...prebuiltAppConfig.model_list, {
    model: "https://huggingface.co/tfukkwang/Qwen3.5-2B-tool-router-v2-q4f32_1-MLC",
    model_id: "Qwen3.5-2B-router",
    model_lib: "https://raw.githubusercontent.com/mlc-ai/binary-mlc-llm-libs/main/web-llm-models/v0_2_84/base/Qwen3.5-2B-q4f32_1_cs1k-webgpu.wasm",
  }],
};
const engine = await CreateMLCEngine("Qwen3.5-2B-router", { appConfig });

Put the tools in the system prompt in Qwen's format (<tools>...</tools>) and parse <tool_call> blocks. Use greedy decoding (temperature: 0) and extra_body: { enable_thinking: false }.

Limitations

  • Routing only. It is not a chat model.
  • It still sometimes drops a requested filter or sort order, or counts when the user asked for a list. Check the call in code where it matters.
  • Never let it run action tools without the user's explicit words; check that in the app.

Identity and Version

Repository
tfukkwang/Qwen3.5-2B-tool-router-v2-q4f32_1-MLC
Publisher
Fuk Kwang
Task
Text generation
Modality
Text
Library
mlc-llm
Parameters
Not stated by the source
Languages
mlc-llm
Revision
4334c44b5d95446837010123c245bcceb8ff4973
First published
2026-10-05
Last updated
2026-10-05

Files and Weights

40 files, 1.1 GB in total. The weights are 31 files totalling 1.1 GB in bin.

Weights31 files · 1.1 GB
Configuration2 files · 76.7 KB
Tokenizer4 files · 22.9 MB
Documentation2 files · 14.9 KB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
params_shard_0.binWeights254.3 MB ccef5991f804
params_shard_1.binWeights31.8 MB 10715ad6e2ac
params_shard_10.binWeights28.3 MB c4f05b550975
params_shard_11.binWeights21.2 MB ee286be10b39
params_shard_12.binWeights28.3 MB eb3900df37fe
params_shard_13.binWeights21.2 MB d475cb7e428c
params_shard_14.binWeights28.3 MB 82aa022707e7
params_shard_15.binWeights21.2 MB 87903b63070e
params_shard_16.binWeights28.3 MB 6072cb411b5c
params_shard_17.binWeights21.2 MB 9f512af8af00
params_shard_18.binWeights28.3 MB efe9f1e1a3d5
params_shard_19.binWeights28.3 MB cfe3743f0ee0
params_shard_2.binWeights28.3 MB 6c44c8b8fc08
params_shard_20.binWeights28.3 MB 0c8837469e71
params_shard_21.binWeights28.3 MB dde21aad0224
params_shard_22.binWeights28.3 MB 0ed647b98ff4
params_shard_23.binWeights28.3 MB 2edcfee37022
params_shard_24.binWeights21.2 MB 23cc02683697
params_shard_25.binWeights28.3 MB 8f6163630022
params_shard_26.binWeights33.0 MB 7a2da7a1cd95
params_shard_27.binWeights33.0 MB 43c80ac72f01
params_shard_28.binWeights33.0 MB 87998aa96c48
params_shard_29.binWeights33.0 MB 6fbbc7bff550
params_shard_3.binWeights21.2 MB 6d56730d03a9
params_shard_30.binWeights25.4 MB 42312356d33a
params_shard_4.binWeights21.2 MB 3c51a4c41575
params_shard_5.binWeights21.2 MB 0be01df886f2
params_shard_6.binWeights21.2 MB 32a211b9126d
params_shard_7.binWeights28.3 MB cefe6a8c9a97
params_shard_8.binWeights28.3 MB ecf2f8e9628b
params_shard_9.binWeights28.3 MB a0e52e22728b
mlc-chat-config.jsonConfiguration2.4 KB —
tensor-cache.jsonConfiguration74.3 KB —
LICENSEDocumentation11.5 KB —
README.mdDocumentation3.4 KB —
.gitattributesRepository1.6 KB —
merges.txtTokenizer3.4 MB —
tokenizer.jsonTokenizer12.8 MB 5f9e4d4901a9
tokenizer_config.jsonTokenizer16.7 KB —
vocab.jsonTokenizer6.7 MB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
1.1 GB
Download from Fuk Kwang

Released by Fuk Kwang through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published1.1 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About Qwen3.5-2B-tool-router-v2-q4f32_1-MLC

Can I use Qwen3.5-2B-tool-router-v2-q4f32_1-MLC commercially?

Yes. Qwen3.5-2B-tool-router-v2-q4f32_1-MLC is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Text generation

opt-125m

AI at Meta

OPT was first introduced in Open Pre-trained Transformer Language Models and first released in metaseq's repository on May 3rd 2022 by Meta AI. Disclaimer: The team releasing OPT wrote an official model card, which is available in Appendix D of the paper. Content from this model card has been written by the Hugging Face team. To quote the first two paragraphs of the official paper OPT was predominantly pretrained with English text, but a small amount of non-English data is still present within the training corpus via CommonCrawl. The model was pretrained using a causal language modeling (CLM) objective. OPT belongs to the same family of decoder-only models like GPT-3. As such, it was…

Open weights other 2,048 tokens transformers

Model · Text generation

Ornith-1.5-9B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ornith-1.5-35B-A3B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ternary-Bonsai-2-27B-gguf

Prism ML

Full 27B-class reasoning in ternary transformer weights, for llama.cpp (CUDA, Metal, CPU) - \~5.9 GB language model (down from \~54 GB FP16) — full 27B-class reasoning on a standard laptop or a single GPU - 98.2% of FP16 intelligence retained: 84.78 average across 14 thinking-mode benchmarks — far above the conventional IQ2XXS build (72.59) at about 82% of its footprint, and within 0.4 points of UD-Q4KXL at three times the footprint - Retains thinking, reasoning, and agentic behavior deep in the sub-4-bit regime, where conventional low-bit representations collapse: math within half a point of full precision (96.57), coding level with the baseline (89.42), agentic tool calling at 74.92…

Open weights apache-2.0 llama.cpp

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi token prediction (MTP) head retained and verified. Refusal behaviour has been substantially reduced, not eliminated. See Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged. - Refusal directions removed with Heretic, which co minimizes refusal count against KL divergence from the base model. No handwritten refusal removal code, no finetuning, no additional training data. - Abliteration runs at bf16 (no 4 bit quantization). the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip. - mtp. tensors are copied verbatim from…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.0-9B-GGUF

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit transformers