Крупные языковые модели раскрывают ход рассуждений в структурированных выводах, несмотря на явные инструкции.

Проблема: просачивание рассуждений при валидации LLM
Разработчик, создающий инструмент для параллельных API-вызовов к Claude и парсинга структурированного вывода для каждого вызова, столкнулся с периодической проблемой. Каждый вызов возвращает контент внутри специальных маркеров, таких как [COVER], [SLIDE 1], [CAPTION] и т.д. Второй проход LLM проверяет вывод на соответствие правилам и переписывает всё, что не проходит проверку.
Промпт валидации явно указывает: "возвращайте ТОЛЬКО исправленный текст в точном том же формате. Без комментариев. Без рассуждений. Без списков нарушений."
Несмотря на это, модель валидации иногда выводит свои рассуждения перед исправленным контентом. Примеры включают: "Мне нужно проверить этот текст на нарушения... Эти предложения образуют нагромождённую драматическую пару, используемую исключительно для эффекта. Вот переписанный вариант:" с последующим фактическим исправленным текстом.
Последствия для последующих этапов
Этот текст с рассуждениями передаётся напрямую парсеру. Парсер ожидает контент, начинающийся с [COVER], но вместо этого получает метакомментарии. Это вызывает смещение полей на последующих этапах. В одном случае текст рассуждений валидатора оказался внутри поля подписи к изображению, потому что парсер воспринял рассуждения как содержимое тела, сдвинув всё на несколько строк вниз.
Одно лишь ужесточение промптов не решило проблему. Делая инструкции более явными, добавляя "ваш вывод ДОЛЖЕН начинаться с первого маркера контента" и "никогда не включайте рассуждения" — снизило частоту возникновения, но не устранило её полностью. Модель иногда игнорирует инструкции, особенно когда находит нарушения для исправления — она хочет показать свою работу.
Решение: двухуровневая защита
Решение, которое сработало, включало два уровня:
- Уровень 1: Ужесточение промптов. Всё ещё стоит делать, потому что это снижает частоту возникновения проблемы.
- Уровень 2: Защитная функция очистки, которая запускается для каждого вывода валидации до любого парсинга. Для структурированных форматов она привязывается к первому распознанному маркеру и отбрасывает всё, что перед ним. Для простых текстовых форматов она удаляет строки, соответствующие известным шаблонам комментариев валидатора (таким как "Позвольте мне проверить этот текст" или "Это нарушает ограничение").
Порядок "очистка-перед-парсингом" является ключевым. Каждый последующий парсер работает с уже очищенным выводом. Это позволяет избежать поддержки логики очистки для каждого поля или игры в "испорченный телефон" с новыми форматами рассуждений.
Соображения по реализации
Для шаблонов очистки простого текста требуется тщательное проектирование. Регулярное выражение, которое ловит "Это нарушение", может также поймать "Это распространённая ошибка" в легитимном контенте. Шаблоны следует ужесточать, чтобы они соответствовали только специфическому языку валидатора, например "Это нарушает правило/ограничение", а не широким совпадениям на "Это есть" или "Это использует". Каждый шаблон требует проверки на реальном контенте перед развёртыванием.
Если вы парсите структурированный вывод LLM, относитесь к инструкциям промпта как к наилучшему усилию первого прохода и всегда имейте защиту на уровне кода перед парсером. Модель будет соблюдать инструкции в 95% случаев, но 5%, когда она этого не делает, нарушат логику последующих этапов способами, которые трудно воспроизвести, потому что они возникают периодически.
📖 Read the full source: r/ClaudeAI
👀 Смотрите также

gui.new: Инструмент для Claude для отображения визуального вывода в виде доступных для общего доступа ссылок
gui.new — это инструмент, который позволяет Claude визуализировать вывод в виде живых ссылок для совместного использования, вместо возврата блоков кода. Он создан с помощью Claude, использует Next.js на Vercel с Supabase и не требует регистрации.

CodeLedger: Открытый плагин Claude Code отслеживает использование токенов и фоновые агенты
CodeLedger — это плагин с открытым исходным кодом для сервера MCP в Claude Code, который автоматически отслеживает использование токенов в проектах, идентифицирует фоновых агентов и предоставляет рекомендации по оптимизации затрат на основе анализа локальных JSONL-файлов сессий.

Lightning MLX: быстрый локальный AI-движок для агентного использования на Apple Silicon выдает 220 токенов/с на Qwen 35B-A3B
Lightning MLX заявляет, что он обеспечивает самый быстрый локальный вывод ИИ на Apple Silicon, оптимизированный для агентов кодирования и вызова инструментов. Тесты показывают 40,67 ток/с на Qwen3.6-27B и 220,86 ток/с на Qwen3.6-35B-A3B на MacBook Max M5 (128 ГБ).

7 слеш-команд, $0.45/пост: Этот пайплайн Claude Code управляет всей SEO-операцией
Разработчик опубликовал в открытом доступе пайплайн из 7 команд Claude Code, который занимается SEO-исследованием, написанием, оптимизацией и публикацией контента. Стоимость: $0.45/пост (Perplexity API), время работы: 15 мин/день. Результаты: рост месячных показов в 18 раз за 12 месяцев.