Kembali ke panduan
Model·1 Oktober 2026·Diperbarui 9 Oktober 2026·Baca 8 menit

Model lokal terbaik untuk OpenClaw: gemma4, gpt-oss:20b, dan qwen3-coder:30b diukur pada empat tugas agen

Empat tugas agen yang dinilai, masing-masing tiga run, workspace baru setiap kali: OpenClaw 2026.9.7 dengan Ollama 0.35.0 pada M3 Max 128 GB. Default yang disarankan, gemma4, mengungguli kedua model yang lebih besar — dan model coding gagal pada format tool-call, bukan pada kode.

Terakhir ditinjau pada .

Pada M3 Max 128 GB yang menjalankan OpenClaw 2026.9.7 dengan Ollama 0.35.0, gemma4 — model yang disarankan oleh konfigurasi Ollama bawaan OpenClaw — lulus dalam 12 dari 12 pengujian yang dinilai untuk empat tugas agen; gpt-oss:20b lulus 11 dari 12 dengan hampir tiga kali lebih banyak pemanggilan alat yang gagal; dan qwen3-coder:30b, pilihan coding yang umum, lulus 2 dari 12 karena pemanggilan alatnya terus rusak di parser Ollama. Kami menjalankan setiap model tiga kali pada setiap tugas di workspace baru, menilai hasilnya dengan skrip, dan mencatat jumlah pemanggilan alat serta token yang dilaporkan oleh OpenClaw sendiri, beserta log server Ollama. Diukur pada 1 Oktober 2026.

Untuk biaya OpenClaw sendiri dan biaya model terhosting sebagai alternatif, lihat harga OpenClaw; untuk menjalankan model lokal dengan fallback API, lihat beberapa agen dan model di OpenClaw.

Yang dijalankan

MesinApple M3 Max, memori terpadu 128 GB
OpenClaw2026.9.7 dari npm, Node 24.21.0, openclaw agent --local --json, satu giliran per pengujian
OllamaBiner rilis v0.35.0, API native (tanpa /v1)
Modelgemma4:latest — 7.5B, Q4_K_M, 6.6 GB di disk; gpt-oss:20b — 20.9B, MXFP4, 13.8 GB; qwen3-coder:30b — mixture-of-experts 30.5B, Q4_K_M, 18.6 GB
KonteksOpenClaw contextWindow 32.768 untuk ketiganya; Ollama memuat gemma4 dan gpt-oss pada 131.072 serta qwen3-coder pada 262.144
Eksekusi alatSandbox Docker OpenClaw, workspace dipasang dengan akses baca-tulis
Pengujian4 tugas × 3 pengulangan × 3 model = 36, masing-masing di workspace baru dengan status OpenClaw baru

Empat tugas

TugasYang harus dilakukan agenLulus jika
BacaBaca log layanan 301 baris dan sebutkan nama layanan pada satu-satunya baris ERROR di dalamnyaJawaban memuat nama layanan yang benar
PerbaikanJalankan file pengujian unit, perbaiki bug dalam modul yang diujinya, jalankan ulang — tanpa menyentuh pengujianPengujian keluar dengan 0 dan file pengujian identik byte demi byte
HitungHitung baris data dalam lima file CSV dan tulis jumlah masing-masing ke counts.jsoncounts.json sama dengan objek yang diharapkan
Perbaikan dua fileDua bug independen dalam dua modul menyebabkan tiga pengujian gagal; perbaiki keduanya tanpa menyentuh pengujianSemua pengujian keluar dengan 0 dan file pengujian identik byte demi byte

Hasil

ModelTugasLulusWaktu medianPemanggilan alat medianPemanggilan alat gagal (3 pengujian)Token median masuk / keluar
gemma4:latestt1-read3/350,2 dtk1021.438 / 19
gemma4:latestt2-fix3/347,5 dtk4013.387 / 866
gemma4:latestt3-count3/337,9 dtk7113.073 / 513
gemma4:latestt4-multi3/375,1 dtk10616.417 / 2.441
gpt-oss:20bt1-read3/338,7 dtk3516.971 / 508
gpt-oss:20bt2-fix3/354,2 dtk7612.409 / 1.193
gpt-oss:20bt3-count2/376,5 dtk10513.247 / 1.713
gpt-oss:20bt4-multi3/365,1 dtk11313.065 / 1.380
qwen3-coder:30bt1-read0/325,1 dtk008.915 / 38
qwen3-coder:30bt2-fix0/334,8 dtk309.435 / 163
qwen3-coder:30bt3-count2/336,9 dtk309.503 / 279
qwen3-coder:30bt4-multi0/342,5 dtk509.992 / 243

Waktu adalah waktu nyata per pengujian, termasuk sekitar lima hingga tujuh detik untuk memulai OpenClaw. "Token masuk" adalah input yang tidak di-cache sebagaimana dicatat OpenClaw; konteks yang dikirim ulang dari cache berada di luar itu dan dihitung dalam bagian biaya di bawah. Kolom pemanggilan alat gagal menghitung kegagalan yang dicatat OpenClaw; kegagalan qwen3-coder terjadi sebelum pemanggilan mencapai OpenClaw, sehingga ditampilkan sebagai nol di sana dan dijelaskan di bawah.

Makna angka-angka ini

  • gemma4 dan gpt-oss:20b sama-sama dapat digunakan untuk tugas agen singkat. 23 dari 24 pengujian keduanya lulus, termasuk perbaikan dua file, yang memerlukan pembacaan beberapa modul, pengeditan dua di antaranya, dan menjalankan ulang pengujian.
  • gemma4 menggunakan alat dengan lebih bersih. Pada tugas baca, model ini selalu melakukan tepat satu pemanggilan alat; gpt-oss melakukan tiga, dua di antaranya biasanya gagal sebelum membaca file. Dalam dua belas pengujian secara keseluruhan, gpt-oss memiliki 19 pemanggilan alat gagal dibandingkan 7 milik gemma4, dan rata-rata melakukan 9,1 giliran asisten per tugas dibandingkan 6,8 milik gemma4.
  • Satu-satunya kegagalan adalah gpt-oss pada tugas hitung: setelah tiga belas pemanggilan alat, model tersebut menulis counts.json yang formatnya rusak dan mengakhiri giliran tanpa jawaban.
  • Kecepatan bukan pembeda di sini. Median 53 dtk untuk gemma4 dan 54 dtk untuk gpt-oss di seluruh pengujian; pengujian tunggal paling lambat adalah perbaikan dua file gemma4 selama 133 dtk, dengan tujuh belas pemanggilan alat. Pengujian qwen3-coder lebih singkat hanya karena gagal lebih awal.
  • Model yang lebih besar tidak meningkatkan akurasi pada tugas-tugas ini. gpt-oss:20b memiliki jumlah parameter hampir tiga kali lipat dari gemma4, dan qwen3-coder:30b, yang dibuat untuk kode, mendapat skor terendah dari ketiganya.

Dua belas pengujian per model cukup untuk melihat pola pada tugas-tugas ini, tetapi tidak cukup untuk menentukan peringkat model secara umum. Tugas panjang, basis kode yang lebih besar, dan kuantisasi lain tidak diuji.

Mengapa qwen3-coder:30b gagal

Bukan pada coding-nya. Dari sepuluh pengujian yang gagal:

  • Lima berakhir di parser Ollama. qwen3-coder menulis pemanggilan alat sebagai XML, dan ketika sebuah argumen berisi kode, model menutup elemen <parameter> dengan </function>. Log server Ollama 0.35.0 mencatat "qwen tool call parsing failed … XML syntax error … element <parameter> closed by </function>", dan OpenClaw mengakhiri giliran dengan "Agent run failed".
  • Empat tidak pernah melakukan pemanggilan. Jawaban mengumumkan langkah berikutnya lalu mencetak </tool_call> tanpa pembungkus sebagai teks, tanpa sesuatu yang dapat diurai Ollama sebagai pemanggilan; giliran berakhir di sana. Inilah gejala yang dalam dokumentasi OpenClaw dikaitkan dengan URL /v1 — di sini gejala tersebut terjadi pada API native.
  • Satu memberikan jawaban yang salah: model menghitung baris header CSV sebagai baris data.

Parser tersebut milik Ollama, jadi ini adalah hasil untuk Ollama 0.35.0, bukan putusan atas modelnya. Jika Anda menjalankan qwen3-coder dengan OpenClaw, pantau log ollama serve untuk "qwen tool call parsing failed" sebelum menyalahkan model, dan uji ulang setelah Ollama diperbarui.

Konfigurasi yang penting

  • URL Ollama native. Dokumentasi OpenClaw menyatakan bahwa URL kompatibel dengan OpenAI /v1 "merusak pemanggilan alat dan model dapat mengeluarkan JSON pemanggilan alat mentah sebagai teks biasa"; pengujian menggunakan baseUrl tanpa /v1, bersama api: "ollama".
  • Tetapkan contextWindow pada entri yang ditulis manual. Dalam pengujian singkat, entri model eksplisit tanpa pengaturan tersebut menghasilkan konteks 200.000 token; konfigurasi Ollama bawaan OpenClaw menulis 32.768 untuk model lokal, dan itulah yang digunakan pengujian ini.
  • Konteks Ollama terpisah. Ollama 0.35.0 memuat gemma4 dan gpt-oss pada 131.072 token serta qwen3-coder pada 262.144 — 45.3 GB dalam memori — terlepas dari 32.768 milik OpenClaw; hal itulah, bukan anggaran OpenClaw, yang menentukan memori.
  • Sandbox shell. Model lokal yang menjalankan perintah shell di mesin Anda adalah risiko sebenarnya di sini. Dengan sandbox.mode: "all", exec berjalan dalam image Docker OpenClaw dengan hanya workspace yang dipasang; image tersebut dibuat sekali menggunakan perintah docker build dalam dokumentasi sandbox OpenClaw.
OpenClaw 2026.9.7 + Ollama 0.35.0 — divalidasi dengan openclaw config validate
// ~/.openclaw/openclaw.json — the runs used one model per config; the
// fallbacks line shows the pattern and was not part of the measured runs
{
  models: { providers: { ollama: {
    apiKey: "ollama-local",
    baseUrl: "http://127.0.0.1:11434",   // native Ollama URL — no /v1
    api: "ollama",
    timeoutSeconds: 600,
    models: [
      { id: "gemma4:latest", name: "gemma4:latest", contextWindow: 32768, maxTokens: 8192,
        params: { keep_alive: "30m" } },
      { id: "gpt-oss:20b",   name: "gpt-oss:20b",   contextWindow: 32768, maxTokens: 8192,
        params: { keep_alive: "30m" } },
    ],
  } } },
  agents: { defaults: {
    model: { primary: "ollama/gemma4:latest", fallbacks: ["ollama/gpt-oss:20b"] },
    sandbox: { mode: "all", workspaceAccess: "rw" },   // shell runs in Docker
  } },
  tools: { exec: { mode: "full" } },
}

Biaya lokal

Model lokal menukar tagihan per token dengan waktu, disk, dan listrik. Per pengujian, OpenClaw mencatat sekitar 16.415 token input yang tidak di-cache, 78.469 token konteks yang dikirim ulang dari cache, dan 1.142 token output untuk gemma4, serta 13.761, 88.688, dan 1.192 untuk gpt-oss. Sebagai perhitungan kasar — tokenizer berbeda antar-model — jumlah yang sama pada tarif Kunavo Claude Haiku 4.5 ($0,70 input, $0,07 cache, $3,50 output per juta) menjadi sekitar $0,021 dan $0,020 per pengujian. Daya tidak diukur; listrik per pengujian adalah watt × detik ÷ 3.600.000 × harga Anda per kWh.

Pola praktisnya adalah menggunakan model lokal sebagai utama dengan fallback terhosting untuk giliran yang gagal ditangani model lokal. OpenClaw menerima daftar fallbacks per agen; kunci Kunavo berfungsi sebagai provider yang kompatibel dengan OpenAI di samping Ollama, dengan penagihan per token dari saldo prabayar. Tidak seorang pun di Kunavo pernah menjalankan OpenClaw terhadap endpoint-nya — pengujian ini sepenuhnya lokal.

Pertanyaan umum

Apa model lokal terbaik untuk OpenClaw?

Dari tiga model yang kami ukur, gemma4 — model Ollama yang disarankan oleh OpenClaw sendiri. Pada M3 Max dengan 128 GB, yang menjalankan OpenClaw 2026.9.7 dan Ollama 0.35.0, gemma4 (7.5B, Q4_K_M) lulus seluruh 12 pengujian yang dinilai pada empat tugas; gpt-oss:20b (20.9B, MXFP4) lulus 11 dari 12 pengujian dengan 19 panggilan alat yang gagal, dibandingkan dengan 7 pada gemma4; qwen3-coder:30b lulus 2 dari 12 pengujian karena panggilan alatnya terus gagal diproses oleh parser Ollama. Ini adalah hasil pengujian tiga model pada tugas-tugas singkat, bukan peringkat semua model lokal.

Bisakah OpenClaw berjalan sepenuhnya offline dengan Ollama?

Ya untuk pemanggilan model: dengan provider diarahkan ke host Ollama lokal, setiap permintaan model dalam pengujian ini dikirim ke 127.0.0.1. Gunakan URL native, http://127.0.0.1:11434, bukan URL yang kompatibel dengan OpenAI /v1 — dokumentasi Ollama untuk OpenClaw menyatakan bahwa /v1 merusak pemanggilan alat dan dapat membuat model mencetak JSON pemanggilan alat mentah sebagai teks. Skill atau alat yang mengakses internet tetap memerlukannya, dan image sandbox Docker OpenClaw harus dibuat sekali (tidak diunduh secara otomatis).

Berapa banyak memori yang dibutuhkan model OpenClaw lokal?

Di disk, gemma4 berukuran 6.6 GB, gpt-oss:20b 13.8 GB, dan qwen3-coder:30b 18.6 GB. Saat dimuat, Ollama melaporkan 13.7 GB untuk gpt-oss dan 45.3 GB untuk qwen3-coder, karena Ollama 0.35.0 menentukan ukuran konteks sendiri — 131.072 token untuk gemma4 dan gpt-oss, 262.144 untuk qwen3-coder — terlepas dari 32.768 yang diberikan kepada OpenClaw. Pada Mac 128 GB semuanya muat; pada mesin 16 atau 32 GB tidak akan muat tanpa konteks yang lebih kecil. Mesin yang lebih kecil tidak diuji.

Apakah model lokal gratis dibandingkan dengan API?

Not free, just billed differently: you pay in time, disk and electricity instead of per token. Each run here used about 95,000–105,000 tokens counting OpenClaw's re-sent context — on a metered API at Claude Haiku 4.5 rates that would be roughly $0,021 a run, as rough arithmetic across different tokenizers. A local run took about 54 seconds; power draw was not measured, so the electricity side is a formula: watts × seconds ÷ 3.600.000 × your price per kWh.

Mengapa qwen3-coder gagal di OpenClaw dengan Ollama?

Dalam pengujian kami, penyebabnya adalah format pemanggilan alat, bukan kodenya. qwen3-coder menulis pemanggilan alat sebagai XML, dan pada Ollama 0.35.0 lima dari dua belas pengujiannya berakhir dengan log layanan Ollama yang melaporkan "qwen tool call parsing failed" — kesalahan sintaks XML, elemen <parameter> ditutup oleh </function> — setelah itu OpenClaw berhenti dengan "Agent run failed". Empat pengujian lainnya mencetak </tool_call> tanpa pembungkus sebagai teks, tanpa pemanggilan yang dapat diurai Ollama, sehingga tidak ada yang berjalan. Periksa log layanan untuk peringatan tersebut sebelum menyalahkan model, dan uji ulang pada Ollama yang lebih baru: parser-nya milik Ollama, dan hasil ini khusus untuk 0.35.0.

Mengapa menetapkan contextWindow saat menambahkan model Ollama ke OpenClaw secara manual?

Karena entri model eksplisit tanpa pengaturan tersebut menghasilkan konteks 200.000 token dalam pengujian singkat kami — jauh melampaui kemampuan sebagian besar model lokal — sedangkan konfigurasi Ollama bawaan OpenClaw menulis 32.768 untuk model lokal. Menetapkan contextWindow (dan maxTokens) menjaga anggaran pemadatan OpenClaw tetap realistis. Ini tidak mengubah num_ctx milik Ollama: di sini Ollama tetap memuat model pada 131.072.

Dijalankan pada 1 Oktober 2026 di Apple M3 Max (128 GB): OpenClaw 2026.9.7 (npm, Node 24.21.0), Ollama v0.35.0 (biner rilis), gemma4:latest, gpt-oss:20b, dan qwen3-coder:30b diunduh dari registry Ollama dan diverifikasi dengan sha256. Masing-masing dari 36 pengujian menggunakan workspace baru dan status OpenClaw baru, exec dalam sandbox Docker OpenClaw, serta grader berbasis skrip; pemanggilan alat dan jumlah token adalah output JSON milik OpenClaw sendiri. Fixture tugas, grader, dan skrip adapter dipublikasikan bersama bukti halaman ini. Tidak diukur: konsumsi daya, tugas panjang, kuantisasi lain, atau mesin yang lebih kecil.