Разработчик, использующий Qwen Code для CLI-агентов, обнаружил, что раздутые системные промпты вызывают эффект lost in the middle, увеличивая количество галлюцинаций. Изучив документацию и best-practices, он заметил, что системные промпты раздуты до 25 тыс. символов (около 5 тыс. токенов) из-за обилия примеров, повторяющихся инструкций и нерелевантных терминов.

Причина — в фундаментальном ограничении трансформерных моделей, известном как эффект lost in the middle. Исследования Liu et al. (2023) показали, что модели распределяют внимание по U-образной кривой: начало и конец контекста получают значительно больше внимания, чем середина. При этом средняя часть контекста получает на 30-40% меньше внимания, что снижает качество ответа на 10-20%. Последующие попытки калибровки (Hsieh et al.) улучшают ситуацию на 6-15%, но не устраняют феномен полностью. Раздутый системный промпт, который в случае Qwen Code вместе с инструментами достигает 20 тыс. токенов, усугубляет проблему: ценные инструкции оказываются в «мёртвой зоне» контекста.

Официальный → модифицированный CLI (фактическое/ожидаемое кол. вызовов)
new-approutingstm
Claude Sonnet 4.65/5 → 5/50/5 → 5/50/0 → 1/0
DeepSeek V4 Flash0/5 → 5/50/5 → 4/50/0 → 0/0
Qwen 3.6 Plus4/5 → 5/51/5 → 4/51/0 → 2/0
Qwen3 Coder Next5/5 → 5/50/5 → 0/50/0 → 0/0

Автор статьи форкнул Qwen Code и вычистил системные промпты: убрал лишние примеры, дублирующиеся правила и неиспользуемые описания инструментов. В результате удалось сократить расход токенов на 35-53% без потери качества выполнения задач. CLI-агенты стали стабильнее вызывать нужные скиллы, частота галлюцинаций заметно снизилась. При этом модель не потеряла способности справляться с поставленными задачами — напротив, очистка промптов повысила предсказуемость поведения.

Автор форкнул Qwen Code, очистил системные промпты от лишних примеров и повторов, что сократило расход токенов на 35-53%.

Этот эксперимент ставит под сомнение распространённые best-practices, рекомендующие добавлять в системный промпт как можно больше примеров и деталей. Оказывается, чем больше инструкций, тем выше риск, что модель «забудет» их середину. Разработчикам стоит пересмотреть подход: вместо наращивания объёма промптов лучше сосредоточиться на лаконичности и чёткой структуре, возможно, вынося ключевые инструкции в начало или конец сообщения. Кроме того, рост размера контекстных окон LLM не решает проблему — lost in the middle остаётся актуальным и для современных моделей.