AI-розширення для VS Code: розробка під ключ з інтеграцією LLM

Команда витрачає години на рутинні перевірки та пошук помилок вручну — ми розробляємо AI-розширення для VS Code під ключ: асистент вбудовується у звичний редактор і працює за вашими правилами. Скорочує час на типові операції та знімає частину навантаження з рев'ю.
Часті запитання

Розробка AI розширення VSCode: що ламається без нього

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

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

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

Розробка AI розширення VSCode під конкретний проєкт знімає це на рівні доступу до даних: робоча область індексується повністю, і контекст проєкту в підказках — це ваші модулі, внутрішні сервіси та правила рев'ю, а не усереднений приклад із відкритих джерел.

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

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

Асистент не змінює архітектуру проєкту — змінюється такт роботи команди.

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

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

Розширення в VS Code з доступом до індексу репозиторію віддає це одним запитом разом із точками виклику, і правка починається одразу, а не після розбору половини проєкту.

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

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

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

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

Режими роботи асистента: локально, свій сервер, зовнішній сервіс

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

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

Варіант Коли підходить Обмеження
Локальна модель у редакторі Код не повинен залишати машину розробника; потрібна робота без мережі; автодоповнення та пошук за індексом репозиторію Потребує ресурсів робочої станції, на складних задачах якість нижча, оновлення моделі виконується на кожному місці окремо
Свій сервер моделей у контурі Єдині правила доступу, спільний кеш і журнал запитів, команда від п'яти інженерів, свої донавчені моделі Потрібні виділені потужності та супровід, затримка залежить від мережі до сервера, відмова сервера зупиняє всіх
Зовнішній сервіс моделі Максимальна якість на складних задачах, немає власної інфраструктури, потрібні швидкі експерименти Код іде третій стороні, потрібна перевірка ліцензій і політики зберігання, режим залежить від лімітів постачальника

Змішаний режим

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

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

Як ми ведемо впровадження: етапи інженерної роботи

Розробка AI-розширення для VS Code починається не з коду, а з розбору того, як команда працює сьогодні.

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

  1. Аудит процесів розробки — розбираємо типові задачі команди, структуру репозиторію, покриття тестами та операції, на які йде рутина.
  2. Схема інтеграції з редактором — фіксуємо, які дані йдуть до мовної моделі, де зберігаються ключі доступу та як розширення поводиться при втраті мережі.
  3. Прототип на одному сценарії — найчастішу дію, пояснення ділянки коду або генерацію тестів, збираємо в робочу команду редактора та заміряємо час до і після.
  4. Налаштування та збірка — конфігурація під ваші домовленості про код, політики доступу, встановлення на робочі машини через внутрішній реєстр пакетів.
  5. Перевірка на реальних сценаріях — проганяємо асистента на живих задачах і дивимося, яку частку підказок приймають без правок, а які доводиться переписувати.
  6. Передача й навчання команди — документація, короткі розбори та канал зворотного зв'язку, за яким доопрацьовуємо розширення після запуску.

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

Артефакти та політики доступу: що залишається в команди

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

Ми передаємо їх у репозиторій замовника разом із правами й налаштуваннями, а не залишаємо в особистих акаунтах розробників.

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

Кейс: перевірка коду в розподіленій команді

Що було до впровадження

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

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

Що змінили

Ми зібрали розширення для Visual Studio Code, яке знає правила конкретного проєкту: домовленості про стиль, заборонені конструкції, вимоги до тестів.

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

Що сталося за метриками

Час до першого змістовного відгуку скоротився з 26 годин до 40 хвилин, повний цикл перевірки — з двох діб до шести годин. Частка повернень на доопрацювання впала з 34% до 11%, а перевіряльники переключилися на архітектурні питання: логіку, межі сервісів, вплив на суміжні модулі.

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

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

Що робити, якщо в компанії вже є свій сервіс моделей?

Якщо в компанії вже є свій сервіс моделей, переписувати його не потрібно.

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

Перенесення правил проєкту — це переведення домовленостей команди в декларативні налаштування.

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

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

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

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

Питання, які ставлять перед стартом проєкту

Сумніви перед стартом проєкту майже завжди одні й ті самі: де проходять дані, що залишається в команди та хто відповідає за роботу після здачі. Нижче — короткі відповіді по суті; деталі розбираємо на дзвінку, дивлячись на вашу інфраструктуру.

Куди йдуть запити до моделі?

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

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

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

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

Як оновлюються правила проєкту?

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

Що із супроводом після передачі?

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

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

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

Що потрібно від замовника на вході:

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

На першому кроці ми розбираємо ці сценарії та залишаємо ті, що дають вимірюваний результат у першій ітерації.

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

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

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

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

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