All articles

Как это работает

Что такое maxOS

June 15, 2026 · 4 min read

maxOS — опенсорсная AI-native платформа компании ООО «Гарипофф», работающая на локальных моделях. Её открытое ядро — агент: он читает и правит файлы в проекте и выполняет команды в терминале, но делает это на языковой модели, работающей у вас на машине. Ни код, ни запросы, ни содержимое файлов не уходят в чужое облако.

Ядро открыто под лицензией Apache-2.0: github.com/LLC-Garipoff/maxos. С него и начнём.

Агент, а не автодополнение

Автодополнение подсказывает следующую строку. Агент решает задачу целиком: разбирается в проекте, вносит правки в несколько файлов, запускает сборку и тесты, читает вывод и идёт дальше.

Внутри maxOS — простой цикл. Модели передаётся задача и описание доступных инструментов. Модель отвечает не текстом, а решением вызвать инструмент. Инструментов четыре:

  • read_file — прочитать файл;
  • list_dir — посмотреть содержимое каталога;
  • write_file — создать или перезаписать файл;
  • run_bash — выполнить команду в оболочке (сборка, тесты, запуск).

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

Это весь принцип. Никакого скрытого облачного оркестратора — цикл, инструменты и промпт умещаются в несколько сотен строк без рантайм-зависимостей.

Только локальные модели

maxOS сам не считает нейросеть. Он делегирует инференс локальному рантайму с OpenAI-совместимым API — например Ollama или llama.cpp. Вы поднимаете модель у себя:

ollama pull qwen2.5-coder:7b

— а maxOS общается с ней по http://localhost. Облачного эндпоинта в схеме нет вообще: если машина тянет модель, агент работает полностью офлайн.

Здесь есть техническая тонкость, ради которой пришлось писать отдельный слой. Часть локальных моделей честно отдаёт вызовы инструментов в структурном поле tool_calls, как того ждёт OpenAI-совместимый протокол. Но многие — в том числе qwen2.5-coder — вместо этого пишут вызов JSON-текстом прямо в ответе. maxOS распознаёт оба случая: если структурного поля нет, он извлекает вызов из текста (включая формат с тегами <tool_call>) и продолжает цикл. Поэтому фреймворк работает не с одной «правильной» моделью, а с разными.

Куда подключаются модели для кодинга

maxOS — это оркестратор: промпт, инструменты, цикл, песочница, подтверждения. Сам код пишет и правит подключённая модель. Для кодинга в рантайм ставятся специализированные модели — qwen2.5-coder, llama3.1 и подобные, те, что умеют вызывать инструменты. Поменять модель — это одна строка (--model) или переменная окружения; остальной агент не меняется.

Разделение осознанное. Агентский цикл упирается в диск и сеть, а не в вычисления, поэтому он написан на TypeScript — быстро итерировать, легко ставить. А производительные и системные куски, которых ещё нет, мы планируем выносить в нативное ядро на Rust: индексация больших репозиториев и поиск по ним, единый бинарник без зависимости от Node. Логика та же — брать инструмент под конкретную причину, а не писать на Rust то, что упирается в ввод-вывод.

При чём здесь SpotMax

SpotMax — десктопное приложение команды, выросшее из той же идеи: модель, которая тебе помогает, должна работать рядом с тобой, а не в чужом дата-центре. Само имя — это Spotlight + max: инструмент, тесно вшитый в операционную систему, всегда под рукой.

Делали его под продажи — для собственных презентаций и питчей: помощник слышит разговор и в реальном времени подсказывает, чтобы держать нить и контекст. Оказалось, что он полезен шире — пригодился и соискателям, и HR. А сегодня им всё чаще пользуются для переговоров с иностранными контрагентами: SpotMax распознаёт и расшифровывает речь прямо на устройстве и помогает вести разговор, не теряя смысла. Как именно он слышит звонок, расшифровывает речь и подсказывает — разобрано отдельно: Как работает SpotMax: транскрипция, перевод и подсказки во время звонка.

Распознавание и разделение говорящих работают локально — это и есть те модели, что крутятся на устройстве. maxOS — общий, открытый фундамент под этим: агентский слой, который мы вынесли в опенсорс, чтобы его можно было читать, проверять и улучшать.

Почему локально

Облачные агенты для кода отправляют ваш исходник, ваши запросы и часто вывод терминала на сторонний сервер. Для большой части работы — закрытый код, регулируемые данные, NDA, да просто плохая сеть — это неприемлемо. maxOS делает локальный путь единственным: проверить это можно прямо по исходникам, потому что они открыты.

Код, баг-репорты и улучшения — на GitHub: github.com/LLC-Garipoff/maxos. А за конкретные улучшения локальных моделей у нас есть программа вознаграждений.

Что такое maxOS — maxOS