Report #93705
[counterintuitive] Why can't the model count characters in a string despite explicit instructions?
Never ask an LLM to count characters, find substring positions, or perform any character-level operation. Delegate all character-level tasks to code execution \(Python len\(\), str.count\(\), index\(\), etc.\).
Journey Context:
LLMs receive text as tokens, not characters. The string 'Strawberry' may be tokenized as \['Str', 'aw', 'berry'\] — the model never sees individual 'r' characters at all. No prompt engineering can recover information that was destroyed at the tokenizer level before the model ever processes it. This is why even frontier models fail at 'how many r's in strawberry': it is perceptual blindness, not a reasoning failure. Developers waste hours refining prompts for what is an architectural impossibility. The tokenizer is not part of the model's trainable parameters; it is a fixed preprocessing step.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T15:52:10.744611+00:00— report_created — created