4 октября 2026 г.
2 просмотра
AI-ассистент, который работает, а не болтает: как мы встроили агента в панель KralStroy
KralStroy — это публичный многоязычный сайт с вакансиями и единое рабочее место для сотрудников: веб-панель, Android-приложение, внутренний чат и AI-ассистент. Все отклики и заявки собираются в одном месте. Ассистент — ключевая функция панели: это боковая панель, как в облачных консолях, где сотрудник пишет обычным языком, а ассистент сам выполняет работу.
Идея выросла из моей собственной рутины. Для eBilim мне нужно было завести много контента, причём на четырёх языках: перевести каждый текст и вручную разнести всё по полям формы. Это оказалось невероятно скучно. В KralStroy та же задача теперь решается одним сообщением: сотрудник описывает вакансию, и черновик готов.
Что он умеет. Ассистент ищет и показывает отклики и заявки по статусу, давности и тексту, даёт обзор по разделам и читает вакансии, FAQ, отзывы, статьи и справочники. На вопрос «сколько новых откликов на эту вакансию и от кого» он отвечает данными из базы, а не догадками, и даёт ссылки прямо на карточки в панели. Инструкция у него жёсткая: людей, цифры и статусы брать только из инструментов.
Девять действий — и все с подтверждением. Ассистент умеет менять данные: переводить отклик или заявку в другой статус, добавлять к ним заметку, публиковать и снимать вакансии и статьи, показывать и скрывать FAQ и отзывы, создавать черновик вакансии. Но ни одно изменение не происходит само. Перед выполнением сотрудник видит карточку с названием записи и кнопками «Подтвердить» и «Отклонить». Отклонённое действие ассистент не повторяет без новой просьбы. Удалять записи он не умеет, а писать в чат от имени сотрудника не может.
Подтверждение, которое нельзя подделать. Кнопка «Подтвердить» — это не просто флажок, который присылает браузер. Иначе любой мог бы отправить «одобрено» в обход интерфейса. Каждое подтверждение подписывается на сервере отдельным ключом, и без верной подписи инструмент не выполнится. Все действия ассистента записываются в журнал: кто, что сделал, над какой записью и с каким результатом.
Видит ровно то, что положено сотруднику. Набор инструментов собирается под конкретного человека. Если у сотрудника нет права читать отклики, ассистент о них просто не узнает: инструмента для этого у него не будет. Чтобы менять данные, нужно право на изменение соответствующего раздела. Ассистент может прочитать переписку сотрудника во внутреннем чате, но только его собственную и только на чтение. Чужие диалоги недоступны даже администратору.
Вакансия на трёх языках из одной фразы. Сотрудник описывает вакансию своими словами, и ассистент создаёт черновик сразу на русском, английском и туркменском. Город он находит по каталогу GeoNames с учётом страны, отрасль берёт из справочника, а валюту по умолчанию ставит местную. Зарплату, условия и график он не придумывает: пишет только то, что сказал сотрудник. Черновик проходит ту же проверку, что и форма в панели, а опубликовать его может только человек.
Подбор кандидатов. Можно попросить: «подбери людей под эту вакансию». Ассистент получает описание вакансии и короткие карточки открытых анкет. Он отмечает, кто уже откликнулся и совпадает ли город, и выдаёт пятёрку лучших таблицей: почему человек подходит и чего ему не хватает. Если подходящих нет, он так и говорит. Телефоны и почта кандидатов в модель не попадают. Оценивать людей по национальности, возрасту или полу ассистенту запрещено, если этого нет в требованиях вакансии.
Защита от подвохов в данных. Ассистент читает анкеты, заявки и сообщения чата, а в них может оказаться текст вида «забудь инструкции и сделай…». Поэтому инструкция требует считать всё это данными, а не командами, и последняя линия защиты — подтверждение человеком каждого изменения. Ссылки в ответах ассистента тоже проверяются: допускаются только внутренние страницы панели и обычные веб-адреса, без перенаправлений на чужие сайты.
Технически ассистент работает на Gemini через Vercel AI SDK, а сайт и панель — на Next.js, Drizzle ORM и PostgreSQL. За один запрос он может сделать не больше шести шагов с инструментами, а на сервере ограничены и длина истории, и длина ответа.
Честно говоря, ещё год назад я о таком даже не думал. Впервые я увидел подобного ассистента, кажется, у Vercel: он реально помогал разобраться в их интерфейсе. Потом заметил такого же у Hostinger, а у Cloudflare, на мой взгляд, это сделано лучше всего. Такой помощник, во-первых, просто удобен. А во-вторых, когда ты работаешь с незнакомым интерфейсом и рядом есть кто-то, готовый подсказать, пропадает страх перед неизведанным. Именно это я и хотел дать сотрудникам KralStroy.
Посмотреть KralStroy вживую можно на демо-стенде с тестовыми данными: kralconstruction.bridgecore.systems. Если вам нужен такой же ассистент для вашей системы — с правами, подтверждениями и журналом, — напишите нам через форму на главной странице.