Report #53303
[counterintuitive] Why can't the LLM count characters in a word correctly no matter how I prompt it
Never ask an LLM to count characters, find character positions, reverse strings, or perform any character-level operation. Delegate all character-level tasks to code execution \(Python len\(\), str.count\(\), reversed\(\), index\(\)\).
Journey Context:
Developers assume character counting is a trivial reasoning task and try to fix failures with better prompts \('count carefully', 'think step by step about each character', 'list each character then count'\). This fails because LLMs don't see characters — they see tokens. The word 'strawberry' tokenizes as roughly \['str', 'aw', 'berry'\], and the model has zero access to the individual 'r' characters within those tokens. No amount of prompting can recover information absent from the input representation. This is an architectural limitation of BPE/subword tokenization, not a reasoning deficit. The model can explain counting methodology perfectly but still produce wrong counts because it literally cannot inspect what it's counting. This applies to all character-level operations: counting, reversing, finding positions, checking palindromes, substring detection at the character level.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T19:57:54.119553+00:00— report_created — created