Schema-guided reasoning и structured outputs для LLMs
Автоматический перевод Эта статья была автоматически переведена с оригинальной английской версии.
Используйте structured outputs, когда программе нужны поля с заданной структурой. Добавляйте schema-guided reasoning (SGR), когда программе или ревьюеру также нужны промежуточные записи — например, подтверждение из источника и предлагаемое решение. SGR использует structured output для представления этих шагов; это не отдельная гарантия корректности ответа.
Если потребителю нужны только категория и ID источника, оставьте только эти поля. Добавляйте поля анализа лишь в том случае, если можете объяснить, как их будут проверять или использовать.
Последняя проверка: 2026-09-08.
Что делает каждый слой
| Слой | Что он предоставляет | Чего он не может установить |
|---|---|---|
| Промпт для форматирования JSON | Инструкции вернуть JSON | Что ответ соответствует схеме |
| Выходные данные с ограничениями схемы | Ответ, соответствующий поддерживаемой схеме, если генерация успешно завершена | Что значения истинны |
| SGR-схема | Именованные промежуточные поля и предлагаемое решение | Что одно поле корректно выведено из другого |
| Проверки в приложении | Проверки подтверждения из источника, вычислений и разрешённых действий | Факты, которые приложение никогда не проверяет |
Описание SGR от Rinat Abdullin использует схемы как чеклист для возвращаемой моделью работы. В self-hosted-развёртывании structured outputs в vLLM могут enforce-ить JSON Schema через бэкенд декодирования, например XGrammar. Одного определения Pydantic-модели в Python недостаточно, чтобы включить constrained decoding на сервере.
Проверьте, какое подмножество схем поддерживает выбранный провайдер, а также статус завершения. Для отказа, усечённого ответа или неудачного запроса нужен отдельный error path. В руководстве по structured outputs в Gemini также обозначено ключевое ограничение: корректная структура JSON не гарантирует корректность значений полей.
Предложение скидки показывает разницу
Предположим, support-инструмент может предложить скидку не более 10%. Минимальный structured reply может содержать discount_percent и customer_message. Если внутреннему ревьюеру нужно подтверждение, SGR-ответ может также содержать policy_source_id и eligibility_evidence.
Эти дополнительные поля дают ревьюеру материал для проверки. Но они не делают предлагаемую скидку 15% допустимой. Даже схема, ограничивающая процент значением 10, не может доказать, что этот клиент соответствует условиям.
Перед использованием предложения код приложения должен загрузить применимую политику и данные клиента, проверить eligibility и вычислить разрешённую сумму. Считайте объяснение модели утверждением, которое нужно проверить. Если следующему шагу модели требуются подтверждённые факты, проверьте их до этого вызова. Порядок полей внутри одного JSON-объекта не создаёт этап проверки.
Когда дополнительные поля оправданы
SGR полезен, когда для точной диагностики ошибки нужен дополнительный контекст. Например, классификатор документов может вернуть фрагмент источника и категорию. Тогда ревьюеры смогут отличить неудачный выбор фрагмента от неверной категории при корректном подтверждении.
SGR менее полезен, когда каждый результат получает длинное объяснение, которое никто не читает и не оценивает. Дополнительный вывод расходует токены, а убедительное объяснение всё равно может быть ложным.
Сравните небольшую схему и SGR-схему на одном и том же наборе размеченных кейсов и на одной и той же модели. Оценивайте финальное решение отдельно от подтверждения источником и валидности полей. Оставляйте промежуточные поля, если они улучшают решение или делают ревью достаточно полезным, чтобы оправдать дополнительный вывод. Не предполагайте прирост точности только из-за названия схемы.
Дополнительные материалы
- Schema-guided reasoning с vLLM объясняет схемы, XGrammar и проверки политик на стороне приложения.
- Schema-guided agent memory применяет типизированные записи и историю источников к персистентному состоянию.
- Выбор NER-моделей отделяет буквальные текстовые спаны от экстракции, требующей инференса.