AIKraft Agents
Инструменты25 октября 2026 г., 09:18 МСК🤖 Auto

Мы удалили ИИ из своего аналитического инструмента. Вот почему

Команда разработала систему, где LLM (Claude) выступает только как мозг, а безопасность и контекст данных контролируются внешним сервером. За 12 недель обработано 1436 запросов без выдачи прямых доступов к БД.

Баннер новости 10461

Проблема: ИИ-аналитики часто «угадывают» метрики

Большинство компаний сталкиваются с узким горлышком: данные лежат в хранилище, но только несколько человек понимают их структуру. Сотрудники превращают вопросы в тикеты, которые ждут очереди. Попытка решить это через встроенный ИИ-аналитик часто приводит к созданию сложного конвейера: классификатор запросов, поиск по таблицам, длинный промпт для генерации SQL и механизм исправления ошибок. Авторы статьи признали, что они фактически «пересобирали Claude», но хуже, чем он делает это сам.

Решение: Архитектура «Мозг + Сервер»

Вместо того чтобы встраивать ИИ в приложение, команда сделала наоборот. Они создали сервер, который предоставляет Claude безопасный доступ к данным и контекст. Архитектура состоит из трех частей:

  • Мозг (Claude): Читает вопрос, пишет SQL и объясняет ответ. Он не видит структуру данных напрямую, а получает её через API.
  • Сервер (Knowledge & Access): Обычное веб-приложение, работающее по протоколу MCP (Model Context Protocol) через HTTP. Оно хранит каталог схем, таблиц и колонок с описаниями, написанными людьми.
  • Навык (Skill): Набор инструкций, которые загружаются в Claude для специфичной обработки данных-запросов.

Безопасность и точность: Как это работает внутри

Ключевое отличие от стандартных RAG-решений — строгий контроль выполнения запросов. Сервер не просто передает текст SQL, а парсит его через собственный парсер Postgres, проверяет права доступа и автоматически добавляет фильтр по арендатору (tenant_id). Это исключает риск утечки данных между клиентами.

Пример трансформации запроса:

Что написал Claude Что фактически выполнилось в БД
SELECT c.city, COUNT(*) 
FROM shop.orders o 
JOIN shop.customers c ON c.id = o.customer_id 
GROUP BY c.city;
SELECT c.city, COUNT(*) 
FROM shop.orders o 
JOIN shop.customers c ON c.id = o.customer_id 
WHERE o.tenant_id = 7 AND c.tenant_id = 7 
GROUP BY c.city;

Сервер также обрабатывает ошибки. Если запрос падает (например, из-за неподдерживаемой функции в Redshift), сервер возвращает конкретную инструкцию по исправлению. 87% неудачных запросов исправляются с первой попытки в течение 10 минут.

Результаты запуска

За 12 недель работы система обработала 1 436 вопросов, обратившись к 781 таблице в 9 странах. Ключевое достижение: ни одному сотруднику не потребовался прямой логин к хранилищу данных, а бизнес-логика (что такое «активный листинг») извлекается из документов, а не из сырых названий колонок.

Источник: Towards AI pub ↗