📱
Как мы внедряли ИИ в FinOps дашбордRead on website.Читать на сайте.
Мы внедрили агента в FinOps дашборд, о котором я рассказывал в течение этого года. Несмотря на неоднозначное отношение к ИИ в обществе, конкретно это применение ИИ я считаю действительно полезным. Но обо всём по порядку.
Зачем агент в дашбордеАгент способен делать аналитику быстрее, чем человек. Представьте, вместо того чтобы аналитику вручную крутить таблицы, анализируя траты, любой пользователь приложения может спросить обычным человеческим языком ИИ-агента и получить ответ на таком же человеческом языке.
К примеру, менеджер может задать вопрос: “Почему у нас был резкий скачок трат в октябре 2025 года?”. Сколько времени будет потрачено, если поручить эту задачу человеку? Несколько десятков минут? Или несколько часов? ИИ-агент может подготовить аналитику меньше чем за минуту. Но чтобы агент мог это делать, ему нужно уметь ходить в базу данных и для этого есть MCP-серверы.
Как работает агент и что такое MCPГлавная часть, связывающая приложение с агентом, – это MCP (
Model Context Protocol), специальный интерфейс, с которым может работать агент.
Проще всего думать об MCP как о REST API для ИИ. Вместо привычного UI-клиента у вас LLM, а вместо контроллеров — «инструменты» MCP-сервера. Агент видит список инструментов и сам решает, какой инструмент вызвать, подставляя аргументы и обрабатывая ответ.
В качестве инструментов может быть что угодно: функция, которая отправляет запросы к базе данных, любой API и так далее. Разработчики библиотек уже делают MCP-серверы вокруг своих продуктов, чтобы агенты в наших IDE могли получать самую свежую информацию об их использовании. Например, есть MCP-серверы для
Next.js,
Chakra UI,
RSuite.
Архитектура решения и жизненный цикл запросаНа диаграмме показано, как проходит типичный запрос.
1. Пользователь задаёт вопрос.
2. Бэкенд добавляет к нему системный промпт (кто такой агент, с какими данными он работает, какие у него ограничения) и отправляет диалог агенту с включённым MCP.
3. Агент анализирует вопрос, выбирает нужный инструмент MCP, генерирует SQL-запрос и отправляет его на MCP-сервер.
4. MCP-сервер выполняет SQL в базе от имени read-only пользователя и возвращает результат.
5. Агент интерпретирует данные, формирует ответ и бэкенд отдаёт его пользователю.
Настройка агента и безопасность1. Если планируете использовать сторонний MCP-сервер, то обязательно проверьте его на наличие уязвимостей. Например, MCP-сервер для Postgres от Anthropic какое-то время
имел уязвимость к SQL инъекциям.
2. Выдавайте для MCP-сервера доступ только на чтение и
только на те данные, которые нужны для выполнения задачи. В идеале, это должно быть сделано на уровне привилегий пользователя, который будет использоваться в MCP-сервере.
3. Подбирайте reasoning (способность модели анализировать информацию), отвечающий вашим требованиям. Чем выше reasoning, тем осмысленнее будут ответы модели, но тем дольше будет обрабатываться запрос. Мы используем GPT-5 mini и дефолтный reasoning приводил к тому, что запросы обрабатывались около полуминуты. Для нас это было слишком долго, поэтому мы снизили до низкого уровня. Этого оказалось достаточно для генерации SQL-запросов.
4. В системном промпте максимально подробно объясняйте схему БД, типы данных, примеры запросов, формат для результатов и так далее. Существующие LLM могут ошибиться, извлечь не те данные или неправильно их интерпретировать.
5. Приготовьтесь к тому, что, скорее всего, вам придётся городить костыли. Все инструменты и библиотеки связанные с MCP сырые. Например, нам пришлось запускать MCP-сервер в одном контейнере с приложением, потому что он
поддерживает только stdio.
ЗаключениеС технической стороны реализация аналогичного приложения достаточно проста – это обычный враппер над GPT с MCP-сервером и read-only доступом к БД. Но даже такое приложение способно экономить человеко-часы – агент сильно сокращает путь от вопроса до первых цифр. Теперь ответы на такие вопросы можно получить уже через минуту. Главное не доверять слепо ИИ и перепроверять результаты.