Adjudicated Query: чат через MCP, а решения — в rules engine

AWS предложила паттерн Adjudicated Query для Amazon Quick: в чате generative AI не пишет SQL и не задаёт выборку, а дергает шесть фиксированных операций MCP-сервера на Lambda. Pass/fail считает детерминированный rules engine — правила лежат в данных с версиями, а не в коде с ветками по штатам.
Задача не «умный поиск». Для портфеля вроде 50 000 договоров в разных штатах нужны две вещи: утверждение «проверили все 22 910 texas lease» должно быть правдой, а неоценённая запись — явно «не оценена»; и защита в аудите — какая версия правила, к какому тексту clause, когда применена. RAG даёт ранжированную выборку и не закрывает «все»; text-to-SQL может сузить популяцию выдуманным предикатом, а цифра на экране всё равно выглядит точной.
Граница между чатом и движком
Модель делает ровно два шага: переводит вопрос в вызов из закрытого набора и проговаривает ответ. За границей — engine с операторами вроде gte, lte, equals, exists; смена закона — правка rulebook, не деплой. Каждый compliance sweep выдаёт completeness receipt: compliant + in-breach + ambiguous + unreadable должно сойтись со числом просканированных — иначе прогон не завершается. В чате — счётчики, receipt и помеченная выборка; десятки тысяч строк смотрят в Amazon QuickSight из того же Aurora.
Шесть инструментов MCP
sweep_compliance— полный прогон популяции по правилам на дату, официальный результат с receiptsimulate_rule_change— один rule на предложенном значении, без записиexplore_clauses— top-K по семантике внутри фильтра, не отвечает на «сколько всего»get_finding— цепочка доказательств по одному findinglist_rules— rulebook на дату с версиямиcheck_connection— проверка живости
Стек референса: OAuth через Amazon Cognito, MCP по HTTP API Gateway с JWT, Lambda с engine и RDS Data API к Aurora Serverless v2. Amazon Bedrock — только для exploratory clause-search, не для официального sweep.
Модель как ненадёжный рассказчик
Если модель только озвучивает, но не решает, риск остаётся в формулировках: в примерах AWS она снимала префикс ILLUSTRATIVE и подставляла выдуманную цитату закона, а из 20 preview-строк строила «диапазон по всей популяции». Ответ — реальные агрегаты по всем записям в payload, повтор mode-меток на нескольких уровнях и оговорки в неотрезаемых скобках в хвосте строки.
Sample на GitHub — sample-quick-adjudicated-query: синтетические данные, CDK-деплой, Python 3.12; для Bedrock в us-east-1 нужны Titan Embeddings V2 и Claude Sonnet 5.
Источник: Sweep thousands of leases for compliance using Amazon Quick and the Adjudicated Query pattern.