Amazon Bedrock добавил структурированные ответы для всех доступных в сервисе моделей Anthropic Claude. По сообщению AWS, возможность работает через конечные точки bedrock-runtime и bedrock-mantle: разработчик задаёт структуру, а сервис ограничивает генерацию так, чтобы результат соответствовал ей.
Поддерживаются два механизма. Формат JSON Schema задаёт поля ответа, их типы и обязательность. Строгий режим вызова инструментов проверяет аргументы функций по входной схеме. AWS объясняет, что Bedrock сначала проверяет схему по поддерживаемому подмножеству JSON Schema Draft 2020-12, затем компилирует грамматику и использует её при выборе токенов. Первая обработка новой структуры может занять больше времени; скомпилированная грамматика хранится в кэше аккаунта 24 часа. Изменение структуры запускает повторную компиляцию, а правки названия или описания — нет.
Структурированные ответы совместимы с пакетным выводом, потоковой передачей и, для bedrock-runtime, межрегиональным выводом. AWS приводит сценарии извлечения данных, классификации и вызова инструментов, однако заявление о готовности к промышленному применению остаётся оценкой поставщика.
Есть важные ограничения. Объекты должны задавать additionalProperties: false. Рекурсивные схемы и внешние ссылки не поддерживаются, а числовые границы и ограничения длины строк принимаются API, но не обеспечиваются при генерации. Отказы модели и достижение max_tokens также могут дать ответ вне схемы. Поэтому приложениям всё ещё нужно проверять причину остановки и самостоятельно валидировать ограничения, которые Bedrock не обеспечивает.