# Qwen3-Coder: So führst du es lokal aus

Qwen3-Coder ist Qwens neue Serie von Codierungsagentenmodellen, verfügbar in 30B (**Qwen3-Coder-Flash**) und 480B Parametern. **Qwen3-480B-A35B-Instruct** erzielt SOTA-Codierungsleistung, die mit Claude Sonnet-4, GPT-4.1 und konkurriert [Kimi K2](https://unsloth.ai/docs/de/modelle/tutorials/kimi-k2-thinking-how-to-run-locally), mit 61,8% beim Aider Polyglot und Unterstützung für einen Kontext von 256K (erweiterbar auf 1M) Tokens.

Wir haben außerdem Qwen3-Coder mit nativer <mark style="background-color:purple;">**1M Kontextlänge**</mark> erweitert durch YaRN und Vollpräzisions-8bit- und 16bit-Versionen hochgeladen. [Unsloth](https://github.com/unslothai/unsloth) unterstützt jetzt auch Fine-Tuning und [RL](https://unsloth.ai/docs/de/loslegen/reinforcement-learning-rl-guide) von Qwen3-Coder.

{% hint style="success" %}
[**AKTUALISIERUNG:** Wir haben das Tool-Calling für Qwen3-Coder behoben! ](#tool-calling-fixes)Sie können jetzt Tool-Calling nahtlos in llama.cpp, Ollama, LMStudio, Open WebUI, Jan usw. verwenden. Dieses Problem war universell und betraf alle Uploads (nicht nur Unsloth), und wir haben das Qwen-Team über unsere Fixes informiert! [Mehr lesen](#tool-calling-fixes)
{% endhint %}

<a href="#run-qwen3-coder-30b-a3b-instruct" class="button primary">30B-A3B ausführen</a><a href="#run-qwen3-coder-480b-a35b-instruct" class="button secondary">480B-A35B ausführen</a>

{% hint style="success" %}
**Funktioniert** [**Unsloth Dynamic Quants**](https://unsloth.ai/docs/de/grundlagen/unsloth-dynamic-2.0-ggufs) **?** Ja, und sehr gut. Bei Tests durch Dritte auf dem Aider Polyglot-Benchmark kam der **UD-Q4\_K\_XL (276GB)** dynamische Quant kam dem **vollen bf16 (960GB)** Qwen3-coder Modell nahezu gleich und erzielte 60,9% gegenüber 61,8%. [Weitere Details hier.](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/discussions/8)
{% endhint %}

#### **Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs**:

| Dynamic 2.0 GGUF (zum Ausführen)                                                                                                                                                                                              | 1M Kontext Dynamic 2.0 GGUF                                                                                                                                                                                                         |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF">480B-A35B-Instruct</a></li></ul> | <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-1M-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-1M-GGUF">480B-A35B-Instruct</a></li></ul> |

## 🖥️ **Qwen3-Coder ausführen**

Unten stehen Anleitungen für die [**30B-A3B**](#run-qwen3-coder-30b-a3b-instruct) und [**480B-A35B**](#run-qwen3-coder-480b-a35b-instruct) Varianten des Modells.

### :gear: Empfohlene Einstellungen

Qwen empfiehlt diese Inferenz-Einstellungen für beide Modelle:

`temperature=0.7`, `top_p=0.8`, `top_k=20`, `repetition_penalty=1.05`

* <mark style="background-color:green;">**Temperatur von 0,7**</mark>
* Top\_K von 20
* Min\_P von 0,00 (optional, aber 0,01 funktioniert gut, der llama.cpp-Standard ist 0,1)
* Top\_P von 0,8
* <mark style="background-color:green;">**Repetition Penalty von 1,05**</mark>
* Chat-Vorlage:

  ```
  <|im_start|>user
  Hey there!<|im_end|>
  <|im_start|>assistant
  What is 1+1?<|im_end|>
  <|im_start|>user
  2<|im_end|>
  <|im_start|>assistant
  ```
* Empfohlene Kontextausgabe: 65.536 Tokens (kann erhöht werden). Details hier.

**Chat-Vorlage/Prompt-Format mit unverarbeiteten Zeilenumbrüchen**

{% code overflow="wrap" %}

```
<|im_start|>user\nHey there!<|im_end|>\n<|im_start|>assistant\nWhat is 1+1?<|im_end|>\n<|im_start|>user\n2<|im_end|>\n<|im_start|>assistant\n
```

{% endcode %}

<mark style="background-color:yellow;">**Chat-Vorlage für Tool-Calling**</mark> (Abrufen der aktuellen Temperatur für San Francisco). Mehr Details hier zur Formatierung von Tool-Aufrufen.

```
<|im_start|>user
Wie ist die Temperatur in San Francisco jetzt? Wie sieht es morgen aus?<|im_end|>
<|im_start|>assistant
<tool_call>\n<function=get_current_temperature>\n<parameter=location>\nSan Francisco, CA, USA
</parameter>\n</function>\n</tool_call><|im_end|>
<|im_start|>user
<tool_response>
{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}
</tool_response>\n<|im_end|>
```

{% hint style="info" %}
Erinnerung: Dieses Modell unterstützt nur den Non-Thinking-Modus und generiert keine `<think></think>` Blöcke in seiner Ausgabe. Währenddessen ist das Angeben von `enable_thinking=False` nicht mehr erforderlich.
{% endhint %}

### Qwen3-Coder-30B-A3B-Instruct ausführen:

Um Inferenzgeschwindigkeiten von 6+ Tokens pro Sekunde für unser Dynamic-4-Bit-Quant zu erreichen, haben Sie mindestens **18GB einheitlichen Speicher** (kombiniertes VRAM und RAM) oder **18GB Systemspeicher** allein. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. Z. B. erfordert das UD\_Q8\_K\_XL-Quant (Vollpräzision), das 32,5GB groß ist, mindestens **33GB einheitlichen Speicher** (VRAM + RAM) oder **33GB RAM** für optimale Leistung.

**HINWEIS:** Das Modell kann mit weniger Speicher als seiner Gesamtgröße laufen, dies verlangsamt jedoch die Inferenz. Maximalspeicher wird nur für die schnellsten Geschwindigkeiten benötigt.

Da dies ein Non-Thinking-Modell ist, ist es nicht notwendig, `thinking=False` und das Modell erzeugt nicht `<think> </think>` Blöcke.

{% hint style="info" %}
Befolgen Sie die [**oben genannten Best Practices**](#recommended-settings). Sie sind dieselben wie beim 480B-Modell.
{% endhint %}

#### 🦙 Ollama: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen

1. In Ollama ausführen `Installieren Sie` falls Sie es noch nicht getan haben! Sie können nur Modelle bis zu einer Größe von 32B ausführen.

```bash
apt-get update
siehe hier
apt-get install pciutils -y
```

2. curl -fsSL <https://ollama.com/install.sh> | sh `Führen Sie das Modell aus! Beachten Sie, dass Sie`ollama serve `in einem anderen Terminal aufrufen können, wenn es fehlschlägt! Wir fügen alle unsere Fixes und vorgeschlagenen Parameter (Temperatur usw.) in` params

```bash
ollama run hf.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:UD-Q4_K_XL
```

#### :sparkles: Llama.cpp: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen

1. Hole dir die neueste `llama.cpp` auf [GitHub hier](https://github.com/ggml-org/llama.cpp). Du kannst auch den Build-Anweisungen unten folgen. Ändere `-DGGML_CUDA=ON` zu `-DGGML_CUDA=OFF` wenn du keine GPU hast oder nur CPU-Inferenz möchtest. **Für Apple Mac / Metal-Geräte**, setze `-DGGML_CUDA=OFF` dann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. Sie können direkt von HuggingFace ziehen via:

   ```bash
   ./llama.cpp/llama-cli \
       -hf unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:Q4_K_XL \
       --jinja -ngl 99 --ctx-size 32768 \
       --temp 0.7 --min-p 0.0 --top-p 0.80 --top-k 20 --repeat-penalty 1.05
   ```
3. Laden Sie das Modell herunter (nach der Installation `pip install huggingface_hub hf_transfer` ). Sie können UD\_Q4\_K\_XL oder andere quantisierte Versionen wählen. Wenn Downloads hängen bleiben, siehe [hugging-face-hub-xet-debugging](https://unsloth.ai/docs/de/grundlagen/troubleshooting-and-faqs/hugging-face-hub-xet-debugging "mention")

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    local_dir = "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    allow_patterns = ["*UD-Q4_K_XL*"],
)
```

### Qwen3-Coder-480B-A35B-Instruct ausführen:

Um Inferenzgeschwindigkeiten von 6+ Tokens pro Sekunde für unser 1-Bit-Quant zu erreichen, empfehlen wir mindestens **150GB einheitlichen Speicher** (kombiniertes VRAM und RAM) oder **150GB Systemspeicher** allein. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. Z. B. erfordert das Q2\_K\_XL-Quant, das 180GB groß ist, mindestens **180GB einheitlichen Speicher** (VRAM + RAM) oder **180GB RAM** für optimale Leistung.

**HINWEIS:** Das Modell kann mit weniger Speicher als seiner Gesamtgröße laufen, dies verlangsamt jedoch die Inferenz. Maximalspeicher wird nur für die schnellsten Geschwindigkeiten benötigt.

{% hint style="info" %}
Befolgen Sie die [**oben genannten Best Practices**](#recommended-settings). Sie sind dieselben wie beim 30B-Modell.
{% endhint %}

#### 📖 Llama.cpp: Qwen3-Coder-480B-A35B-Instruct Tutorial ausführen

Für Coder-480B-A35B werden wir speziell Llama.cpp für optimierte Inferenz und eine Fülle von Optionen verwenden.

{% hint style="success" %}
Wenn Sie eine **vollpräzise unquantisierte Version**, verwenden Sie unser `Q8_K_XL, Q8_0` oder `BF16` Versionen!
{% endhint %}

1. Hole dir die neueste `llama.cpp` auf [GitHub hier](https://github.com/ggml-org/llama.cpp). Du kannst auch den Build-Anweisungen unten folgen. Ändere `-DGGML_CUDA=ON` zu `-DGGML_CUDA=OFF` wenn du keine GPU hast oder nur CPU-Inferenz möchtest.

   ```bash
   apt-get update
   apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
   git clone https://github.com/ggml-org/llama.cpp
   cmake llama.cpp -B llama.cpp/build \
       -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
   cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
   cp llama.cpp/build/bin/llama-* llama.cpp
   ```
2. Sie können llama.cpp direkt verwenden, um das Modell herunterzuladen, aber ich empfehle normalerweise die Verwendung von `huggingface_hub` Um llama.cpp direkt zu verwenden, führen Sie aus:

   ```bash
   ./llama.cpp/llama-cli \
       -hf unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF:Q2_K_XL \
       --ctx-size 16384 \
       --n-gpu-layers 99 \
       -ot ".ffn_.*_exps.=CPU" \
       --temp 0.7 \
       --min-p 0.0 \
       --top-p 0.8 \
       --top-k 20 \
       --repeat-penalty 1.05
   ```
3. Oder laden Sie das Modell herunter via (nach der Installation `pip install huggingface_hub hf_transfer` ). Du kannst UD-Q2\_K\_XL oder andere quantisierte Versionen wählen..

   ```python
   # !pip install huggingface_hub hf_transfer
   import os
   os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # Kann manchmal Ratenbegrenzung verursachen, also auf 0 setzen, um zu deaktivieren
   from huggingface_hub import snapshot_download
   snapshot_download(
       repo_id = "unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       local_dir = "unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       allow_patterns = ["*UD-Q2_K_XL*"],
   )
   ```
4. Führen Sie das Modell im Konversationsmodus aus und probieren Sie beliebige Prompts.
5. Bearbeiten `--threads -1` --threads 32 `--ctx-size` 262114 für Kontextlänge, `--n-gpu-layers 99` --n-gpu-layers 2

{% hint style="success" %}
Verwende `-ot ".ffn_.*_exps.=CPU"` um alle MoE-Schichten auf die CPU auszulagern! Dies ermöglicht es effektiv, alle Nicht-MoE-Schichten auf 1 GPU unterzubringen und verbessert die Generierungsgeschwindigkeiten. Sie können den Regex-Ausdruck anpassen, um mehr Schichten zu verschieben, wenn Sie mehr GPU-Kapazität haben. Mehr Optionen werden diskutiert [hier](#improving-generation-speed).
{% endhint %}

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/UD-Q2_K_XL/Qwen3-Coder-480B-A35B-Instruct-UD-Q2_K_XL-00001-of-00004.gguf \
    --ctx-size 16384 \
    --n-gpu-layers 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --temp 0.7 \
    --min-p 0.0 \
    --top-p 0.8 \
    --top-k 20 \
    --repeat-penalty 1.05
```

{% endcode %}

{% hint style="success" %}
Vergessen Sie auch nicht das neue Qwen3-Update. Führen Sie [**Qwen3-235B-A22B-Instruct-2507**](https://unsloth.ai/docs/de/modelle/tutorials/qwen3-next) lokal mit llama.cpp aus.
{% endhint %}

#### :tools: "content": \[{"type": "text", "text": "Erstelle eine Fibonacci-Funktion in Python und finde fib(20)."}],

Wenn Sie mehr VRAM haben, können Sie versuchen, mehr MoE-Schichten auszulagern oder ganze Schichten selbst auszulagern.

Normalerweise, `-ot ".ffn_.*_exps.=CPU"` lagert alle MoE-Schichten auf die CPU aus! Dies ermöglicht effektiv, alle Nicht-MoE-Schichten auf 1 GPU unterzubringen und verbessert die Generationsgeschwindigkeit. Sie können den Regex-Ausdruck anpassen, um mehr Schichten unterzubringen, wenn Sie mehr GPU-Kapazität haben.

Wenn Sie etwas mehr GPU-Speicher haben, versuchen Sie `-ot ".ffn_(up|down)_exps.=CPU"` Dies lagert Up- und Down-Projektions-MoE-Schichten aus.

Versuchen Sie `-ot ".ffn_(up)_exps.=CPU"` wenn Sie noch mehr GPU-Speicher haben. Dies lagert nur Up-Projektions-MoE-Schichten aus.

Sie können auch den Regex anpassen, zum Beispiel `-ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"` bedeutet, Gate-, Up- und Down-MoE-Schichten auszulagern, aber nur ab der 6. Schicht.

Die [neueste llama.cpp-Version](https://github.com/ggml-org/llama.cpp/pull/14363) führt außerdem einen Hochdurchsatzmodus ein. Verwenden Sie `llama-parallel`. Lesen Sie mehr darüber [hier](https://github.com/ggml-org/llama.cpp/tree/master/examples/parallel). Sie können auch **den KV-Cache z. B. auf 4 Bit quantisieren,** den KV-Cache auf 4 Bit quantisieren

#### :triangular\_ruler:Wie man langen Kontext (256K bis 1M) handhabt

Um längeren Kontext unterzubringen, können Sie <mark style="background-color:green;">**KV-Cache-Quantisierung**</mark> verwenden, um die K- und V-Caches auf niedrigere Bits zu quantisieren. Dies kann auch die Generationsgeschwindigkeit erhöhen aufgrund reduzierter RAM-/VRAM-Datenbewegungen. Die erlaubten Optionen für K-Quantisierung (Standard ist `f16`) umfassen die untenstehenden.

`--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1`

Sie sollten die `_1` Varianten für etwas erhöhte Genauigkeit verwenden, obwohl sie etwas langsamer sind. Zum Beispiel `q4_1, q5_1`

Sie können auch den V-Cache quantisieren, aber Sie müssen <mark style="background-color:yellow;">**llama.cpp mit Flash Attention kompilieren**</mark> Unterstützung via `-DGGML_CUDA_FA_ALL_QUANTS=ON`, und verwenden `--flash-attn` um es zu aktivieren.

Wir haben außerdem 1-Million-Kontextlängen-GGUFs über YaRN-Skalierung hochgeladen [hier](https://app.gitbook.com/o/HpyELzcNe0topgVLGCZY/s/xhOjnexMCB3dmuQFQ2Zq/).

## :toolbox: Tool-Calling-Fixes

Es ist uns gelungen, Tool-Calling zu beheben via `llama.cpp --jinja` speziell für das Serving über `llama-server`! Wenn Sie unsere 30B-A3B Quants herunterladen, müssen Sie sich keine Sorgen machen, da diese bereits unsere Fixes enthalten. Für das 480B-A35B-Modell bitte:

1. Laden Sie die erste Datei unter <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/tree/main/UD-Q2\\_K\\_XL> für UD-Q2\_K\_XL herunter und ersetzen Sie Ihre aktuelle Datei
2. Verwende `snapshot_download` wie gewohnt wie in <https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial>, die die alten Dateien automatisch überschreibt
3. Verwenden Sie die neue Chat-Vorlage über `--chat-template-file`. Siehe [GGUF Chat-Vorlage](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF?chat_template=default) oder [chat\_template.jinja](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct/raw/main/chat_template.jinja)
4. Als Extra haben wir außerdem eine einzelne 150GB UD-IQ1\_M Datei (damit Ollama funktioniert) unter <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/blob/main/Qwen3-Coder-480B-A35B-Instruct-UD-IQ1\\_M.gguf> bereitgestellt

Dies sollte Probleme wie lösen: <https://github.com/ggml-org/llama.cpp/issues/14915>

### Tool-Calling verwenden

Um die Prompts für Tool-Calling zu formatieren, zeigen wir es mit einem Beispiel.

Ich habe eine Python-Funktion namens erstellt `get_current_temperature` die eine Funktion ist, die die aktuelle Temperatur für einen Ort ermitteln soll. Für jetzt haben wir eine Platzhalterfunktion erstellt, die immer 21,6 Grad Celsius zurückgeben wird. Sie sollten dies in eine echte Funktion ändern!!

{% code overflow="wrap" %}

```python
def get_current_temperature(location: str, unit: str = "celsius"):
    """Hole die aktuelle Temperatur an einem Ort.

    Argumente:
        location: Der Ort, für den die Temperatur ermittelt werden soll, im Format "Stadt, Bundesstaat, Land".
        unit: Die Einheit, in der die Temperatur zurückgegeben werden soll. Standard ist "celsius". (Auswahl: ["celsius", "fahrenheit"])

    Gibt zurück:
        die Temperatur, den Ort und die Einheit in einem dict
    """
    return {
        "temperature": 26.1, # VORKONFIGURIERT -> Sie ändern dies!
        "location": location,
        "unit": unit,
    }
```

{% endcode %}

Verwenden Sie dann den Tokenizer, um den gesamten Prompt zu erstellen:

{% code overflow="wrap" %}

```python
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("unsloth/Qwen3-Coder-480B-A35B-Instruct")

messages = [
    {'role': 'user', 'content': "What's the temperature in San Francisco now? How about tomorrow?"},
    {'content': "", 'role': 'assistant', 'function_call': None, 'tool_calls': [
        {'id': 'ID', 'function': {'arguments': {"location": "San Francisco, CA, USA"}, 'name': 'get_current_temperature'}, 'type': 'function'},
    ]},
    {'role': 'tool', 'content': '{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}', 'tool_call_id': 'ID'},
]

prompt = tokenizer.apply_chat_template(messages, tokenize = False)
```

{% endcode %}

## :bulb:Leistungsbenchmarks

{% hint style="info" %}
Diese offiziellen Benchmarks gelten für den vollständigen BF16-Checkpoint. Um diesen zu verwenden, nutzen Sie einfach die `Q8_K_XL, Q8_0, BF16` Checkpoints, die wir hochgeladen haben – Sie können weiterhin Tricks wie MoE-Offloading auch für diese Versionen verwenden!
{% endhint %}

Hier sind die Benchmarks für das 480B-Modell:

#### Agentisches Codieren

<table data-full-width="true"><thead><tr><th>Benchmark</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3-0324</th><th>Claude 4 Sonnet</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>Terminal‑Bench</td><td><strong>37.5</strong></td><td>30.0</td><td>2.5</td><td>35.5</td><td>25.3</td></tr><tr><td>SWE‑bench Verifiziert mit OpenHands (500 Runden)</td><td><strong>69.6</strong></td><td>–</td><td>–</td><td>70.4</td><td>–</td></tr><tr><td>SWE‑bench Verifiziert mit OpenHands (100 Runden)</td><td><strong>67.0</strong></td><td>65.4</td><td>38.8</td><td>68.0</td><td>48.6</td></tr><tr><td>SWE‑bench Verifiziert mit Privatem Scaffolding</td><td>–</td><td>65.8</td><td>–</td><td>72.7</td><td>63.8</td></tr><tr><td>SWE‑bench Live</td><td><strong>26.3</strong></td><td>22.3</td><td>13.0</td><td>27.7</td><td>–</td></tr><tr><td>SWE‑bench Mehrsprachig</td><td><strong>54.7</strong></td><td>47.3</td><td>13.0</td><td>53.3</td><td>31.5</td></tr><tr><td>Multi‑SWE‑bench mini</td><td><strong>25.8</strong></td><td>19.8</td><td>7.5</td><td>24.8</td><td>–</td></tr><tr><td>Multi‑SWE‑bench flash</td><td><strong>27.0</strong></td><td>20.7</td><td>–</td><td>25.0</td><td>–</td></tr><tr><td>Aider‑Polyglot</td><td><strong>61.8</strong></td><td>60.0</td><td>56.9</td><td>56.4</td><td>52.4</td></tr><tr><td>Spider2</td><td><strong>31.1</strong></td><td>25.2</td><td>12.8</td><td>31.1</td><td>16.5</td></tr></tbody></table>

#### Agentic Browser Use

<table data-full-width="true"><thead><tr><th>Benchmark</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>WebArena</td><td><strong>49.9</strong></td><td>47.4</td><td>40.0</td><td>51.1</td><td>44.3</td></tr><tr><td>Mind2Web</td><td><strong>55.8</strong></td><td>42.7</td><td>36.0</td><td>47.4</td><td>49.6</td></tr></tbody></table>

#### Agentic Tool -Use

<table data-full-width="true"><thead><tr><th>Benchmark</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>BFCL‑v3</td><td><strong>68.7</strong></td><td>65.2</td><td>56.9</td><td>73.3</td><td>62.9</td></tr><tr><td>TAU‑Bench Retail</td><td><strong>77.5</strong></td><td>70.7</td><td>59.1</td><td>80.5</td><td>–</td></tr><tr><td>TAU‑Bench Airline</td><td><strong>60.0</strong></td><td>53.5</td><td>40.0</td><td>60.0</td><td>–</td></tr></tbody></table>
