Инженер Thomson Reuters запустила офлайн-агента на Qwen3.5 9B в Гималаях
Принципал-инженер Thomson Reuters Риттика Джиндал живёт в предгорьях Гималаев, где сеть и свет пропадают регулярно. Чтобы не терять кодинг-агента вместе с интернетом, она запустила его целиком на Mac: OpenCode, Ollama и открытая модель Qwen3.5 9B. Проверка вышла наглядной. Wi-Fi выключен, внешний хост не резолвится, а агент находит баг в калькуляторе расходов, правит одну строку и запускает тесты. Проходят все пять. Условие одно: проект, зависимости и модель надо скачать заранее. • Скачанная 9B-модель весит 6,6–7,6 ГБ, под контекст 64k лучше закладывать больше памяти • OpenCode спрашивает разрешение на каждую правку и команду • Ещё два упражнения, CSV-отчёт и анализатор логов, пока без офлайн-прогонов
AI-обработка оригинала Latent Space (swyx); редакция Hamidun News
Сеть в предгорьях Гималаев пропадает так же регулярно, как свет. Именно там живёт Риттика Джиндал, Principal Engineer в Thomson Reuters. Она решила выяснить, сколько рабочего процесса с кодинг-агентом сохранится, если отключить интернет совсем. Ответ получился конкретным. Связка из OpenCode 1.19.4, Ollama и открытой модели Qwen3.5 9B на одном Mac находит баг, предлагает правку и запускает тесты, пока Wi-Fi выключен. Пример маленький: починка в одну строку, после которой проходят все пять тестов. Зато стек воспроизводим и описан до команд.
Как собрана офлайн-связка
Распределение ролей простое. Ollama держит модель и поднимает локальный сервис, OpenCode читает файлы проекта, предлагает правки и гоняет команды. Конфиг opencode.json направляет и основную, и вспомогательную модель (model и small_model) на Qwen3.5 9B, а baseURL указывает на http://127.0.0.1:11434/v1. Включён только локальный провайдер, веб-инструменты заблокированы, а на правки файлов и shell-команды агент запрашивает разрешение. Ollama стартует с OLLAMA_NO_CLOUD=1 и контекстом OLLAMA_CONTEXT_LENGTH=65536. Модель скачивается командой ollama pull qwen3.5:9b, пока интернет ещё есть. Запуск идёт с флагом --pure, который отключает внешние плагины.
Из альтернатив автор упоминает Aider: он тоже умеет работать с Ollama и подойдёт тем, кому нужен более ведомый сценарий редактирования.
Какую модель брать и сколько памяти ей нужно
Для выбора автор взяла опубликованные результаты из карточки Qwen, а не собственные замеры на ноутбуке. LiveCodeBench v6 проверяет генерацию кода, BFCL-V4 оценивает вызов функций, то есть умение агента выбрать инструмент и подставить верные аргументы.
- Qwen3.5 4B: LiveCodeBench v6 — 55,8; BFCL-V4 — 50,3; загрузка 3,3–4,0 ГБ.
- Qwen3.5 9B (использована в тесте): 65,6 и 66,1; загрузка 6,6–7,6 ГБ.
- Qwen3.5 27B: загрузка 17–20 ГБ, бенчмарки в материале не приводятся.
- gpt-oss-20b: LiveCodeBench v6 — 74,6; BFCL-V4 не опубликован.
Девятимиллиардная версия выбрана из-за заметно лучшего вызова инструментов, чем у 4B. Размер загрузки при этом не равен требованиям к RAM. Для сборки Qwen3.5 9B на 6,6 ГБ Voltti закладывает 12–16 ГБ памяти, а конфигурация с контекстом 64k может потребовать больше. Запас нужен и под другие приложения.
Отдельно в материале разобрана сама оболочка. Препринт The Scaffold Effect in Coding Agents сравнил OpenCode, Goose и OpenHands-SDK на 50 задачах Terminal-Bench Pro с двумя облачными моделями:
- Qwen3.6 Plus: Goose — 48% [34–62%], OpenCode — 50% [36–64%], OpenHands-SDK — 50% [36–64%].
- MiniMax M2.5: Goose — 38% [24–52%], OpenCode — 46% [32–60%], OpenHands-SDK — 46% [32–60%].
Доверительные интервалы 95% перекрываются, и авторы предупреждают, что большинство различий статистически неочевидны. Зато расход токенов отличается резко: OpenCode тратит примерно в 40 раз больше токенов на решённую задачу, чем Goose. Для облачного API это прямые деньги. Для локальной модели это время генерации и давление на контекст. Прогнозом для 9B на ноутбуке эти цифры не служат, ведь там были облачные модели.
Что показал тест с выключенным Wi-Fi
Тестовый проект — расчёт расходов: пять трат, включая возврат, правильный итог 25,50. Стартовая программа печатает 8,00, то есть значение последней траты, потому что функция перезаписывает сумму на каждой итерации. Из тестов падают три: десятичная арифметика, возвраты и пример с реальными данными. Пустой ввод и один элемент проходят.
В онлайне агент получил диагностический запрос и прочитал код, но сначала предложил pytest, хотя проект использует встроенный unittest. Разрешение на запуск позволило увидеть команду до выполнения. Вывод автора: в следующий раз прописывать в промпте python3 -m unittest -v.
После проверки Ollama через curl на localhost автор отключила Wi-Fi. Запрос к внешнему адресу завершился ошибкой Could not resolve host. Агент предложил правку `total = Decimal(amount)` → `total += Decimal(amount)`, запросил разрешение на редактирование и запустил тесты. Затем автор сама прогнала проверку: все пять тестов зелёные, файл тестов не менялся.
Два других упражнения, CSV-отчёт и анализатор логов, по семь тестов у каждого, в репозитории есть, но офлайн-прогонов по ним пока нет. Именно CSV-задача станет более честным экзаменом: там агенту нужно дописать функцию, а не поправить одну строку.
Практический вывод для тех, кто работает в поезде, в самолёте или в зоне плохой сети: всё нужное должно лежать на диске до потери связи. Это модель, зависимости проекта и документация. Запускайте именно ту конфигурацию, которую будете использовать офлайн. Давайте агенту точную команду тестов и держите задачи узкими: один баг или небольшая фича. Проверяйте дифф и запускайте оригинальные тесты сами. Следите за памятью: контекст 64k и открытые приложения съедают то, что осталось после модели. Большой репозиторий или незнакомый фреймворк этот эксперимент пока не проверял.
- 28 окт. 2026 г.NVIDIA выпустила Nemotron 3.5 Super VL на 120B и модели Bolt для локальных агентов
- 28 окт. 2026 г.aiedit прячет от ИИ-агента отдельные строки кода: 5 уровней и 857 тестов
- 28 окт. 2026 г.vps-forge: агенты с root на VPS получили автооткат, самобаны упали с 7 из 60 до 0
- 28 окт. 2026 г.BigSleep на LLM нашёл в V8 45 уязвимостей, Fuzzilli — 37, пересечение 25%
Вопросы и ответы по материалу
Что известно по теме: как собрана офлайн-связка?
Распределение ролей простое. Ollama держит модель и поднимает локальный сервис, OpenCode читает файлы проекта, предлагает правки и гоняет команды. Конфиг opencode.json направляет и основную, и вспомогательную модель (model и small_model) на Qwen3.5 9B, а baseURL указывает на http://127.0.0.1:11434/v1. Включён только локальный провайдер, веб-инструменты заблокированы, а на правки файлов и shell-команды агент запрашивает разрешение. Ollama стартует с OLLAMA_NO_CLOUD=1 и контекстом OLLAMA_CONTEXT_LENGTH=65536. Модель скачивается командой ollama pull qwen3.5:9b, пока интернет е
Что известно по теме: какую модель брать и сколько памяти ей нужно?
Для выбора автор взяла опубликованные результаты из карточки Qwen, а не собственные замеры на ноутбуке. LiveCodeBench v6 проверяет генерацию кода, BFCL-V4 оценивает вызов функций, то есть умение агента выбрать инструмент и подставить верные аргументы. Qwen3.5 4B: LiveCodeBench v6 — 55,8; BFCL-V4 — 50,3; загрузка 3,3–4,0 ГБ. Qwen3.5 9B (использована в тесте): 65,6 и 66,1; загрузка 6,6–7,6 ГБ. Qwen3.5 27B: загрузка 17–20 ГБ, бенчмарки в материале не приводятся. gpt-oss-20b: LiveCodeBench v6 — 74,6; BFCL-V4 не опубликован. Девятимиллиардная версия выбрана из-за заметно лучшего
Что известно по теме: что показал тест с выключенным Wi-Fi?
Тестовый проект — расчёт расходов: пять трат, включая возврат, правильный итог 25,50. Стартовая программа печатает 8,00, то есть значение последней траты, потому что функция перезаписывает сумму на каждой итерации. Из тестов падают три: десятичная арифметика, возвраты и пример с реальными данными. Пустой ввод и один элемент проходят. В онлайне агент получил диагностический запрос и прочитал код, но сначала предложил pytest, хотя проект использует встроенный unittest. Разрешение на запуск позволило увидеть команду до выполнения. Вывод автора: в следующий раз прописывать в пр
Соберите рабочего ИИ-агента или сервис своими руками без ручного кода
В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.