Инструменты пользователя

Инструменты сайта


truenas:application:strata_qwen_goose

Это старая версия документа!


Содержание

Локальная LLM: Qwen3.8-Flash-Next на движке Strata + Goose Desktop (Windows)

Введение

Инструкция описывает, как развернуть на домашнем ПК с Windows локальную модель Qwen3.8-Flash-Next на движке Strata (OpenAI-совместимый API) и подключить её к AI-агенту Goose Desktop, а затем настроить русский язык и MCP-расширения для кодинга (Developer, Playwright).

Всё описанное ниже было выполнено и проверено на реальной машине. Ошибки, на которые пришлось наткнуться, вынесены в раздел «Проблемы и решения».

Развёртывание на отдельном сервере с доступом по сети описано на странице Strata + Qwen на сервере и подключение клиентов по IP.

Конфигурация, на которой проверялось

Компонент Значение
ОС Windows 11 Pro (26200), PowerShell 5.1
GPU NVIDIA GeForce RTX 4080, 16 GB VRAM, драйвер 610.88
CPU Intel Core i9-9900KF (AVX2)
RAM 64 GB
PCIe 3.0 x16
Strata Terminal / движок 0.1.59 (windows-x86_64-cuda-cuda13)
Модель Qwen3.8-Flash-Next IQ3_S, 84 GB, контекст 128K
Goose Desktop 1.51.0
Node.js 24.x (для Playwright MCP)

Требования

  • Видеокарта NVIDIA RTX 20/30/40/50 (или AMD) и актуальный драйвер.
  • Оперативная память: для IQ3_S — 64 GB (модель занимает ~50 GB RAM + почти всю VRAM). Для ПК поменьше см. «Шаг 2: Выбор типа квантования».
  • Свободное место на диске: ~85 GB под модель + ~1 GB под движок и drafter.
  • Установленный Goose Desktop.
  • Node.js (node, npx в PATH) — только для Playwright MCP.
  • Свободный TCP-порт. Порт 8080 (по умолчанию у Strata) часто занят (у нас его держал Docker-контейнер Jira в WSL), поэтому в инструкции используется 8081.

Шаг 1: Установка Strata

Официальная команда установки:

irm https://github.com/Niko1221/Strata/releases/latest/download/install.ps1 | iex

Рекомендуется сначала скачать скрипт и прочитать его, а потом запустить локальную копию:

Invoke-WebRequest -UseBasicParsing https://github.com/Niko1221/Strata/releases/latest/download/install.ps1 -OutFile install.ps1
notepad install.ps1
.\install.ps1

Что делает установщик:

  1. скачивает архив Strata Terminal (~70 MB) и сверяет его SHA-256;
  2. распаковывает в %LOCALAPPDATA%\Strata\terminal\<версия> (права администратора не нужны);
  3. проверяет подпись релиза;
  4. добавляет %LOCALAPPDATA%\Strata\terminal\current\bin в пользовательский PATH.

Ожидаемый вывод:

Strata Terminal installer
  This computer: Windows AMD64 (windows-x86_64), graphics: NVIDIA GeForce RTX 4080
  Terminal 0.1.59 (70 MB)
  Checksum ok.
  Signature ok.
Installed. Run: strata launch

После установки откройте новое окно терминала, иначе команда strata не будет найдена. Если не находится — используйте полный путь:

& "$env:LOCALAPPDATA\Strata\terminal\current\bin\strata.cmd" --version

Шаг 2: Выбор типа квантования

Strata сама скачивает модель нужного размера из своего каталога. Размер задаётся ключом –model, семейство — –family. Чем меньше бит на вес, тем меньше нужно памяти и тем быстрее модель, но ниже качество ответов.

Официальные кванты Qwen3.8-Flash-Next (--family qwen, по умолчанию)

Цифры RAM — оценка установщика Strata для ПК с 16 GB VRAM.

–model Тип Скачивание RAM (примерно) Комментарий
q2_0 2 бита 66 GB ~34 GB самый быстрый, качество ниже; вариант для ПК с 48 GB RAM
iq2_xs 2-битный i-quant 68 GB ~36 GB чуть лучше качество, скорость близка к Q2_0
iq3_xxs 3-битный i-quant 76 GB ~43 GB лучше качество, медленнее (больше работы CPU)
iq3_s 3.5-битный i-quant 84 GB ~50 GB рекомендуется: лучшее качество, близко к полной модели; самый медленный; нужен ПК с 64 GB RAM, где мало что ещё запущено

Кванты Unsloth (--family unsloth)

Для мощных машин (много RAM или несколько GPU). Размеры — объём скачивания по данным strata launch –plan.

–model Скачивание
ud-iq4_xs 94 GB
ud-q4_k_xl 111 GB
ud-q5_k_xl 158 GB
ud-q6_k_xl 169 GB
q8_0 188 GB

Для ud-q4_k_xl и ud-iq4_xs у установщика есть параметр –resident-budget-gib N — сколько GB экспертов держать в RAM.

Другие семейства моделей

  • –family swift — дообученная Swift 1.5 (на базе Qwen3.8-Flash-Next).
  • –family coder — вариант для кода.
  • –family qwen36 — Qwen3.6-35B-A3B (умеет картинки, несколько запросов одновременно).
  • –family deepseek41 — DeepSeek-V4.1-Flash (1.75 / 2.00 / 2.25 bpw — 239 / 257 / 274 GB, для серверов).

Как посмотреть план без изменений

Перед запуском полезно выполнить –plan — он покажет, что будет скачано, и ничего не изменит:

strata launch --model iq3_s --context 128k --vision off --access local --port 8081 --no-tui --plan
Plan for 'IQ3_S 128K':
  model     Qwen3.8-Flash-Next IQ3_S, 84 GB
  context   128K    pictures off    parallel fit to your card
  download  About 84.8 GB to download: the model (83.6 GB) and the DFlash2 drafter (1.2 GB).
  drafting  DFlash2 (its drafter is downloaded first)
  tuning    skip    access This computer only, port 8081
Nothing was changed.

Примеры для других квантов:

strata launch --model q2_0    --context 128k --vision off --access local --port 8081 --no-tui --plan
strata launch --model iq3_xxs --context 128k --vision off --access local --port 8081 --no-tui --plan
strata launch --family unsloth --model ud-q4_k_xl --context 128k --vision off --access local --port 8081 --no-tui --plan

Важно про свои GGUF-файлы. Strata умеет брать уже скачанные файлы (–model-path ПАПКА), но не любые. Сторонняя сборка RVN-Qwen3.8-Flash-Next-IQ3_S не запустилась (см. раздел «Проблемы и решения»). Надёжнее давать Strata скачать модель самой.

Шаг 3: Первый запуск модели

strata launch --model iq3_s --context 128k --vision off --tune skip --access local --port 8081 --no-tui --yes --save-preset "Goose IQ3_S official 8081"

Ключи:

  • –model iq3_s — размер модели (см. таблицы выше).
  • –context 128k — длина контекста (32k / 64k / 128k / 256k).
  • –vision off — без распознавания картинок (Goose они не нужны, экономит память и 0.9 GB скачивания).
  • –access local — доступ только с этого компьютера (без API-ключа).
  • –port 8081 — порт API.
  • –no-tui — без интерактивных экранов: запустить, вывести адрес и вернуть управление.
  • –yes — не задавать вопросов (согласие на скачивание).
  • –save-preset — сохранить все настройки под именем, чтобы потом запускать одной командой.

Первый запуск: скачивается движок под вашу видеокарту (~631 MB), модель (~84 GB), drafter DFlash2 (1.2 GB), затем один раз модель подготавливается для движка. Это долго (зависит от скорости интернета). В конце:

    The model is loaded and answering.
    Ready: http://127.0.0.1:8081
Strata is serving.
  This computer  http://127.0.0.1:8081/v1
  Anthropic apps http://127.0.0.1:8081   (Claude Code: ANTHROPIC_BASE_URL, no /v1 at the end)
[!] DFlash2 answers one request at a time, so Strata set this model to one request at a time.
  Stop:  strata launch --stop --preset "Goose IQ3_S official 8081"

Шаг 4: Ежедневный запуск и остановка

Запуск (загрузка модели ~1 минута):

strata launch --preset "Goose IQ3_S official 8081" --no-tui

Без –no-tui откроется экран мониторинга.

Проверка, что сервер отвечает:

curl.exe http://127.0.0.1:8081/v1/models

Должна вернуться модель «id»: «qwen3.8-flash-next-iq3_s» со статусом «loaded».

Остановка (освобождает ~15.7 GB VRAM и ~50 GB RAM):

strata launch --stop --preset "Goose IQ3_S official 8081"

Полезные команды:

strata launch --status                          # что сейчас запущено
strata launch --list-presets                    # сохранённые пресеты
strata monitor --url http://127.0.0.1:8081      # монитор: скорость, VRAM, очередь запросов
strata logs    --url http://127.0.0.1:8081      # журнал запросов
strata doctor                                   # проверка компонентов (только чтение)
strata update                                   # обновить движок (переключается после пробного старта)

Лог движка: %LOCALAPPDATA%\Strata\launch\<имя-пресета>.engine.log.

Шаг 5: Проверка API вручную

'{"model":"qwen3.8-flash-next-iq3_s","messages":[{"role":"user","content":"Привет, ответь одним словом"}],"max_tokens":200}' | Out-File -Encoding utf8 req.json
curl.exe -s -H "Content-Type: application/json" --data-binary "@req.json" http://127.0.0.1:8081/v1/chat/completions

Ответ содержит content (сам ответ), reasoning_content (рассуждения модели) и timings со скоростью. Streaming («stream»: true) поддерживается.

Шаг 6: Подключение Strata к Goose Desktop

Вариант А: через интерфейс

Settings → Models → Add Custom Provider:

Поле Значение
Provider Type OpenAI Compatible
Display Name Strata Qwen
API URL http://127.0.0.1:8081/v1/chat/completions
API Key пусто (при –access local ключ не нужен)
Available Models qwen3.8-flash-next-iq3_s (точное имя из /v1/models)
Streaming включить

Сохранить и выбрать этого провайдера в чате.

Вариант Б: файлом (то же самое, что делает интерфейс)

Закройте Goose Desktop и создайте файл %APPDATA%\Block\goose\config\custom_providers\custom_strata_qwen.json:

{
  "name": "custom_strata_qwen",
  "engine": "openai",
  "display_name": "Strata Qwen",
  "description": "Local Strata engine: Qwen3.8-Flash-Next IQ3_S on 127.0.0.1:8081",
  "api_key_env": "CUSTOM_STRATA_QWEN_API_KEY",
  "base_url": "http://127.0.0.1:8081/v1/chat/completions",
  "models": [
    { "name": "qwen3.8-flash-next-iq3_s", "context_limit": 131072 }
  ],
  "headers": null,
  "timeout_seconds": 600,
  "supports_streaming": true,
  "requires_auth": false
}

Чтобы сделать его провайдером по умолчанию, в %APPDATA%\Block\goose\config\config.yaml (сначала сделайте резервную копию) замените строку active_provider: … на:

active_provider: custom_strata_qwen
GOOSE_PROVIDER: custom_strata_qwen
GOOSE_MODEL: qwen3.8-flash-next-iq3_s

Проверка

Из терминала (CLI goose.exe лежит внутри Desktop-приложения):

& "<папка Goose>\resources\bin\goose.exe" run --no-session -t "Привет, ответь одним словом"
    __( O)>  ● new session · custom_strata_qwen qwen3.8-flash-next-iq3_s
Привет

Убедиться, что запрос ушёл именно в локальную модель, а не в облако: strata logs –url http://127.0.0.1:8081 — в журнале появятся записи queued → admitted → first_token → finished в момент запроса из Goose.

Порядок запуска: сначала Strata, потом Goose. Если Strata не запущена, Goose пишет Could not connect to 127.0.0.1:8081.

Шаг 7: Русский язык

Модель хорошо отвечает по-русски и технически корректно — переводчик-прокси не нужен. Чтобы Goose всегда отвечал по-русски, положите в корень проекта файл .goosehints:

Всегда отвечай на русском языке. Код, команды, имена файлов, идентификаторы и технические термины оставляй без перевода.
Комментарии в коде пиши на русском, если пользователь не попросил иначе.
Рабочая ОС — Windows 11, оболочка PowerShell 5.1: используй её синтаксис для shell-команд (без &&, пути через \).

.goosehints действует только для сессий, открытых в этой папке. Для всех проектов сразу — положите такой же файл в %APPDATA%\Block\goose\config\.goosehints.

Шаг 8: MCP-расширения для кодинга

Developer (встроенное)

Работа с файлами и shell. Включено по умолчанию; проверить в config.yaml:

  developer:
    enabled: true
    type: platform

Playwright (браузер для проверки UI)

Добавьте в секцию extensions: файла config.yaml:

  playwright:
    enabled: true
    type: stdio
    name: playwright
    description: Browser automation for UI checks (Playwright MCP, Microsoft Edge)
    display_name: Playwright
    cmd: C:\Program Files\nodejs\npx.cmd
    args:
    - -y
    - '@playwright/mcp@0.0.85'
    - --browser
    - msedge
    envs: {}
    env_keys: []
    timeout: 300
    bundled: null
  • В cmd обязательно полный путь к системному npx.cmd, а не просто npx — см. раздел «Проблемы и решения».
  • –browser msedge — использует уже установленный Microsoft Edge, Chromium скачивать не нужно.
  • Проверить пакет вручную: npx -y @playwright/mcp@0.0.85 –help.

После правки config.yaml полностью перезапустите Goose Desktop (включая значок в трее).

Проверка: задача Через расширение playwright открой https://example.com и скажи заголовок страницы → Goose вызывает browser_navigate и отвечает «Example Domain».

GitHub (по желанию)

Нужен ваш вход в GitHub:

Шаг 9: Финальная проверка

В Goose (рабочая папка — ваш проект) дайте задачу:

Создай файл hello.py, который выводит текущее время, и запусти его

Ожидаемо: Goose отвечает по-русски, вызывает write (создаёт hello.py) и shell (python hello.py), выводит время. В strata logs видны запросы.

Производительность (RTX 4080 16 GB + 64 GB RAM, IQ3_S)

Показатель Значение
Генерация ~21.5 токенов/с (DFlash2 принимает ~75% предсказанных токенов)
Чтение промпта ~30 токенов/с на коротких, ~350–400 токенов/с на длинных (12 тыс. токенов ≈ 30–35 с)
Первый запрос Goose (системный промпт + инструменты ≈ 12 тыс. токенов) ~30 с, дальше быстрее за счёт кэша
«Привет, ответь одним словом» через Goose ~18 с
Создать и запустить hello.py ~75 с
Простая задача через Playwright ~90 с
Занято VRAM 15.7 / 16 GB
Параллельность 1 запрос (из-за DFlash2); второй запрос Goose (генерация названия сессии) ждёт в очереди

Проблемы и решения

Порт 8080 занят

Симптом: curl http://127.0.0.1:8080/v1/models → Empty reply from server (curl exit 52).

Проверка, кто держит порт:

Get-NetTCPConnection -LocalPort 8080 -State Listen | Select-Object OwningProcess
Get-CimInstance Win32_Process -Filter "ProcessId=<PID>" | Select-Object Name,ExecutablePath

Если это wslrelay.exe — порт пробрасывается из WSL (у нас — Docker-контейнер Jira). Решение: запускать Strata на другом порту (–port 8081).

Сторонний GGUF не запускается (engine requires BF16)

Симптом при –model-path со сборкой RVN-Qwen3.8-Flash-Next-IQ3_S:

output_hc_down.weight is IQ3_S, but the engine requires BF16; use --compat-bf16
blk.0.ssm_alpha.weight is IQ3_S, but the engine requires BF16; use --compat-bf16
... and 356 more
  [X]  command failed (exit 1): python.exe

Причина: в этой сборке в 3 бита сжаты и служебные тензоры (hc_*, ssm_alpha/beta), а движку Strata они нужны в BF16. Кроме того, Strata по размеру ошибочно определяла эти файлы как UD-IQ4_XS (хотя в заголовке GGUF general.file_type = 26 = IQ3_S) — помогло явное –model iq3_s.

Решение: скачать официальную сборку Strata (strata launch –model iq3_s без –model-path). Альтернатива — перепаковка с –compat-bf16, но качество уже испорченных тензоров не вернётся.

Playwright не загружается в Goose

Симптом в логе Goose (%APPDATA%\Block\goose\data\logs\cli\…):

Failed to load extension playwright: process quit before initialization:
[Goose] Node.js not found. Downloading portable Node.js v22.14.0...
... Error: EPIPE: broken pipe, write

Причина: если в cmd указано просто npx, Goose подменяет его своей обёрткой (<папка Goose>\resources\bin\npx.cmd), которая не видит системный Node.js и пытается скачать портативный; скачивание не успевает до таймаута.

Решение: cmd: C:\Program Files\nodejs\npx.cmd (полный путь).

Goose пишет файлы не в ту папку

Goose работает в рабочей папке сессии (выбирается внизу окна чата или Ctrl+O). Если в тексте задачи указан другой путь («разверни в F:\…»), Goose будет использовать его до конца сессии. Для нового проекта — новый чат (Ctrl+T) в нужной папке, без других путей в задаче.

Шпаргалка

# запуск / остановка
strata launch --preset "Goose IQ3_S official 8081" --no-tui
strata launch --stop --preset "Goose IQ3_S official 8081"
 
# проверка
curl.exe http://127.0.0.1:8081/v1/models
strata monitor --url http://127.0.0.1:8081
strata logs --url http://127.0.0.1:8081
Что Где
Strata %LOCALAPPDATA%\Strata
Провайдер Goose %APPDATA%\Block\goose\config\custom_providers\custom_strata_qwen.json
Конфиг Goose (расширения, провайдер по умолчанию) %APPDATA%\Block\goose\config\config.yaml
Логи Goose %APPDATA%\Block\goose\data\logs
Модель в Goose custom_strata_qwen / qwen3.8-flash-next-iq3_s
truenas/application/strata_qwen_goose.1794504286.txt.gz · Последние изменения: 2026/11/12 17:24 — werwolf