Мой блог
Разработка расширения VS Code для корпоративной LLM в закрытом контуре
Создание специализированного программного обеспечения для закрытых корпоративных контуров требует особого подхода к интеграции искусственного интеллекта. Из-за строгих требований безопасности облачные помощники вроде Copilot или Cursor оказываются недоступны, а работа ведется через внутренние шлюзы с локальными моделями. Именно для таких условий было разработано расширение для VS Code под названием Skycode, оптимизированное под жесткие ограничения контекстного окна и автономную работу без подключения к интернету.
Популярные ИИ-агенты изначально рассчитаны на облачные модели с огромным объемом памяти, тогда как локальные варианты вроде Qwen среднего размера располагают ограниченным контекстом в пределах 100 тысяч токенов. Без специальных алгоритмов управления памятью агент быстро забивает доступное пространство, начинает зацикливаться или терять нить задачи. Переход на формат расширения для редактора кода вместо создания отдельного форка позволил упростить внедрение инструмента в корпоративной среде без лишних бюрократических процедур с отделом информационной безопасности.
Оптимизация контекста и управление историей сессии
Главная техническая сложность при работе с локальными моделями заключается в эффективном расходовании доступного объема токенов. Чтобы агент успевал решать прикладные задачи, не исчерпывая лимит памяти, применяются специальные методы чтения и фильтрации данных.
Инструменты точечного чтения файлов
Вместо загрузки объемных файлов целиком система задействует специализированные команды, позволяющие считывать отдельные строки или извлекать конкретные методы и классы с помощью инструмента read_symbol. Если файл не претерпел изменений с прошлого запроса, модель получает короткое уведомление о том, что документ остался прежним, что исключает дублирование информации. Кроме того, после внесения правок передается лишь локальный фрагмент кода вокруг измененной области, а длинный вывод терминала автоматически обрезается, сохраняя только начальные и конечные строки.
Контроль состояния и борьба с зацикливанием
Для предотвращения типичных сбоев разработчик внедрил ряд программных ограничений и защитных механизмов. При нулевом значении температуры генерации модель иногда начинала повторять одну и ту же фразу сотни раз, поэтому параметры были скорректированы для устранения подобных петлей. Интерфейс расширения дополнен наглядным индикатором в виде кольца, который в режиме реального времени показывает распределение занятой памяти между файлами, историей и логами команд.

Многозадачность во вкладках и автономный голосовой ввод
Архитектура Skycode поддерживает параллельную работу с несколькими задачами, которые открываются в отдельных вкладках редактора. Подобный подход позволяет запустить в одном окне анализ программного модуля, а в соседнем — написание тестов, распределяя общую нагрузку на короткий контекст модели более эффективно.
Пока ИИ занят обработкой текущего запроса, пользователь может продолжать вводить новые сообщения, которые автоматически выстраиваются в очередь. При необходимости срочного вмешательства повторное нажатие клавиши Enter прерывает текущую операцию агента и отправляет команду вне очереди. Дополнительно встроен функционал генерации схем связей и таблиц непосредственно в окне чата с возможностью их последующего переноса в офисные приложения.
Диктовка без отправки данных на внешние серверы
Для голосового ввода текста в условиях закрытого контура стандартные облачные решения не подходят. В качестве альтернативы используется локальная модель GigaAM v3 от Сбера, которая обеспечивает высокую скорость распознавания русской речи на обычном центральном процессоре без обращения к внешним серверам. Загрузка модели происходит единожды при установке, после чего функция работает полностью автономно.
Особенности архитектуры и ограничения
Выбор в пользу расширения для среды разработки, а не автономного приложения, обусловлен особенностями корпоративного софта. Стандартные программы часто требуют сложного согласования со службой безопасности, тогда как расширения для VS Code во многих компаниях устанавливаются из официального маркетплейса значительно проще. При этом отсутствие встроенной телеметрии гарантирует конфиденциальность обрабатываемых данных.
Автор проекта отмечает ряд текущих ограничений: тестирование инструмента проводилось преимущественно в среде Windows, а эффективная обработка крупных задач по-прежнему требует разделения кода на небольшие части с последующей ручной проверкой через diff.

