КейсМайстерня електроніки й прототипів

Майстерня: складська програма з AI-агентами, пошуком за змістом і MCP-сервером

Наша власна програма для майстерні електроніки й прототипів: залишки, внутрішні коди, документи й фото до кожної деталі, пошук за змістом, чат з агентом усередині та MCP-сервер для зовнішніх агентів. Проєкт непублічний, тому показуємо його на скриншотах.

Клієнт
Власний непублічний проєкт
Термін
38 днів до поточної версії
Програма обліку майстерні на екрані ноутбука: таблиця деталей із пошуком за змістом, поруч фото плати
  • 30інструментів MCP-сервера
  • 538векторів для пошуку за змістом
  • 86змін від агентів за 7 днів
  • 877автотестів
Було

Деталей дедалі більше, а пам’ять одна

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

Першу систему задумали надто масштабно: 17 моделей, 18 таблиць, а до інтерфейсу складу справа так і не дійшла, бо нею ніхто не користувався. Тому почали заново й за іншим методом: найменша робоча версія, проба в справі, висновки, розвиток.

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

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

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

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

Рішення

Що ми зробили

Застосунок на Laravel і React із власним MCP-сервером: людина, чат і зовнішні агенти працюють з одними й тими самими даними та інструментами.

Склад, де в кожної деталі є код, документи й фото

Кожна деталь отримує внутрішній код на зразок PRT-000141: за ним її знаходить і людина, і агент. Кількість ведеться з одиницями, статус іде за нею, а тип, області й теги беруться зі словників, які не дають завести дубль: LEDs і LED — один термін, а ESP32-S2 і ESP32-S3 — різні.

До деталі кріпляться фото, даташити, посилання й нотатки. Обладнання описує, що вміє майстерня і де її межі. Проєкт збирає деталі, обладнання, відео й 3D-моделі, які крутяться прямо на сторінці. Відео до 5 ГБ лежать на Google Drive й грають у застосунку без публічного посилання.

Список деталей: фото, внутрішній код, тип, терміни, кількість і статус

Пошук за змістом, а не за назвою

Описуєш задачу своїми словами, і програма знаходить потрібне. Запит «protect a lithium battery» піднімає плати захисту BMS, а за ними — комірки й зарядні модулі. Колонка Match показує, наскільки результат близький до запиту. Опис може бути однією мовою, а запит іншою.

Під капотом — text-embedding-3-large на 1536 вимірів і pgvector усередині PostgreSQL. У вектор входять назва, партномер, тип, області, теги й опис, а також документи й AI-описи фото, тож влучання в даташит піднімає деталь, якій він належить. Код, статус і кількість навмисно лишаються поза вектором: зміна залишку нічого не перераховує. Раз на 10 хвилин програма звіряє SHA-256 тексту й оновлює лише те, що змінилося.

Пошук за змістом: запит про захист літієвого акумулятора й колонка Match

Голосова нотатка стає деталлю на складі

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

Реальний приклад. 28 жовтня о 15:57 — голосова на 26 секунд про плату ШІМ із проханням знайти даташит. О 16:07 заявка закрита: є деталь PRT-000141, кількість агент зрозумів із фото, офіційний даташит NXP на 52 сторінки прикріплено, характеристики в описі. Окремим абзацем агент чесно написав, чого не перевірив: плати не вмикали, а чип на платі без бренду може бути клоном.

Заявка з голосовою нотаткою й звітом агента про створену деталь

Чат усередині й MCP-сервер для зовнішніх агентів

У чаті можна спитати: «хочу керувати 16 сервоприводами від однієї ESP32, що є на складі?». Агент сам робить кілька пошуків, відкриває картки й відповідає таблицею з кодами: що взяти, чого бракує, на що зважити в живленні. Кожен виклик інструмента видно у відповіді. Перед першим повідомленням обираєш режим — лише читання чи читання й запис. Видаляти в чаті не можна.

Те саме доступне ззовні: власний MCP-сервер на 30 інструментів, Streamable HTTP, OAuth 2.1 з PKCE й динамічною реєстрацією клієнтів. Права на читання, запис і видалення вибирає власник на екрані згоди, а інструменти поза цими правами агент навіть не бачить. Перевірено з Claude Code і конектором claude.ai.

Чат з агентом: запитання, виклики інструментів і таблиця з кодами деталей
Стек

На чому зроблено

Laravel і React без конструкторів. Вектори живуть у тій самій базі, що й дані, а чат і MCP-сервер користуються одними класами інструментів.

  • Laravel
  • PHP
  • Inertia.js
  • React
  • TypeScript
  • PostgreSQL
  • pgvector
  • OpenAI API
  • MCP
  • Google Drive
Результат

Що вийшло

Числа з дашборда програми на 2 листопада 2026 року. Проєкт наш, ми користуємося ним самі, і він продовжує рости.

  • 141 деталь і 7 одиниць обладнання

    Склад заповнений: у кожної деталі є код і статус, 140 зараз у наявності. Усе обладнання робоче, і видно, на що здатна майстерня.

  • 42 заявки розібрано

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

  • 235 фото описано AI

    Усі 235 із 235. Описи потрапляють у вектор, тому фото теж працюють на пошук.

  • 86 змін від агентів за 7 днів

    Агенти справді працюють із даними. Фонові задачі за цей час не дали жодного збою.

  • 877 автотестів і PHPStan рівня 7

    22 864 рядки PHP у застосунку й 16 484 рядки тестів. Від першого коміту до поточної версії — 38 днів і 126 комітів.

Інші наші роботи

Ще кілька проєктів студії — від лендингів до інтернет-магазинів.

World Luxury Chamber of Commerce

World Luxury Chamber of Commerce

Anna ELT

Anna ELT

Пасажирські перевезення

Пасажирські перевезення

Офіс адвоката Дядечко

Офіс адвоката Дядечко

Ukreina

Ukreina

Авто Викуп

Авто Викуп

Tehosmotr

Tehosmotr

Викуп Квартир

Викуп Квартир

DZHAGAROVA Beauty School

DZHAGAROVA Beauty School

Amzfunnels

Amzfunnels

Каскад монтаж сервіс

Каскад монтаж сервіс

PPC Monsters

PPC Monsters

АвтоВикуп-1212

АвтоВикуп-1212

GETFIX

GETFIX

Rakovar

Rakovar

ATIS

ATIS

Energy Development

Energy Development

World Luxury Day

World Luxury Day

WORLD FUTURE AWARDS

WORLD FUTURE AWARDS

Aura Digital PR

Aura Digital PR

Потрібна така система для вашого бізнесу?

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

Написати нам

Будемо раді вашому дзвінку

ОБГОВОРИТИ ПРОЕКТ

Ми на зв'язку. Пишіть – ми обов'язково відповімо!

    ВАША ЗАЯВКА ПРИЙНЯТА

    Ми зв'яжемося з Вами найближчим часом

    ТЕХНІЧНІ ПРОБЛЕМИ

    Будь ласка, зв'яжіться з нами за телефоном: