В прошлой статье я писал про GitBor, git‑клиент, через который я проверяю, что на самом деле наворотил ИИ‑агент. Эта статья про самого агента. Делал я их параллельно. Один инструмент пишет код, второй показывает, что получилось.

Модель хорошая, контекст короткий

Закрытый контур, энергетика, живая ИБ. Copilot и Cursor нам не светят, потому что код уходит на чужие серверы. Зато внутри есть свой шлюз с Qwen.

Модель хорошая. Свежий Qwen среднего размера, короткие задачи делает отлично. Беда в контексте, у нас это около 100 тысяч токенов. Агент прочитал пять файлов, поправил два, посмотрел вывод тестов, и места уже нет. Модель забывает начало задачи и начинает ходить по кругу.

Популярные агенты рассчитаны на облачные модели с огромным контекстом и тратят его как хотят. Я пересмотрел несколько открытых: Cline, Kilo Code, Continue. От каждого взял понемногу, от кого‑то больше, от кого‑то меньше, и стал переделывать под себя. Так появился Skycode.

Начинал я вообще с форка всего VS Code, как сделан Cursor. Для одного человека это оказалось неподъёмно. Каждое обновление Microsoft приходилось вливать руками, чинить сборку, мучиться с подписью установщика. В итоге переехал в обычное расширение, и для корпоратива это оказалось даже лучше. Почему, расскажу ниже.

Главное: беречь контекст

Сюда ушла основная работа. Нужно, чтобы за 100 тысяч токенов агент успел и прочитать что нужно, и сделать работу.

Читать по кусочкам. Файл можно читать по строкам, а не целиком. Есть отдельный инструмент read_symbol: он достаёт из файла один метод или класс. Модели обычно нужен как раз метод, а не файл на две тысячи строк. Если модель второй раз читает файл, который не менялся, она получает короткое «файл тот же», без всего текста.

Не повторять модели то, что она уже видела. После правки она получает кусок вокруг изменения, весь файл заново ей не нужен. Длинный вывод терминала режется, остаются начало и конец. Описание окружения отправляется, только если что‑то поменялось.

Сжимать историю. Когда контекст подходит к пределу, сессия сжимается в краткое содержание: что сделано и что осталось. Тут меня ждал сюрприз. В той части, что пришла из Cline, для моделей «не из топа» вместо сжатия молча выкидывалась половина истории. Модель просто забывала, что делала. В свежем Cline сжатие тоже сильно переделали, но я больше старался, чтобы контекст вообще не забивался.

Видеть, куда он ушёл. В интерфейсе есть кольцо, по нему видно, сколько занято и на что: файлы, вывод команд, история. Если половину съел один лог, это сразу заметно.

кольцо контекста
кольцо контекста

По пути закрыл несколько вещей, которые к уму модели отношения не имеют, но мешали. Модель иногда повторяла одну фразу сотни раз. Виновата оказалась температура 0, с рекомендованными для Qwen настройками петли почти пропали. Ещё модель любила написать «Начну с чтения файлов.» и закончить ответ, ничего не сделав. Теперь агент в таких случаях подталкивает её продолжить. И если ответ обрывается по лимиту длины прямо посреди записи файла, обрезанный файл больше не сохраняется. Модель получает подсказку разбить работу на части.

Жёстких запретов в промпте я почти не ставил. Слабое место модели проще подстраховать подсказкой в нужный момент.

Несколько задач во вкладках

Этим я сам пользуюсь больше всего. Задачи открываются во вкладках, как файлы в редакторе. В одной агент разбирается в модуле, в другой пишет тесты. Работают параллельно.

Пока агент занят, можно писать дальше, сообщения встанут в очередь. Если срочно, второй Enter прерывает агента и отправляет сообщение сразу.

Короткий контекст тут даже помогает: пару небольших задач в разных вкладках модель тянет лучше, чем одну огромную. Ещё агент умеет рисовать прямо в чате схемы связей и таблицы, которые потом копируются в Word или Excel. С чужим legacy это здорово выручает.

вкладки, схема в ответе, очередь
вкладки, схема в ответе, очередь

Голос без интернета

Голосовой набор, где текст появляется пока говоришь, есть много где. Но почти везде звук уходит на сервер, а в закрытом контуре так нельзя.

Сначала у меня стоял Whisper, по‑русски маленькие его версии распознают так себе. Перешёл на GigaAM v3 от Сбера. 17 секунд речи он распознаёт примерно за секунду на обычном процессоре, сразу с запятыми и точками, а текст появляется в поле ввода по ходу речи. Модель скачивается один раз, дальше интернет не нужен.

диктовка
диктовка

Терминал или редактор

Показывал Skycode коллегам. Один сказал: прикольно, но я сижу на OpenCode или Claude Code в терминале. Тут я понял, что разработчики с агентами делятся примерно на два лагеря. Одним удобно в консоли, и для них хорошие инструменты уже есть. Я из вторых, люблю визуал и контроль. Хочу видеть правку прямо в файле и откатить её одним кликом, если что. Skycode как раз для таких.

А в закрытом контуре решающей оказалась разница между программой и расширением. GitBor устанавливается как программа, и версию с ИИ мне в контур не пустили, пришлось делать сборку без ИИ. С консольными агентами будет то же самое, это тоже отдельные программы. Skycode же расширение для VS Code. У нас, как и во многих компаниях, VS Code стоит у всех, а расширения ставятся из Marketplace без отдельного согласования. Если где‑то закрыты и они, с ИБ всё равно проще договориться: расширение ходит только во внутренний шлюз, телеметрии нет, код открыт.

Честно о том, что не так

  • Делаюодин, поэтому что‑то я просто не успел проверить.

  • Проверял в основном на Windows. На macOS и Linux почти не гонял.

  • Контекст всё равно короткий. Все эти хитрости его растягивают, но большую задачу лучше резать на части и смотреть diff глазами.

  • Телеметрии нет специально, поэтому о проблемах у пользователей я узнаю только от них самих.

Зачем эта статья

Skycode бесплатный, код открыт. Мне кажется, в корпоративной среде ближайшие годы будут работать на тех моделях, что подняты внутри, а не на топовых облачных. И важно уже не то, какая модель умнее, а то, как инструмент вокруг неё бережёт её контекст.

Если вы тоже сидите за шлюзом с Qwen, GigaChat или локальной моделью, расскажите в комментариях, что ломается у вас. Самые полезные доработки в Skycode появились как раз из таких историй.

Найти можно в VS Code по запросу «Skycode AI».

Комментарии (2)


  1. stilet69
    20.10.2026 16:29

    Здравствуйте! Длинные строки диалоге не переносит. Приходится скроллить вправо.


    1. l2mega Автор
      20.10.2026 16:29

      Спасибо, что заметили! Поправил в версии 0.6.7, в таблицах и блоках кода длинные строки теперь переносятся, прокручивать вбок не нужно.