Michael Limberger
Need me? Email mike@limberger.ca
AI
Choosing And Pulling A Model
Choosing and pulling a model
Not every 14B model is equal for OpenClaw. The agent depends on tool calling (function calling): shell commands, file reads, API calls, and multi-step actions. A model that writes pretty prose but cannot emit reliable tool calls will stall the workflow.
The 14B tier, ranked
Here is how common options behave with OpenClaw-style agent work:
qwen2.5-coder:14b
Top recommendation. About 9.0GB download. 32K context window.
Apache 2.0. Best tool-calling support at this size for OpenClaw
local setups. Built for code, so structured output and function
signatures come naturally.
qwen3:14b
Newer Qwen generation. Thinking mode. Large native context.
Strong general model. Good tools, but the coder variant is still
better for OpenClaw's structured agent workflows.
qwen2.5:14b
Strong general model, 32K context. Slightly weaker tool calling
than the coder build, but usable if you want a more conversational
assistant that can still use tools.
phi4:14b
Microsoft model. Good prose, less battle-tested with OpenClaw's
tool-call format. Fine to experiment with; less reliable for demos.
deepseek-r1:14b
The trap. Excellent reasoning benchmarks, but no tool calling.
OpenClaw needs structured function calls. Without them the agent
describes actions instead of executing them.
Do not use DeepSeek-R1 for OpenClaw.
+----------------------------------------------------------+ | DeepSeek-R1 14B is a trap. | | Benchmarks great. No tool calling. Useless for agents. | | Use qwen2.5-coder:14b instead. | +----------------------------------------------------------+
Pull the model
This tutorial uses qwen2.5-coder:14b.
Show me
ollama pull qwen2.5-coder:14b
About 9GB. Rough download times:
100 Mbps connection: roughly 12-15 minutes
250 Mbps connection: roughly 5-6 minutes
500 Mbps connection: roughly 2-3 minutes
For a group session, pull at home the night before. Do not start a 9GB download on conference Wi-Fi with thirty people. If the venue allows it, bring pre-loaded USB drives.
Talk to it once
After the pull, smoke-test:
Show me
ollama run qwen2.5-coder:14b --verbose "Write a Python function to reverse a string"
You should get a reply.
--verbose prints tokens per second afterward.
Rough generation speeds by chip:
M1 base: 8-12 tokens per second
M2/M3 Pro: 15-22 tokens per second
M3/M4 Max: 25-40 tokens per second
The first reply is slower while the model loads into memory. Later turns are faster.
Is the GPU doing the work
While the model is loaded:
Show me
ollama ps
Check the Processor column. You want roughly 100% GPU. 100% CPU, or a heavy CPU split, usually means the model does not fit and is offloading. On 16GB, close browsers and other apps, then try again.
The HTTP door
OpenClaw talks to Ollama over HTTP, not the chat TUI. Verify the API:
Show me
curl http://localhost:11434/v1/models
You should see JSON that includes your model. Then test a chat completion:
Show me
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen2.5-coder:14b","messages":[{"role":"user","content":"Hello!"}]}'
A JSON reply means the API is up.
If either call fails, start Ollama with the app or ollama serve.
What quantization means
Q4_K_M is a quantization tag: fewer bits per weight so the model fits in memory. Full 16-bit weights for a 14B model would need about 28GB just for parameters. Q4_K_M lands around 4.5 bits per parameter with surprisingly little quality loss for most agent tasks.
Higher quants (Q5_K_M, Q6_K, Q8_0) keep more quality and use more RAM. Lower quants (Q3_K_M, Q2_K) save memory and start to degrade more noticeably. If you have 32GB or more and want a quality bump, try a higher quant of the same model family. For this tutorial, stick with the default Q4_K_M pull above.
Next: install OpenClaw itself.