AgentryBook a call
← All posts

Why Your Local LLM Feels Dumber Than It Is

Agentry#aiagents#localllm#llmdeployment#promptengineering
Why Your Local LLM Feels Dumber Than It Is

Running a local LLM and wondering why it keeps giving you shallow, confused, or weirdly short answers? The model probably is not the problem.

Most local LLM underperformance comes from a handful of fixable configuration mistakes that quietly cap what the model can do — and they are easy to miss if you have never hit them before.

The context window is almost certainly set too low

This is the most common culprit. Many local inference setups default to a context window of 2048 or 4096 tokens, even when the underlying model supports 32k, 64k, or more. At 2k tokens, the model starts forgetting the beginning of a conversation before you have finished explaining the problem.

For agentic work — where the model needs to hold a task description, tool results, memory of past steps, and a growing scratchpad — a short context window is fatal. The model is not reasoning poorly; it literally cannot see the full picture.

Check your n_ctx parameter in llama.cpp, Ollama, or whatever runner you are using. Set it to the model's actual maximum. RAM use will go up, but accuracy will often jump noticeably.

Quantization level matters more than model size

Dropping from a Q8 to a Q4 quantization cuts memory use roughly in half — but it also strips precision from the weights. For simple Q&A, Q4 is usually fine. For multi-step reasoning, tool-call parsing, or structured JSON output, Q4 models visibly struggle with tasks that Q8 handles cleanly.

The practical rule: if you are running agents that need to reliably emit structured output or chain logic across several steps, stay at Q5 or Q6 minimum. A smaller model at higher quantization often beats a larger model heavily compressed.

The system prompt and stop tokens are probably wrong

Local models are trained with specific prompt formats — Llama 3 expects its <|begin_of_text|> and <|eot_id|> tokens, Mistral has its own [INST] structure, Phi-3 has another. Feed the wrong format and the model will partially comply, hallucinate structure, or just trail off mid-sentence.

Most runners handle this automatically if you set the correct template, but it is easy to override accidentally. If your model keeps not finishing responses or emits garbage at the end, mismatched stop tokens are the first thing to check.

For agent builds specifically, this matters a lot. A tool-call schema that the model half-parses because the prompt format is slightly off will silently produce malformed JSON that crashes your orchestration layer hours into a run.

Temperature and sampling settings are tuned for chat, not agents

Default temperature settings on most local runners (0.7 to 0.9) are reasonable for creative or conversational use. They are too high for deterministic agent tasks like data extraction, classification, or structured output generation.

For agentic pipelines, temperature in the 0.0 to 0.3 range produces more consistent, parseable output. Pair that with a lower top_p (0.85 or so) and you reduce the variance that breaks downstream parsing. If you are building an agent that routes between tools or emits JSON, treat the model more like a function and tune accordingly.

If you are trying to figure out which of your business workflows would actually benefit from this kind of agent setup, our free AI Opportunity Audit analyzes your website and surfaces your three highest-impact automation candidates — useful before you spend time wiring anything up.

Inference speed is tanking perceived quality too

This one is psychological but real. When a local model generates at 3-5 tokens per second, you are more likely to cut responses short, interrupt, or send a follow-up before the model finishes reasoning. Streamed output at low token rates also makes it harder to read the model's chain of thought, so you miss where it went wrong.

If speed is the bottleneck, GPU offloading layers is the lever to pull. In llama.cpp, -ngl 99 offloads all layers to GPU. Even partial offloading (half the layers) often doubles generation speed on a mid-range card, which makes the whole system feel dramatically sharper.

The model is often not the ceiling

Before upgrading to a larger or newer local model, run through this list: context window set to max, quantization at Q5 or above, correct prompt template and stop tokens, temperature tuned for the task type, and enough GPU offloading to hit a reasonable token rate. Most local LLM setups have at least two of these misconfigured at once.

The gap between a poorly configured good model and a well-configured good model is bigger than most people expect — and fixing configuration takes an afternoon, not a hardware upgrade.

Ready to put this to work

If this is the kind of infrastructure thinking you want applied to an actual agent build for your business, book a call and we can talk through what a production setup would look like for your use case.

Want an agent like this built for your business?

Agentry ships production AI agents in weeks. See where they'd help you first with the free AI Opportunity Audit or the other tools, then book a call to scope it.

Book a call →