ИИ извлекает сведения из письма, документа или заявки, а следующий шаг должен изменить CRM, таблицу или другую рабочую систему. Опасность возникает не только тогда, когда модель возвращает сломанный JSON. Ответ может выглядеть правильно, но содержать пропуск, неверный тип или значение, которого нет в источнике.
Основное правило: сначала проверить результат, затем разрешить внешнее действие. Если проверка не пройдена, маршрут останавливает запись, сохраняет диагностический контекст и передаёт решение сотруднику. Повторный запрос к модели сам по себе проблему не решает: он не устанавливает, успела ли система выполнить прежнее действие.
Где возникает ошибка и почему нельзя продолжать запись
Полезно разделить ошибки на три класса.
| Класс проблемы | Пример | Решение до записи |
|---|---|---|
| Ответ невозможно разобрать | Вместо объекта пришёл текст или повреждённая структура | Остановить маршрут и сохранить необработанный ответ |
| Объект нарушает действующую схему | Нет обязательного поля, число передано строкой, формат даты недопустим | Зафиксировать нарушенные правила и направить объект на проверку |
| Структура верна, но содержание сомнительно | Сумма не подтверждается документом или два поля противоречат друг другу | Передать решение сотруднику, который знает процесс и источник |
- Класс проблемы
- Ответ невозможно разобрать
- Пример
- Вместо объекта пришёл текст или повреждённая структура
- Решение до записи
- Остановить маршрут и сохранить необработанный ответ
- Класс проблемы
- Объект нарушает действующую схему
- Пример
- Нет обязательного поля, число передано строкой, формат даты недопустим
- Решение до записи
- Зафиксировать нарушенные правила и направить объект на проверку
- Класс проблемы
- Структура верна, но содержание сомнительно
- Пример
- Сумма не подтверждается документом или два поля противоречат друг другу
- Решение до записи
- Передать решение сотруднику, который знает процесс и источник
Успешный ответ модели не доказывает корректность структуры. Корректная структура, в свою очередь, не доказывает достоверность содержания. Поэтому проверка должна стоять до узла, который создаёт или меняет рабочую запись.
Что именно проверять до записи
Проверки удобно выполнять от технических к смысловым:
- Можно ли разобрать ответ.
- Получен ли объект ожидаемого типа.
- Присутствуют ли обязательные поля.
- Соответствуют ли значения нужным типам.
- Соблюдены ли форматы дат, идентификаторов и других полей.
- Не противоречат ли поля друг другу.
- Выполнены ли правила конкретного процесса.
В актуальной документации n8n для узла Information Extractor описаны три способа задать желаемый формат: перечень атрибутов с описаниями, JSON-пример и JSON Schema. При генерации схемы из JSON-примера n8n считает обязательными все поля этого примера. Поэтому такой режим нельзя применять механически, если часть сведений действительно может отсутствовать.
Эти возможности относятся к Information Extractor. Они не подтверждают правильность извлечённых значений и не создают сами по себе ручную проверку, безопасное хранение или защиту от повторной записи.

Разберём ваш рабочий пример и покажем согласованный фрагмент решения до договора и предоплаты.
Как остановить маршрут и не потерять диагностические сведения
Развилку нужно поставить перед внешним действием:
- Маршрут получает ответ ИИ.
- Отдельная проверка разбирает объект и применяет правила.
- Корректный результат переходит к следующему этапу.
- Некорректный результат попадает в контролируемую ветку ошибки без записи в целевую систему.
Документация n8n подтверждает, что узел Stop And Error может завершить выполнение с ошибкой, показать собственное сообщение и передать собственный объект ошибки в error workflow. Это средство остановки и передачи сведений об ошибке. Оно не доказывает автоматическое сохранение исходного письма, создание очереди для сотрудника или предотвращение дублей.
Для конкретного решения нужно отдельно спроектировать связь ошибки с исходной операцией, статус обработки, уведомление ответственного и запрет последующих действий после остановки. Эти требования затем проверяют на данных и правилах заказчика.
Какие данные сохранить в карточке ошибки
Карточка должна позволять восстановить контекст без догадок. В неё можно включить:
| Данные | Зачем они нужны |
|---|---|
| Устойчивый идентификатор операции | Связать ошибку, исправление и возможную запись |
| Дата и этап обработки | Понять, где остановился маршрут |
| Версия действующей схемы | Повторить ту же проверку после исправления |
| Исходный материал или контролируемая ссылка | Сверить значения с письмом, документом или заявкой |
| Необработанный ответ ИИ | Разобрать фактический результат модели |
| Разобранная часть объекта | Не терять доступные поля, если разбор был частичным |
| Перечень нарушений | Показать сотруднику конкретную причину остановки |
| Происхождение известных значений | Отличить данные источника от вывода модели и ручной правки |
| Целевая система и предполагаемое действие | Понять, какое изменение было остановлено |
| Состояние записи | Установить, выполнялось ли внешнее действие |
| Ответственный и допустимые решения | Не превращать проверку в произвольное редактирование |
- Данные
- Устойчивый идентификатор операции
- Зачем они нужны
- Связать ошибку, исправление и возможную запись
- Данные
- Дата и этап обработки
- Зачем они нужны
- Понять, где остановился маршрут
- Данные
- Версия действующей схемы
- Зачем они нужны
- Повторить ту же проверку после исправления
- Данные
- Исходный материал или контролируемая ссылка
- Зачем они нужны
- Сверить значения с письмом, документом или заявкой
- Данные
- Необработанный ответ ИИ
- Зачем они нужны
- Разобрать фактический результат модели
- Данные
- Разобранная часть объекта
- Зачем они нужны
- Не терять доступные поля, если разбор был частичным
- Данные
- Перечень нарушений
- Зачем они нужны
- Показать сотруднику конкретную причину остановки
- Данные
- Происхождение известных значений
- Зачем они нужны
- Отличить данные источника от вывода модели и ручной правки
- Данные
- Целевая система и предполагаемое действие
- Зачем они нужны
- Понять, какое изменение было остановлено
- Данные
- Состояние записи
- Зачем они нужны
- Установить, выполнялось ли внешнее действие
- Данные
- Ответственный и допустимые решения
- Зачем они нужны
- Не превращать проверку в произвольное редактирование
Это состав проектируемой карточки, а не универсальная обязательная форма. Объём хранения, маскирование, сроки и права доступа зависят от данных и правил компании. Секреты и лишние персональные сведения не следует копировать в диагностику без необходимости.

Как передать результат сотруднику
Сотруднику нужно показать рядом три элемента: исходный материал, ответ ИИ и конкретное нарушение. Сообщение «не прошла валидация» не помогает понять, какое решение допустимо.
В интерфейсе проверки можно разрешить ограниченный набор действий:
- исправить значение, которое подтверждается источником;
- отметить, что нужных данных нет;
- вернуть материал на уточнение;
- отклонить обработку;
- передать вопрос ответственному специалисту.
Ручную правку сохраняют отдельно от исходного ответа, вместе с автором решения и основанием. Сотрудник подтверждает содержание и дальнейшее действие, а не просто закрывает техническую ошибку. Для юридических, финансовых и других профессиональных данных окончательное решение принимает уполномоченный специалист заказчика.
Как продолжить обработку после исправления
Возобновление — отдельная операция, а не продолжение с произвольного места. Перед записью система должна:
- Получить актуальную карточку ошибки.
- Проверить полномочия сотрудника.
- Повторно применить действующую схему.
- Проверить смысловые правила процесса.
- По устойчивому идентификатору установить состояние внешнего действия.
- Записать исправленный объект, только если прежняя запись не подтверждена.
- Сохранить фактический результат операции.
Повторная проверка данных и повтор внешнего действия — разные вещи. Если неизвестно, успела ли CRM или другая система принять прежний запрос, нельзя выполнять слепой повтор. Сначала нужно установить состояние целевой системы либо направить операцию на дополнительный разбор.
Идемпотентность, подтверждение записи и механизм возобновления — требования будущей реализации. Их нельзя считать встроенной гарантией модели, n8n или CRM.
Учебный пример: пропущена валюта, сумма имеет неверный тип
Ниже — синтетическая демонстрация проектируемого маршрута. Это не клиентский кейс, не выполненный тест и не описание встроенной функции продукта.
Из входящего письма и вложенного документа ИИ должен подготовить объект с идентификатором обращения, названием компании, суммой и валютой. Модель возвращает сумму текстом «уточнить», а обязательную валюту пропускает.
| Элемент | Полученный или ожидаемый результат |
|---|---|
| Идентификатор обращения | REQ-1048 |
| Компания | Альфа — условное название |
| Сумма | уточнить вместо числа |
| Валюта | Поле отсутствует |
| Решение проверки | Не записывать объект в CRM |
- Элемент
- Идентификатор обращения
- Полученный или ожидаемый результат
REQ-1048
- Элемент
- Компания
- Полученный или ожидаемый результат
Альфа— условное название
- Элемент
- Сумма
- Полученный или ожидаемый результат
уточнитьвместо числа
- Элемент
- Валюта
- Полученный или ожидаемый результат
- Поле отсутствует
- Элемент
- Решение проверки
- Полученный или ожидаемый результат
- Не записывать объект в CRM
Проверка фиксирует два нарушения: неверный тип суммы и отсутствие обязательной валюты. Маршрут сохраняет исходное письмо и вложение либо безопасные ссылки на них, версию схемы, необработанный ответ, перечень нарушений и идентификатор операции.
Сотрудник сверяет поля с источником. Он указывает подтверждённые сумму и валюту либо отмечает, что определить их невозможно. Исправление хранится отдельно от исходного ответа.
Перед продолжением система снова проверяет объект по той же версии схемы, находит операцию по устойчивому идентификатору и устанавливает, была ли запись уже подтверждена. Только при пройденных проверках и отсутствии подтверждённой записи разрешается одна контролируемая попытка внешнего действия. Конкретный способ хранения, поиска операции и подтверждения результата нужно спроектировать и испытать в рабочем окружении заказчика.
Особенности структурированного ответа в агентном маршруте
Парсер итогового ответа не следует автоматически считать средством форматирования каждого промежуточного шага агента. Документация n8n указывает, что Structured Output Parser предназначен для итогового ответа, а не для промежуточных данных, передаваемых другим инструментам или этапам.
Для workflow с агентами n8n рекомендует направлять данные агента в отдельную LLM-chain и разбирать их там: документация описывает этот вариант как более стабильный, чем прямой разбор внутри агентного маршрута. Это рекомендация продукта, а не гарантия корректного формата и не обязательная архитектура для любого процесса.
Выбор между Information Extractor, отдельной цепочкой, обычными правилами и другим способом зависит от входных данных, последствий ошибки и доступных компонентов. Если маршрут всегда выполняет заранее определённую последовательность, может быть достаточно обычной автоматизации. ИИ-агент нужен там, где модель выбирает следующий шаг из разрешённых действий. Чат-бот описывает диалоговый интерфейс и сам по себе не определяет устройство обработки.
Как проверить аварийный маршрут и определить ограничения
Проверка должна охватывать значимые состояния процесса, а не произвольное количество примеров.
| Проверочная ситуация | Что нужно подтвердить |
|---|---|
| Ответ невозможно разобрать | Внешняя запись не выполняется, исходный ответ доступен для разбора |
| Нет обязательного поля | Карточка показывает поле и версию схемы |
| Значение имеет неверный тип | Ошибка не маскируется автоматической подстановкой |
| Значение неизвестно | Сотрудник может отметить отсутствие данных |
| Значение противоречит источнику | Источник и ответ можно сопоставить |
| Вход доставлен повторно | Повтор обрабатывается по согласованному правилу без лишней записи |
| Сбой произошёл после отправки | Система устанавливает состояние внешнего действия до повтора |
| Сотрудник исправил объект | Правка, автор и основание сохранены отдельно |
| Сотрудник отказался продолжать | Внешнее действие не выполняется |
| Источник изменился во время проверки | Сотрудник видит актуальное состояние и не подтверждает устаревшие данные автоматически |
- Проверочная ситуация
- Ответ невозможно разобрать
- Что нужно подтвердить
- Внешняя запись не выполняется, исходный ответ доступен для разбора
- Проверочная ситуация
- Нет обязательного поля
- Что нужно подтвердить
- Карточка показывает поле и версию схемы
- Проверочная ситуация
- Значение имеет неверный тип
- Что нужно подтвердить
- Ошибка не маскируется автоматической подстановкой
- Проверочная ситуация
- Значение неизвестно
- Что нужно подтвердить
- Сотрудник может отметить отсутствие данных
- Проверочная ситуация
- Значение противоречит источнику
- Что нужно подтвердить
- Источник и ответ можно сопоставить
- Проверочная ситуация
- Вход доставлен повторно
- Что нужно подтвердить
- Повтор обрабатывается по согласованному правилу без лишней записи
- Проверочная ситуация
- Сбой произошёл после отправки
- Что нужно подтвердить
- Система устанавливает состояние внешнего действия до повтора
- Проверочная ситуация
- Сотрудник исправил объект
- Что нужно подтвердить
- Правка, автор и основание сохранены отдельно
- Проверочная ситуация
- Сотрудник отказался продолжать
- Что нужно подтвердить
- Внешнее действие не выполняется
- Проверочная ситуация
- Источник изменился во время проверки
- Что нужно подтвердить
- Сотрудник видит актуальное состояние и не подтверждает устаревшие данные автоматически
Для каждого состояния проверяют, что запись не происходит преждевременно, исходные данные доступны только уполномоченным сотрудникам, решение сохраняется, а возобновление не создаёт дубль.
Ограничения нужно закрепить в требованиях: модель может снова нарушить формат; валидная схема не доказывает достоверность; возможности зависят от выбранных компонентов и конфигурации; хранение и права доступа требуют отдельного проектирования. Результат испытывают на данных и правилах заказчика до подключения разрешённых внешних действий.
Что подготовить для обсуждения внедрения
Для разбора достаточно одного обезличенного примера входных данных, действующей схемы ответа, описания целевой записи и перечня решений сотрудника. Пароли и ключи для первого обсуждения не нужны.
Switch On AI разрабатывает ИИ-агентов и автоматизацию под конкретные операции: помогает описать границу остановки, карточку ошибки, ручное решение, повторную проверку и подтверждение внешней записи. Сначала команда разбирает процесс и готовит требования и предложение, затем показывает бесплатный прототип ключевого сценария. Прототип не равен внедрению; рабочие подключения, испытания и эксплуатацию согласуют отдельно.
Чтобы обсудить свой процесс, подготовьте обезличенный пример и расскажите о задаче. На разборе можно определить, где должна остановиться автоматическая запись и какие сведения понадобятся сотруднику для решения.
Вопросы по этой задаче
Можно ли просто повторно запросить ответ у модели?
Повтор может дать другой результат, но не устанавливает, успела ли система выполнить прежнюю запись. Сначала нужно сохранить исходную операцию, определить состояние внешнего действия и исключить повторное изменение системы.
Достаточно ли проверить ответ по JSON Schema?
Нет. Схема проверяет структуру и заданные ограничения, но не подтверждает, что значения верно перенесены из письма или документа и соответствуют правилам процесса.
Что передавать сотруднику на проверку?
Исходный материал или безопасную ссылку, необработанный ответ ИИ, версию схемы, конкретные нарушения, происхождение полей, состояние целевой записи и допустимые решения.
Нужно ли сохранять весь документ и ответ модели?
Это зависит от чувствительности данных, правил хранения и потребностей разбора. Нужно сохранять необходимый объём, ограничивать доступ и заранее определять маскирование и удаление.
Когда после исправления можно продолжать запись?
Когда исправленный объект повторно прошёл согласованные проверки, сотрудник имел полномочия принять решение, а система установила, что соответствующее внешнее действие ещё не было подтверждено.
