Tess-4-9B

Reasoning that scales with the problem — now in a 9B footprint. An agentic, thinking-native model that deliberates harder exactly when it matters and gets out of its own way when it does not.

Tess-4-9B is the compact sibling of Tess-4-27B, built on Qwen/Qwen3.5-9B-Base by Migel Tissera. It was post-trained on the same deliberate blend as the 27B release: 64K-token long-context agentic traces — real engineering work done with Fable-5, not synthetic generations — with a reasoning style approximated from Fable-5 by a three-model teacher ensemble (Opus-4.8, GPT-5.5, and GLM-5.2) fused into one coherent voice.

The result is a 9B model with a much larger model's working style: form a hypothesis, act, verify, and spend real reasoning effort on the turns that deserve it — not a model that narrates its way to an answer it already had.


Evaluation results

Tess-4-9B evaluation results compared with Qwen3.5-9B-Base and Qwythos-9B

A 9B model that decisively moves the base. Across the six reported metrics, Tess-4-9B improves on Qwen3.5-9B-Base every time:

  • MMLU: 79.4%, up 56.2 points over the base and 21.9 points over Qwythos-9B.
  • GSM8K: 88.0% in both flexible and strict scoring; strict accuracy is up 37 points over the base.
  • GPQA Diamond: 62% at a 24K generation cap, reaching 73% with extended context.
  • ARC-Challenge: 58.0% accuracy and 53.0% normalized accuracy.

The comparison includes Qwen3.5-9B-Base, Qwythos-9B, and Tess-4-9B. Scores are accuracy on a 0–1 scale in the chart. For GPQA, the solid Tess segment is the complete 24K-cap run (62%); only samples that exhausted that cap were retried at 48K, producing the lighter extension to 73%.

Why Tess-4 is different

  • 🧠 Weight-scaled reasoning. Tess-4 keeps routine steps tight and pours deliberation into the hard ones — planning, debugging, synthesis, and judgment calls. It does not ramble; it thinks proportionally to the difficulty of the moment.
  • 🛠️ Agentic by design. Native, parallel tool use and disciplined multi-step problem solving. It reads a codebase, builds a real mental model, and acts on it.
  • 📏 Long-context, trained at 64K. Post-trained on 64K-token long-context agentic traces, so it can hold a large working set without losing the thread.
  • 👁️ Multimodal. Inherits Qwen3.5's vision tower — text and image in.
  • 🤝 Honest, not sycophantic. Trained to give grounded, evidence-based pushback instead of flattery.
  • A practical 9B footprint. Full BF16 weights are about 19 GB, making the model substantially easier to deploy and iterate with than its 27B sibling.

The reasoning traces

Tess-4's signature is how it thinks. The reasoning/thinking traces used to train it were a best-case approximation of Fable-5, produced by Opus-4.8, GPT-5.5, and GLM-5.2 working together as a team — a multi-model teacher ensemble distilled into a single, coherent reasoning style.

The result is a model that reasons prospectively — predicting, verifying, and weighing alternatives before acting — rather than narrating after the fact.

Prompt format and thinking

Tess-4 uses the bundled Qwen3.5-family agentic chat template with explicit <think> … </think> reasoning blocks. The model reasons first, then produces its visible answer:

<|im_start|>user
Your prompt here<|im_end|>
<|im_start|>assistant
<think>
… the model's private reasoning …
</think>

… the model's answer …<|im_end|>

Apply the format automatically with tokenizer.apply_chat_template(messages, add_generation_prompt=True). Keep the repository's bundled chat template intact; substituting a generic template can materially change behavior.

Tess-4-9B is a heavy reasoner on difficult questions. For demanding math, science, or agentic tasks, allow a generous generation budget. Some GPQA samples required more than 24K output tokens and benefited from a 48K cap.

Available formats

This repository — full-precision weights:

Format Parameters Approximate size Best for
BF16 safetensors 9.65B 19.3 GB transformers · vLLM · SGLang

GGUF builds → migtissera/Tess-4-9B-GGUF

File Format Size Best for
Tess-4-9B-Q4_K_M.gguf Q4_K_M 5.63 GB recommended for most local users
Tess-4-9B-Q6_K.gguf Q6_K 7.36 GB excellent quality/size balance
Tess-4-9B-Q8_0.gguf Q8_0 9.53 GB effectively lossless for most use cases
Tess-4-9B-F16.gguf F16 17.92 GB unquantized GGUF · maximum fidelity

Quickstart

llama.cpp / LM Studio (GGUF)

Run the recommended Q4_K_M build directly from Hugging Face with a recent llama.cpp:

llama-cli \
  -hf migtissera/Tess-4-9B-GGUF:Q4_K_M \
  --jinja \
  -c 65536 \
  -p "Inspect this code, identify the root cause, and propose a verified fix."

Or download it first:

hf download migtissera/Tess-4-9B-GGUF \
  Tess-4-9B-Q4_K_M.gguf \
  --local-dir ./tess-4-9b

See the Tess-4-9B-GGUF model card for every quant, llama.cpp server commands, memory guidance, and prompt-format details. The current GGUF release contains text-model files only; use this full-precision repository for the inherited vision path.

Transformers

Use a recent transformers release with Qwen3.5 support.

from transformers import AutoProcessor, AutoModelForImageTextToText
import torch

model_id = "migtissera/Tess-4-9B"

processor = AutoProcessor.from_pretrained(
    model_id,
    trust_remote_code=True,
)
model = AutoModelForImageTextToText.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)

messages = [
    {
        "role": "user",
        "content": "Inspect this function, identify the bug, and propose a verified fix.",
    }
]

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=8192,
    do_sample=False,
)

prompt_tokens = inputs["input_ids"].shape[-1]
answer = processor.decode(
    outputs[0][prompt_tokens:],
    skip_special_tokens=True,
)
print(answer)

For multimodal input, pass image and text content through AutoProcessor using the standard Qwen3.5 message structure.

What it is good at

  • Agentic coding — exploring unfamiliar repositories, planning changes, and executing multi-step work with tools.
  • Long-context work — reasoning over large codebases and documents without dropping context.
  • Hard reasoning — allocating substantial inference-time thought to math, science, debugging, and synthesis.
  • Technical and product judgment — honest, structured analysis that pushes back with evidence rather than agreeing by default.
  • Local and single-GPU experimentation — a strong reasoning profile in a much more deployable parameter class.

Credits

Tess-4-9B is built on Qwen/Qwen3.5-9B-Base by the Qwen team — full credit to them for an outstanding base model. Tess-4 inherits its Qwen3.5 vision-language architecture and its Apache 2.0 license.

License

Released under the Apache License 2.0, inherited from the base model.

Citation

@misc{tissera2026tess49b,
  title        = {Tess-4-9B},
  author       = {Migel Tissera},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/migtissera/Tess-4-9B}},
  note         = {Built on Qwen/Qwen3.5-9B-Base}
}

Tess-4-9B — part of the Tess series by Migel Tissera.

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

Model tree for migtissera/Tess-4-9B

Finetuned
(124)
this model
Quantizations
4 models