Розробка AI-агента з доступом до бази даних

Дані лежать у десятках таблиць, а співробітники витрачають години на вибірки та звірки. Ми розробляємо AI-агента з доступом до бази даних під ключ: він відповідає на запитання за вашими даними, самостійно збирає потрібні зрізи й показує результат. Скорочує час на підготовку звітів на 60%, без змін в обліковій системі.
Часті запитання

Розробка AI-агента з доступом до бази даних

Мовна модель відповідає впевнено й гладко — і саме цим небезпечна. Вона не бачить актуальних даних компанії: залишків, статусів заявок, умов у договірному реєстрі — і добудовує відсутнє правдоподібними числами.

Аналітик отримує гладкий текст і знову звіряє кожну цифру з обліковою системою, витрачаючи на звіт години замість хвилин.

Причина не в якості моделі, а в тому, що її знання застигло на моменті навчання. Ручна вставка свіжої вивантаження в запит працює до першого зростання реєстру: цифри застарівають на момент надсилання, а обсяг даних не вміщується в контекст. Агент і реальні дані залишаються в різних світах — і звіт на застарілих числах іде в роботу.

Розробка AI-агента з доступом до бази змінює схему: агент сам запитує потрібний зріз і будує відповідь на ньому.

Інтеграція агента зі сховищем іде окремим шаром — схема описана як контракт, доступ обмежений ролями й лише читанням, а відповідь спирається на рядки, які можна переперевірити за хвилину. Цей самий шар вирішує, які таблиці агент бачить, а які залишаються закритими.

Далі розбираємо, як це закривається: як описати схему для агента, чим обмежити вибірку за рядками й ролями і як переконатися, що у відповіді немає вигаданих чисел.

Що змінюється в роботі з даними після запуску агента

До запуску агента питання до даних — це ланцюжок: знайти потрібну людину, дочекатися вікна в її задачах, отримати вивантаження в таблицю. Типовий зріз ішов замовнику через години, а то й до наступного дня, і на момент відповіді формулювання питання нерідко змінювалося.

Агент підключається до PostgreSQL окремою роллю лише для читання: він бачить схеми, описи таблиць і агрегати, але не може змінити жодного рядка.

Відповідь на типове питання збирається за секунди — інженер ставить його словами й отримує і результат, і запит, який цей результат порахував, щоб цифру можна було перевірити, а не прийняти на віру.

Далі змінюється саме розкладка роботи. Частка ручних вивантажень, які робилися заради разових зрізів, скорочується приблизно втричі — залишаються тільки ті, де потрібні дані із зовнішніх систем.

Навантаження на аналітиків зміщується з написання однотипних запитів на опис метрик і перевірку логіки агента, тобто на роботу, яку не можна автоматизувати.

Окремий ефект — клас помилок, який зникає разом із ручним перенесенням. Копіювання між таблицями й звітами давало розбіжності: різні фільтри періоду, застарілий зріз, загублені рядки під час зведення.

Коли всі рахують з одного джерела й за одним визначенням метрики, розбіжність між двома звітами перестає бути нормою.

Простій теж втрачає в ціні. Черговий інженер отримує відповідь на питання «що зламалося і з якого моменту» без очікування аналітика — час реакції скорочується з годин до хвилин, а розбір інциденту починається з фактів, а не зі здогадів.

Способи підключення агента до джерел даних

Режим доступу до даних вибирають не за зручністю підключення, а за тим, який клас відмов припустимий у проді.

Агент формує запит динамічно, тому профіль навантаження заздалегідь невідомий: одна вибірка без ліміту на робочій базі тримає блокування й гальмує запис з основного застосунку.

Звідси базова вимога — обмеження прямого доступу: окремий обліковий запис лише на читання, ліміт часу виконання, заборона зміни схеми, білий список таблиць і журнал викликів із текстом запиту та планом.

Чотири режими і чим вони платять

Варіант Коли підходить Обмеження
Пряме звернення до робочої бази Невелике навантаження, внутрішній інструмент, ліміт рядків Конкурує із записом застосунку, ризик блокувань, доступ за винятком
Копія для читання Важлива стабільність основної бази, затримка даних припустима Відставання від основної бази; важкі запити все одно потрібно обмежувати
Вітрина даних Повторювані сценарії: звіти, зведення, регулярні агрегати Оновлюється за розкладом, під нове питання вітрину треба розширювати
Проміжний шар запитів Потрібні права за ролями й єдині правила доступу Шар треба підтримувати; нестандартні питання впираються в описані метрики

На практиці режими комбінуємо: вітрина закриває часті питання, проміжний шар — решту, пряме читання залишається точково з лімітом рядків і часу. Логіка агента при зміні режиму не переписується — змінюється лише опис інструментів доступу.

Як ми будуємо агента: етапи інженерної роботи

Агент з доступом до бази — це не «модель плюс запит», а контур із прав, обмежень і перевірок. Тому починаємо з даних і доступу, а не з формулювань питань: поки не ясно, на яких таблицях будуються відповіді й хто має право їх читати, демонстрація залишається нестабільною.

  1. Аудит даних. Розбираємо склад таблиць, зв’язки, дублікати, пропуски й поля з чутливими відомостями. Позначаємо, де джерела розходяться і на що можна спиратися без застережень.
  2. Схема зв’язків. Збираємо карту сутностей і ключів, за якими агент з’єднує таблиці. Спірні зв’язки закриваємо представленнями із заданою логікою — неправильне з’єднання дає правдоподібну, але хибну відповідь.
  3. Розмежування прав. Агент працює окремим обліковим записом: лише читання й лише дозволені представлення. Обсяг вибірки й глибина історії обмежені, тому збій не перетворюється на вивантаження всієї бази.
  4. Інструменти агента. Для кожного сценарію описуємо допустимі вибірки й поведінку за нестачі даних. Агент відповідає за фактом або повідомляє про прогалину, а не добудовує відповідь.
  5. Тестовий контур. Розгортаємо копію схеми зі знеособленим зрізом і проганяємо еталонні питання. Рахуємо частку правильних відповідей і час відгуку, правимо зв’язки й описи.
  6. Перевірка відповідей агента. Звіряємо відповіді з розрахунком аналітика й розбираємо розбіжності. Окремо дивимося поведінку на порожніх вибірках і уточнювальних питаннях.
  7. Регламенти супроводу. Передаємо інструкції: що робити при зміні схеми, як додавати правила й як відкочувати зміни.

Що передаємо замовнику: схеми, ролі, регламенти

Проєкт з доступом до бази даних закінчується не лише працюючим агентом. Ми передаємо комплект, за яким ваша команда зможе супроводжувати його сама: бачити, які дані агент читає й куди пише, хто змінює його поведінку і як відкотити зміну, якщо відповіді перестали бути коректними.

  • Схема потоків даних — шлях від питання користувача до рядка в базі: які таблиці й представлення агент читає, куди пише лише після підтвердження людиною, де звертається до зовнішніх сервісів.
  • Політики доступу — окремий обліковий запис агента з правами лише на читання потрібних представлень, перелік заборонених полів, правила маскування й журналювання звернень.
  • Конфігурації поведінки — шаблони інструкцій, обмеження на обсяг вибірки, пороги, після яких агент зупиняється й передає питання оператору.
  • Документація агента — описані ролі й сценарії, каталог доступних дій, приклади коректних і помилкових відповідей із розбором причини.
  • Регламент супроводу — хто з вашої команди оновлює інструкції, з якою періодичністю переглядаються права доступу і за якими подіями запускається перевірка.
  • Порядок оновлення — як нова версія проходить перевірку на контрольному наборі питань, що вважається погіршенням якості й як повернутися до попередньої версії.
  • Розбір збоїв — журнал запитів і відповідей, критерії інциденту, шаблон розбору й строки реакції на звернення вашої команди.

Розбір проєкту: агент з доступом до бази даних

Кейс упровадження агента: сервісна служба постачальника обладнання обробляла до 60 запитів на день — «скільки відвантажень за договором», «які позиції на складі в мінусі». Відповідь збиралася руками: співробітник відкривав три системи, писав запит і зводив вивантаження в таблицю. Середній час відповіді — 40 хвилин.

Етап До Після
Підготовка відповіді 40 хвилин вручну 4 хвилини
Ручні вивантаження 12 на тиждень 2 на тиждень
Питання без участі людини 0 % 86 %
Актуальність даних раз на добу затримка до хвилини

Вузькі місця на старті

Першим обмеженням виявилася не модель, а опис схеми: у PostgreSQL без словника колонок і зв’язків агент будував запити до неіснуючих полів і видавав правдоподібну, але неправильну відповідь.

Друге — права: сервісний обліковий запис мав зайві дозволи, доступ урізали до представлень із рядковою фільтрацією за клієнтом.

Третє — дрейф структури після міграцій: розбіжності ловив регресійний набір з еталонних питань з очікуваними вибірками, він проганяється на кожній зміні.

Результат проєкту

Час відповіді впав з 40 хвилин до 4, ручні вивантаження скоротилися у шість разів, 86 % звернень закриваються без людини. Решта 14 % — нестандартні вибірки — ідуть аналітику з готовим чернетковим запитом, а не з нуля.

Чим відрізняється AI-агент від звичайної інтеграції з базою?

Звичайна інтеграція відповідає на питання, яке відоме заздалегідь. Звіт за розкладом бере одне джерело й один набір умов — його пишуть один раз, він працює передбачувано й майже не навантажує базу поза вікном запуску.

Поки формулювання не змінюються, жорсткий запит простіший у налагодженні: результат відтворюваний, а розбіжність пояснюється конкретним рядком.

Межа проходить там, де змінюється сама постановка. З’єднати дані з кількох таблиць, уточнити фільтр за підсумками минулого розбору, додати новий розріз — звіт доведеться переписувати: правка, перевірка, випуск.

Агент відрізняється тим, що вибирає джерело сам: отримує опис схеми, призначення таблиць, зв’язки й правила доступу, а далі вирішує, до яких даних іти й як їх з’єднати.

На складних запитах різниця видна виразніше. Питання «скільки було замовлень за регіонами за квартал і як це співвідноситься з поверненнями» агент розкладе на два звернення й збере відповідь цілком, тоді як звіт закривав би лише першу половину.

Вибір джерела при цьому обмежений: обліковий запис лише на читання, заданий список таблиць і представлень, межа на обсяг вибірки й журнал — який запит пішов, до чого й навіщо.

Практичний вибір простий. Якщо питання повторюються й відомі заздалегідь — жорсткий запит за розкладом. Якщо формулювання змінюються, а відповідь збирається з кількох таблиць і потребує уточнень — агент.

Їх часто поєднують: агент закриває разові й складені питання, а регулярний звіт залишається стабільним за навантаженням.

Часті технічні питання та сумніви

Точність цифр і обсяг прав агента перевіряють до впровадження, а не після. Нижче — відповіді на сумніви, які звучать на етапі оцінки: вони стосуються не моделі, а того, як агент отримує дані з бази й що йому дозволено робити.

Агент може видати правдоподібну, але неправильну цифру?

Числа агент не вигадує: він формує запит, агрегат рахує сама база, а модель лише переказує результат. Якщо запит не пройшов, повертається явне «даних немає», а не оцінка на око. До кожної відповіді додано запит, який інженер відтворює вручну.

Що буде, якщо структура бази зміниться?

Між моделлю й таблицями лежить описана схема з явними зв’язками. Перейменування або видалення поля ламає мапінг, і агент на старті повідомляє про розбіжність замість тихої підстановки чужого значення. Схему править інженер, а не модель.

Які права видаються агенту?

Окремий обліковий запис: лише читання, лише потрібні представлення, ліміт на обсяг вибірки й час виконання. Запис і зміна структури — поза його правами. На PostgreSQL це налаштовується ролями й окремою схемою зі знеособленими представленнями.

Як бути з персональними даними?

Агент бачить представлення, де персональні поля замасковані або замінені ідентифікатором. Доступ розмежований за ролями, звернення пишуться в журнал — видно, яке питання привело до якої вибірки.

Чи можна підключити кілька джерел одразу?

Так: джерела описуються в загальному реєстрі, агент знає схему кожного й зіставляє записи за ключами. Якщо одне джерело недоступне, у відповіді зазначається, які дані отримано, а які ні.

Обговоримо задачу: що уточнити перед стартом

Перш ніж називати строки, нам потрібні ввідні щодо задачі, а не окремий аудит: як влаштований доступ до даних, які питання агент має закривати і що вважаємо правильною відповіддю. Цього достатньо, щоб повернутися з оцінкою строків і планом робіт за етапами.

  • Джерела даних і спосіб доступу: які системи, окрема репліка чи робоча база, права лише на читання, які таблиці й представлення дозволені.
  • Перелік питань: 15–20 реальних формулювань від співробітників — видно, яка частка запитів типова, а яка потребує розбору людиною.
  • Формат відповіді: таблиця, стислий виклад чи графік; припустима затримка; коли агент зобов’язаний сказати «даних немає», а не здогадуватися.
  • Чутливі поля: що не можна показувати ролям, чи потрібне маскування, розмежування доступу й журнал запитів.
  • Точки входу: чат, внутрішній портал, система заявок — і як у кожній влаштована автентифікація.
  • Профіль навантаження: скільки співробітників і запитів на день, робота в реальному часі чи за розкладом.
  • Рамки інфраструктури: закритий контур чи хмара, вимоги служби безпеки, хто відповідає за доступи.

На обговоренні задачі ми розкладаємо роботу на етапи — підключення до даних, шар перевірки запитів, сценарії відповідей, перевірка на історичних питаннях — і на кожному фіксуємо результат, після якого можна продовжувати або зупинитися. Додайте схему доступу й список питань — повернемося з оцінкою строків і планом старту проєкту.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141