Как уменьшить сбои и повысить надежность AI-агентов в проде: контрольная панель для 25+ LLM с защитой от галлюцинаций

Я — Денис Шохирев, Enterprise AI architect из Фрайбурга, Германия. В DennisCraft AI Studio я внедряю AI-агентов для B2B клиентов DACH региона: логистика, финтех, автоматизация. За последние 6 месяцев я вывел в прод 14 AI-агентов на стеке Claude, Supabase, n8n, Doppler и self-hosted Postgres. Самый частый запрос после запуска — «Почему агент ведёт себя нестабильно? Почему галлюцинации?». Ни одной маркетинговой презентации — только реальный опыт продакшена.

Почему LLM-агенты ломаются в проде: реальные симптомы

При интеграции более 25 LLM моделей сразу в нескольких B2B рабочих потоках появляется стандартный набор проблем:

  • LLM возвращает неконсистентные ответы на идентичные запросы
  • Частые сбои интеграций: timeouts, неожиданные null-ответы
  • Галлюцинации — выдуманные данные, невалидные SQL, опасные рекомендации
  • Сбои пайплайнов n8n из-за невалидного output из LLM

В трёх последних релизах у меня стабильно 10–15% флоу ломались из-за некорректных данных от LLM. Это не баги инфраструктуры — это особенность генеративных моделей.

Контрольная панель: архитектура и принципы

1. Централизованный мониторинг через Supabase

Я фиксирую каждый запрос к LLM (prompt, параметры, ответ, статус) в отдельной таблице Postgres через Supabase. Это позволяет строить дашборды по частоте сбоев, времени ответа, проценту галлюцинаций.


import supabase
from datetime import datetime

def log_llm_call(user_id, prompt, response, status):
    data = {
        "user_id": user_id,
        "prompt": prompt,
        "response": response,
        "status": status,
        "created_at": datetime.utcnow()
    }
    supabase.table("llm_logs").insert(data).execute()

Реальный кейс: за первую неделю после запуска одной из fintech-автоматизаций я выявил 7% нестабильных ответов — только по логам удалось быстро локализовать источник проблемы.

2. Детектирование галлюцинаций на лету

LLM может сгенерировать невалидный SQL, несуществующий товар, или опасную команду. Я реализую runtime-проверки на выходе агента:

  • SQL-парсинг с помощью sqlparse — ловлю синтаксические ошибки до выполнения запроса
  • Семантический анализ — сравниваю output с whitelist допустимых значений
  • Sanity-check на числовые и булевые значения

Например, для автоматизированных запросов в базу данных:


import sqlparse

def is_valid_sql(query):
    try:
        parsed = sqlparse.parse(query)
        return len(parsed) > 0
    except Exception:
        return False

def check_output(output):
    if not is_valid_sql(output):
        return False
    # Дополнительные проверки
    return True

3. Многомодельный fallback и а/б тестирование

В схемах с 25+ LLM (Claude, GPT-4, Llama, Mistral и пр.) я использую схему fallback: если основная модель возвращает ошибку, запрос уходит на резервную. Для критичных операций включаю а/б тест — отправляю один и тот же prompt в две разные LLM и сравниваю результат по checksum.

МодельСредний % ошибокСред. время ответа (сек)
Claude 3 Opus4.32.8
GPT-4 Turbo7.13.2
Llama 2-70B9.51.7

Локальный leaderboard храню в Supabase.

Интеграция с n8n: ловим сбои на ранних этапах

n8n — мой основной workflow-оркестратор. Я интегрирую LLM-агентов через кастомные ноды, которые валидируют output до передачи дальше по пайплайну. Если output не проходит sanity-checks, flow прерывается, отправляется уведомление в Slack и логируется инцидент.


// Пример custom ноды для проверки JSON output
export function validateLLMOutput(output: string): boolean {
  try {
    const data = JSON.parse(output);
    // Whitelist ключей
    if (!data.hasOwnProperty('order_id')) return false;
    return true;
  } catch (e) {
    return false;
  }
}

В одном из кейсов (industrial automation) за месяц удалось минимизировать некорректные транзакции с 12 до 1, просто добавив runtime-валидацию в n8n.

Контроль доступа и трассировка — обязательна в финтехе

Для задач, связанных с обработкой персональных данных (DSGVO), все обращения к LLM проходят через промежуточный слой с audit-трекингом: кто, когда, с каким параметром, какой результат. Для чувствительных данных настраиваю маскирование в логах Supabase.

Трассировка — через уникальный trace_id на каждый запрос, позволяя быстро восстановить цепочку событий в случае инцидента.

FAQ

Зачем столько моделей — нельзя ли ограничиться одной?

В реальных B2B задачах одна LLM не покрывает все юзкейсы: разные языки, форматы, требования по latency. Многомодельный стек даёт гибкость и устойчивость к сбоям.

Как детектировать галлюцинации без ручного ревью?

Я внедряю автоматические sanity-checks, семантические whitelist-валидации и сравнение с эталонными значениями. Ручной аудит — только на edge-кейсах.

Сколько занимает построение такой панели?

Первая MVP версия — 2–3 дня на стеке Supabase + простая валидация. Дальше — итеративное расширение под новые модели и пайплайны.

Можно ли всё это реализовать без Supabase?

Технически — да, на self-hosted Postgres и REST API. Но Supabase даёт простую авторизацию, быстрые дашборды и вебхуки «из коробки».

Как защититься от утечки данных через LLM?

Использую masking в логах, ограничиваю input через pre-валидаторы, записываю audit trail для всех обращений к LLM. Для финтеха — отдельная изолированная среда.

В каком звене вашего LLM-пайплайна чаще всего ловятся сбои — runtime валидация, интеграционные тесты или ручной аудит? Мне действительно интересно.

Я провожу бесплатный 30-минутный аудит AI-стека для основателей DACH, работающих в регулируемых нишах. Пишите в LinkedIn или на @ger_dennis_ai.

Read more

Computer-Use-Agenten scheitern an Pixeln: wie Sie auf stabile UI-Referenzen über Accessibility Trees umstellen und fehleranfällige Desktop-Automatisierung nicht mehr ständig reparieren

von Denis Shokhirev, Enterprise AI Architect aus Freiburg im Breisgau Ich bin Denis Shokhirev, Agentic AI Systems Architect in Freiburg im Breisgau, Germany, und bei DennisCraft AI Studio setze ich produktive KI-Systeme für DACH-B2B-Kunden auf Basis von Claude, Supabase, n8n, Doppler und selbst betriebenem Postgres um. Die teuersten Fehler in

By Denis Shokhirev

Компьютерные агенты ломаются на пикселях: как перейти на stable UI refs через accessibility tree и перестать чинить flaky desktop automation

Я Denis Shokhirev, Agentic AI Systems Architect из Freiburg im Breisgau, Germany, и в DennisCraft AI Studio я собираю production AI-системы для DACH B2B на Claude, Supabase, n8n, Doppler и self-hosted Postgres. Самая дорогая поломка в desktop automation, которую я вижу у клиентов, почти никогда не связана с моделью: агент

By Denis Shokhirev