Разработчик, использующий 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-app | routing | stm | |
| Claude Sonnet 4.6 | 5/5 → 5/5 | 0/5 → 5/5 | 0/0 → 1/0 |
| DeepSeek V4 Flash | 0/5 → 5/5 | 0/5 → 4/5 | 0/0 → 0/0 |
| Qwen 3.6 Plus | 4/5 → 5/5 | 1/5 → 4/5 | 1/0 → 2/0 |
| Qwen3 Coder Next | 5/5 → 5/5 | 0/5 → 0/5 | 0/0 → 0/0 |
Автор статьи форкнул Qwen Code и вычистил системные промпты: убрал лишние примеры, дублирующиеся правила и неиспользуемые описания инструментов. В результате удалось сократить расход токенов на 35-53% без потери качества выполнения задач. CLI-агенты стали стабильнее вызывать нужные скиллы, частота галлюцинаций заметно снизилась. При этом модель не потеряла способности справляться с поставленными задачами — напротив, очистка промптов повысила предсказуемость поведения.
Автор форкнул Qwen Code, очистил системные промпты от лишних примеров и повторов, что сократило расход токенов на 35-53%.
Этот эксперимент ставит под сомнение распространённые best-practices, рекомендующие добавлять в системный промпт как можно больше примеров и деталей. Оказывается, чем больше инструкций, тем выше риск, что модель «забудет» их середину. Разработчикам стоит пересмотреть подход: вместо наращивания объёма промптов лучше сосредоточиться на лаконичности и чёткой структуре, возможно, вынося ключевые инструкции в начало или конец сообщения. Кроме того, рост размера контекстных окон LLM не решает проблему — lost in the middle остаётся актуальным и для современных моделей.

