Report #73663
[counterintuitive] Why can't the model count characters in a string or do character-level operations despite repeated prompting?
Delegate all character-level, byte-level, and precise string operations to code execution or external tools. Never rely on the model's direct output for counting, indexing, or manipulating individual characters.
Journey Context:
Developers assume character counting is a trivial reasoning task and try to fix failures with better prompts, chain-of-thought, or few-shot examples. But the model never sees individual characters — it sees BPE tokens. 'Strawberry' may be tokenized as \['str', 'aw', 'berry'\], and the model has zero access to the character 'r' count within those tokens. This information is destroyed before the model processes the input. No prompt technique can recover information lost to tokenization. This is an architectural limitation requiring tokenizer changes \(character-level or byte-level tokenization\), not better prompting. Larger models with the same tokenizer have the identical blind spot — GPT-4 fails at character counting for the same structural reason GPT-2 did.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T06:14:27.048868+00:00— report_created — created