Перейти к основному содержимому

AI Providers

На этой странице описана настройка поставщиков вывода для VibeOS — от облачных API, таких как OpenRouter и Anthropic, до самостоятельных конечных точек, таких как Ollama и vLLM для расширенной маршрутизации и резервных конфигураций. Вам нужен хотя бы один провайдер, настроенный на использование .

Inference Providers​

Вам нужен хотя бы один способ подключения к LLM. Используйте vibeos model для интерактивного переключения поставщиков и моделей или настройте напрямую:

ПровайдерНастройка
Nous Portalvibeos model (OAuth, на основе подписки)
OpenAI Codexvibeos model (ChatGPT OAuth, использует модели Codex)
GitHub Copilotvibeos model (OAuth поток кода устройства, COPILOT_GITHUB_TOKEN, GH_TOKEN или gh auth token)
GitHub Copilot ACPvibeos model (создает локальный copilot --acp --stdio)
Anthropicvibeos model (Claude Макс. + дополнительные кредиты на использование через OAuth; также поддерживает ключ Anthropic API или токен ручной настройки — см. примечание ниже)
OpenRouterOPENROUTER_API_KEY в ~/.vibeos/.env
NovitaAINOVITA_API_KEY в ~/.vibeos/.env (поставщик: novita, более 200 моделей, Модель API, Песочница агента, GPU Облако)
z.ai / GLMGLM_API_KEY в ~/.vibeos/.env (провайдер: zai)
Kimi / MoonshotKIMI_API_KEY в ~/.vibeos/.env (провайдер: kimi-coding)
Kimi / Moonshot (Китай)KIMI_CN_API_KEY в ~/.vibeos/.env (провайдер: kimi-coding-cn; псевдонимы: kimi-cn, moonshot-cn)
Arcee AIARCEEAI_API_KEY в ~/.vibeos/.env (провайдер: arcee; псевдонимы: arcee-ai, arceeai)
GMI ОблакоGMI_API_KEY в ~/.vibeos/.env (провайдер: gmi; псевдонимы: gmi-cloud, gmicloud)
MiniMaxMINIMAX_API_KEY в ~/.vibeos/.env (провайдер: minimax)
MiniMax КитайMINIMAX_CN_API_KEY в ~/.vibeos/.env (провайдер: minimax-cn)
xAI (Grok) — Отзывы APIXAI_API_KEY в ~/.vibeos/.env (провайдер: xai)
xAI Grok OAuth (СуперГрок)vibeos model → "xAI Grok OAuth (SuperGrok / Premium+)" — вход в браузер, без ключа API. См. руководство
Qwen Облако (Alibaba DashScope)DASHSCOPE_API_KEY в ~/.vibeos/.env (провайдер: alibaba)
Облако Alibaba (план кодирования)DASHSCOPE_API_KEY (провайдер: alibaba-coding-plan, псевдоним: alibaba_coding) — отдельный биллинг SKU, другая конечная точка
Kilo CodeKILOCODE_API_KEY в ~/.vibeos/.env (провайдер: kilocode)
Xiaomi МиМоXIAOMI_API_KEY в ~/.vibeos/.env (провайдер: xiaomi, псевдонимы: mimo, xiaomi-mimo)
Tencent TokenHubTOKENHUB_API_KEY в ~/.vibeos/.env (провайдер: tencent-tokenhub, псевдонимы: tencent, tokenhub, tencentmaas)
OpenCode ZenOPENCODE_ZEN_API_KEY в ~/.vibeos/.env (провайдер: opencode-zen)
OpenCode GoOPENCODE_GO_API_KEY в ~/.vibeos/.env (провайдер: opencode-go)
DeepSeekDEEPSEEK_API_KEY в ~/.vibeos/.env (провайдер: deepseek)
Hugging FaceHF_TOKEN в ~/.vibeos/.env (провайдер: huggingface, псевдонимы: hf)
Google / GeminiGOOGLE_API_KEY (или GEMINI_API_KEY) в ~/.vibeos/.env (провайдер: gemini)
OpenAI API (прямой)OPENAI_API_KEY в ~/.vibeos/.env (поставщик: openai-api, дополнительно OPENAI_BASE_URL)
Azure AI Foundryvibeos model → "Azure AI Foundry" (поставщик: azure-foundry; использует Azure OpenAI / Foundry конечная точка и ключ)
AWS Bedrockvibeos model → "AWS Bedrock" (провайдер: bedrock; стандартная цепочка учетных данных AWS через boto3)
NVIDIA СборкаNVIDIA_API_KEY в ~/.vibeos/.env (поставщик: nvidia; модели NIM, размещенные на build.nvidia.com)
Ollama Облакоvibeos model → "Ollama Облако" (поставщик: ollama-cloud; размещение в облаке Ollama API)
Qwen OAuthvibeos model → "Qwen OAuth" (провайдер: qwen-oauth; браузер PKCE логин)
MiniMax OAuthvibeos model → "MiniMax (OAuth)" (провайдер: minimax-oauth; браузер PKCE логин)
StepFunSTEPFUN_API_KEY в ~/.vibeos/.env (провайдер: stepfun)
LM Studiovibeos model → "LM Studio" (поставщик: lmstudio, дополнительно LM_API_KEY)
Пользовательская конечная точкаvibeos model → выберите «Пользовательская конечная точка» (сохранено в config.yaml)

Официальный путь к ключу API см. в специальном [Google] Gemini руководство](/guides/google-gemini).

Псевдоним ключа модели

В разделе конфигурации model: вы можете использовать либо default: или model: в качестве имени ключа для идентификатора вашей модели. Оба model: { default: my-model } и model: { model: my-model } работают одинаково.

Nous Portal​

Nous Portal — это Nous Research и рекомендуемый способ запуска VibeOS. Один вход OAuth охватывает более 300 передовых агентных моделей (Claude, GPT, Gemini, DeepSeek, Qwen, Kimi, GLM, MiniMax, Grok, ...) плюс Tool Gateway (веб-поиск, создание изображений, TTS, автоматизация браузера) плюс Nous Чат — счет выставляется по вашей подписке Nous, а не по отдельным учетным записям каждого поставщика.

vibeos setup --portal     # fresh install — OAuth + provider + gateway in one command
vibeos model # existing install — pick "Nous Portal" from the list
vibeos portal info # inspect login + routing at any time

У вас еще нет подписки? Получите его по адресу portal.nousresearch.com/manage-subscription.

Для получения полной информации: см. специальную страницу интеграции Nous Portal (что входит в подписку, каталог моделей, устранение неполадок) и пошаговое описание Запуск VibeOS с руководством Nous Portal.

Идентификация клиента. Каждый запрос Портала от VibeOS содержит тег client=vibeos-client-v<version> (например, client=vibeos-client-v0.13.0) автоматически согласовывается с установленной версией. Оно отправляется по всем путям Портала — основному циклу чата, дополнительным вызовам, сумматору сжатия, веб-извлечению — и позволяет телеметрии на стороне Портала отличать трафик VibeOS от трафика других клиентов. Никакой конфигурации не требуется; тег обновляется автоматически при vibeos update`.

JWT аутентификации (автоматически). VibeOS предпочитает JWT с ограниченной областью действия inference:invoke для запросов к порталу с устаревшим непрозрачным путем к сеансовому ключу как запасной вариант. Никакой настройки не требуется — учетные данные управляются потоком OAuth и меняются прозрачно. Отозванные токены обновления помещаются в карантин во избежание циклов повтора.

Codex Примечание

OpenAI Codex Поставщик выполняет аутентификацию с помощью кода устройства (откройте URL, введите код). VibeOS сохраняет полученные учетные данные в своем собственном хранилище аутентификации под ~/.vibeos/auth.json и может импортировать существующие учетные данные Codex CLI из ~/.codex/auth.json, если они имеются. Codex CLI установка не требуется.

Если обновление токена завершилось с ошибкой терминала (HTTP 4xx, invalid_grant, отозван грант и т. д.), VibeOS помечает токен обновления как мертвый и прекращает его воспроизведение, чтобы вы не видели поток одинаковых ошибок аутентификации. Вместо этого следующий запрос отображает типизированное сообщение повторной аутентификации. Запустите vibeos auth add codex-oauth (или vibeos model → OpenAI Codex), чтобы начать новый вход в систему с использованием кода устройства; карантин очищается при следующем успешном обмене данными.

предупреждение

Даже при использовании Nous Portal, Codex или пользовательской конечной точки некоторые инструменты (зрение, веб-сводка, МОА) используют отдельную «вспомогательную» модель. По умолчанию (auxiliary.*.provider: "auto"), VibeOS направляет эти задачи в вашу основную модель чата — ту же модель, которую вы выбрали в vibeos model. Вы можете переопределить каждую задачу по отдельности, чтобы направить ее в модель cheaper/faster (например, Gemini Flash на OpenRouter) — см. Вспомогательный Модели.

Nous Tool Gateway

Платные подписчики Nous Portal также получают доступ к Tool Gateway — веб-поиск, создание изображений, TTS и автоматизация браузера, доступные по вашей подписке. Никаких дополнительных ключей API не требуется. При новой установке vibeos setup --portal регистрирует вас, устанавливает Nous в качестве вашего провайдера и включает шлюз одной командой. Существующие пользователи могут включить его из vibeos model или для каждого инструмента из vibeos tools. Проверяйте маршрутизацию в любое время с помощью vibeos portal info.

Две команды для управления моделью​

VibeOS имеет две команды модели, которые служат разным целям:

КомандаКуда бежатьЧто он делает
vibeos modelВаш терминал (вне сеанса)Мастер полной настройки — добавьте провайдеров, запустите OAuth, введите ключи API, настройте конечные точки
/modelВнутри сеанса чата VibeOSБыстрое переключение между уже настроенными поставщиками и моделями

Если вы пытаетесь переключиться на поставщика, который еще не настроен (например, у вас настроен только OpenRouter и вы хотите использовать Anthropic), вам нужен vibeos model, а не /model. Сначала выйдите из сеанса (Ctrl+C или /quit), запустите vibeos model, завершите настройку провайдера, затем начните новый сеанс.

Anthropic (Native)​

Используйте модели Claude напрямую через Anthropic API — прокси OpenRouter не требуется. Поддерживает три метода аутентификации:

Требуется Claude Максимальное количество кредитов «дополнительного использования»

При аутентификации через vibeos model → Anthropic OAuth (или через vibeos auth add anthropic --type oauth), VibeOS направляется как Claude Код к вашей учетной записи Anthropic. Это работает только в том случае, если вы пользуетесь планом Claude Max и приобрели дополнительные кредиты на использование. Базовый лимит плана Max (использование, включенное в код Claude по умолчанию) не расходуется VibeOS — используются только кредиты extra/overage, которые вы добавили сверху. Claude Pro-подписчики не могут использовать этот путь.

Если у вас нет Макс. + дополнительных кредитов, используйте вместо этого ANTHROPIC_API_KEY — запросы оплачиваются по токенам организации, использующей этот ключ (стандартная цена API, независимая от каких-либо Claude подписка).

# With an API key (pay-per-token)
export ANTHROPIC_API_KEY=***
vibeos chat --provider anthropic --model claude-sonnet-4-6

# Preferred: authenticate through `vibeos model`
# VibeOS will use Claude Code's credential store directly when available
vibeos model

# Manual override with a setup-token (fallback / legacy)
export ANTHROPIC_TOKEN=*** # setup-token or manual OAuth token
vibeos chat --provider anthropic

# Auto-detect Claude Code credentials (if you already use Claude Code)
vibeos chat --provider anthropic # reads Claude Code credential files automatically

Когда вы выбираете Anthropic OAuth через vibeos model, VibeOS предпочитает Claude собственное хранилище учетных данных кода, а не копирование токена в ~/.vibeos/.env. Это позволяет обновлять учетные данные Claude.

Или установите их навсегда:

model:
provider: "anthropic"
default: "claude-sonnet-4-6"
Псевдонимы

--provider claude и --provider claude-code также работают как сокращение для --provider anthropic.

GitHub Copilot​

VibeOS поддерживает GitHub Copilot как первоклассного поставщика с двумя режимы:

copilot — Прямой Copilot API (рекомендуется). Использует вашу подписку GitHub Copilot для доступа к GPT-5.x, Claude, Gemini и другим моделям через Copilot API.

vibeos chat --provider copilot --model gpt-5.4

Параметры аутентификации (проверяются в следующем порядке):

  1. COPILOT_GITHUB_TOKEN переменная среды
  2. GH_TOKEN переменная среды
  3. GITHUB_TOKEN переменная среды
  4. gh auth token CLI запасной вариант

Если токен не найден, vibeos model предлагает вход с кодом устройства OAuth — тот же процесс, который используется Copilot CLI и открытый код.

Типы токенов

Copilot API не поддерживает классические токены личного доступа (ghp_*). Поддерживаемые типы токенов:

ТипПрефиксКак получить
токен OAuthgho_vibeos model → GitHub Copilot → Войти с помощью GitHub
Мелкозернистый PATgithub_pat_GitHub Настройки → Настройки разработчика → Детализированные токены (требуется разрешение Copilot Запросы)
GitHub Токен приложенияghu_Через GitHub Установка приложения

Если ваш gh auth token возвращает токен ghp_*, используйте vibeos model для аутентификации через OAuth вместо этого

Copilot поведение аутентификации в VibeOS

VibeOS отправляет поддерживаемое сообщение токен GitHub (gho_*, github_pat_* или ghu_*) непосредственно на api.githubcopilot.com и включает заголовки, специфичные для Copilot (Editor-Version, Copilot-Integration-Id, Openai-Intent, x-initiator).

На HTTP 401 VibeOS теперь выполняет однократное восстановление учетных данных перед резервный вариант:

  1. Повторно разрешить токен через обычную цепочку приоритетов (COPILOT_GITHUB_TOKEN → GH_TOKEN → GITHUB_TOKEN → gh auth token)
  2. Пересоберите общий клиент OpenAI с обновленными заголовками
  3. Повторите запрос один раз

Некоторые старые прокси сообщества используют потоки обмена api.github.com/copilot_internal/v2/token. Эта конечная точка может быть недоступна для некоторых типов учетных записей (возвращает 404). Таким образом, VibeOS сохраняет прямую аутентификацию по токену в качестве основного пути и полагается на обновление учетных данных во время выполнения + повторную попытку для обеспечения надежности.

API маршрутизация: Модели GPT-5+ (кроме gpt-5-mini) автоматически используют Ответы API. Все остальные модели (GPT-4o, Claude, Gemini и т. д.) используют завершение чата. Модели автоматически определяются из действующего каталога Copilot.

copilot-acp — Copilot ACP серверная часть агента. Создает локальный Copilot CLI как подпроцесс:

vibeos chat --provider copilot-acp --model copilot-acp
# Requires the GitHub Copilot CLI in PATH and an existing `copilot login` session

Постоянная конфигурация:

model:
provider: "copilot"
default: "gpt-5.4"
Переменная средыОписание
COPILOT_GITHUB_TOKENТокен GitHub для Copilot API (первый приоритет)
VIBEOS_COPILOT_ACP_COMMANDПереопределить двоичный путь Copilot CLI (по умолчанию: copilot)
VIBEOS_COPILOT_ACP_ARGSПереопределить ACP args (по умолчанию: --acp --stdio)

Первоклассные API-ключевые поставщики​

Эти поставщики имеют встроенная поддержка с выделенными идентификаторами поставщиков. Установите клавишу API и используйте --provider, чтобы выбрать:

# NovitaAI Model API
vibeos chat --provider novita --model moonshotai/kimi-k2.5
# Requires: NOVITA_API_KEY in ~/.vibeos/.env

# z.ai / ZhipuAI GLM
vibeos chat --provider zai --model glm-5
# Requires: GLM_API_KEY in ~/.vibeos/.env

# Kimi / Moonshot AI (international: api.moonshot.ai)
vibeos chat --provider kimi-coding --model kimi-for-coding
# Requires: KIMI_API_KEY in ~/.vibeos/.env

# Kimi / Moonshot AI (China: api.moonshot.cn)
vibeos chat --provider kimi-coding-cn --model kimi-k2.5
# Requires: KIMI_CN_API_KEY in ~/.vibeos/.env

# MiniMax (global endpoint)
vibeos chat --provider minimax --model MiniMax-M2.7
# Requires: MINIMAX_API_KEY in ~/.vibeos/.env

# MiniMax (China endpoint)
vibeos chat --provider minimax-cn --model MiniMax-M2.7
# Requires: MINIMAX_CN_API_KEY in ~/.vibeos/.env

# Qwen Cloud / DashScope (Qwen models)
vibeos chat --provider alibaba --model qwen3.5-plus
# Requires: DASHSCOPE_API_KEY in ~/.vibeos/.env

# Xiaomi MiMo
vibeos chat --provider xiaomi --model mimo-v2-pro
# Requires: XIAOMI_API_KEY in ~/.vibeos/.env

# Tencent TokenHub (Hy3 Preview)
vibeos chat --provider tencent-tokenhub --model hy3-preview
# Requires: TOKENHUB_API_KEY in ~/.vibeos/.env

# Arcee AI (Trinity models)
vibeos chat --provider arcee --model trinity-large-thinking
# Requires: ARCEEAI_API_KEY in ~/.vibeos/.env

# GMI Cloud
# Use the exact model ID returned by GMI's /v1/models endpoint.
vibeos chat --provider gmi --model zai-org/GLM-5.1-FP8
# Requires: GMI_API_KEY in ~/.vibeos/.env

Или установите провайдера навсегда в config.yaml:

model:
provider: "gmi"
default: "zai-org/GLM-5.1-FP8"

Базовые URL-адреса можно переопределить с помощью NOVITA_BASE_URL, GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL, DASHSCOPE_BASE_URL, XIAOMI_BASE_URL, GMI_BASE_URL или TOKENHUB_BASE_URL переменные среды.

Автоматическое обнаружение конечной точки Z.AI

При использовании Z.AI / Поставщик GLM, VibeOS автоматически проверяет несколько конечных точек (глобальные, китайские, варианты кодирования), чтобы найти ту, которая принимает ваш ключ API. GLM_BASE_URL вручную устанавливать не нужно — рабочая конечная точка определяется и кэшируется автоматически.

xAI (Grok) — Отзывы API + Prompt Caching​

xAI подключен через Ответы API (codex_responses транспорт) для поддержки автоматического рассуждения на Grok 4 модели — параметр reasoning_effort не требуется, сервер определяет это по умолчанию. Установите XAI_API_KEY в ~/.vibeos/.env и выберите xAI в vibeos model или перетащите grok в качестве ярлыка в /model grok-4-fast-reasoning.

Подписчики SuperGrok и X Premium+ могут войти в систему с помощью браузера OAuth вместо использования ключа API — выберите xAI Grok OAuth (SuperGrok / Premium+) в vibeos model или запустите vibeos auth add xai-oauth. Тот же токен носителя OAuth автоматически повторно используется инструментами прямого доступа к xAI (TTS, генерацией изображений, генерацией видео, транскрипцией). Подробную информацию см. в xAI Grok OAuth, а если VibeOS работает на удаленном хосте, см. также OAuth более SSH / Remote Hosts для необходимого ssh -L туннеля.

При использовании xAI в качестве провайдера (любая база URL, содержащая x.ai), VibeOS автоматически включает кэширование подсказок, отправляя заголовок x-grok-conv-id с каждым запросом API. Это направляет запросы на один и тот же сервер в рамках сеанса разговора, позволяя инфраструктуре xAI повторно использовать кэшированные системные подсказки и историю разговоров.

Настройка не требуется — кэширование активируется автоматически, когда обнаруживается конечная точка xAI и доступен идентификатор сеанса. Это снижает задержку и стоимость многооборотных разговоров.

xAI также включает выделенную конечную точку TTS (/v1/tts). Выберите xAI TTS в vibeos tools → Voice & TTS или посетите страницу Voice & TTS для config.

Выведен из эксплуатации xAI Миграция модели (15 мая 2026 г.): xAI выводится из эксплуатации grok-4*, grok-3, grok-code-fast-1 и grok-imagine-image-pro 15 мая 2026 г. vibeos doctor и vibeos chat при запуске обнаруживают любую конфигурацию, все еще указывающую на устаревшую ссылку, и печатают рекомендуемую замену. Используйте vibeos migrate xai для однократного перезаписи конфигурации — по умолчанию пробный прогон, добавьте --apply для записи изменений (резервная копия config.yaml.bak-pre-migrate-xai-* с отметкой времени создается автоматически).

vibeos migrate xai          # preview replacements
vibeos migrate xai --apply # rewrite ~/.vibeos/config.yaml in place

xAI Серверная часть веб-поиска. Когда включен набор инструментов Веб-поиск, web.backend: xai направляет поиск через размещенную конечную точку поиска xAI, используя тот же Учетные данные XAI_API_KEY / OAuth. Никакой дополнительной настройки не требуется, если xAI уже настроен в качестве поставщика.

NovitaAI​

NovitaAI — это облако с искусственным интеллектом для строителей и агентов. Три линейки продуктов компании: Model API для более чем 200 моделей, Agent Sandbox для создания и запуска агентов искусственного интеллекта и GPU Cloud для масштабируемых вычислений, все они доступны на одной платформе.

# Use any available model
vibeos chat --provider novita --model moonshotai/kimi-k2.5
# Requires: NOVITA_API_KEY in ~/.vibeos/.env

# Short alias
vibeos chat --provider novita-ai --model deepseek/deepseek-v3-0324

Или установите его навсегда в config.yaml:

model:
provider: "novita"
default: "moonshotai/kimi-k2.5"
base_url: "https://api.novita.ai/openai/v1"

Получите ключ API по адресу novita.ai/settings/key-management. Базовый URL может быть переопределен с помощью NOVITA_BASE_URL.

Ollama Облачные — управляемые модели Ollama, OAuth + API Key​

Ollama Cloud содержит тот же открытый каталог, что и локальный Ollama, но без требования GPU. Выберите его в vibeos model как Ollama Cloud, вставьте свой ключ API из ollama.com/settings/keys, и VibeOS автоматически обнаружит доступный модели.

vibeos model
# → pick "Ollama Cloud"
# → paste your OLLAMA_API_KEY
# → select from discovered models (gpt-oss:120b, glm-4.6:cloud, qwen3-coder:480b-cloud, etc.)

Или config.yaml напрямую:

model:
provider: "ollama-cloud"
default: "gpt-oss:120b"

Каталог моделей динамически извлекается из ollama.com/v1/models и кэшируется на один час. Обозначение model:tag (например, qwen3-coder:480b-cloud) сохраняется посредством нормализации — не используйте тире.

Ollama Облако или локально Ollama

Оба говорят тот же OpenAI-совместимый API. Облако — первоклассный провайдер (--provider ollama-cloud, OLLAMA_API_KEY); локальный Ollama достигается через поток пользовательской конечной точки (базовый URL http://localhost:11434/v1, без ключа). Используйте облако для больших моделей, которые невозможно запустить локально; используйте локальный режим для конфиденциальности или автономной работы.

AWS Bedrock​

Anthropic Claude, Amazon Nova, DeepSeek v3.2, Meta Llama 4 и другие модели через AWS Bedrock. Использует цепочку учетных данных AWS SDK (boto3) — без ключа API, только стандартная AWS аутентификация.

# Simplest — named profile in ~/.aws/credentials
vibeos chat --provider bedrock --model us.anthropic.claude-sonnet-4-6

# Or with explicit env vars
AWS_PROFILE=myprofile AWS_REGION=us-east-1 vibeos chat --provider bedrock --model us.anthropic.claude-sonnet-4-6

Или навсегда в config.yaml:

model:
provider: "bedrock"
default: "us.anthropic.claude-sonnet-4-6"
bedrock:
region: "us-east-1" # or set AWS_REGION
# profile: "myprofile" # or set AWS_PROFILE
# discovery: true # auto-discover region from IAM
# guardrail: # optional Bedrock Guardrails
# guardrail_identifier: "your-guardrail-id"
# guardrail_version: "DRAFT"

Аутентификация использует стандартную цепочку boto3: явную роль AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, AWS_PROFILE от ~/.aws/credentials, IAM на EC2/ECS/Lambda, IMDS или SSO. Переменная env не требуется, если вы уже прошли аутентификацию с помощью AWS CLI.

Bedrock и использует Converse API под капотом — запросы переводятся в Форма Bedrock не зависит от модели, поэтому одна и та же конфигурация работает для моделей Claude, Nova, DeepSeek и Llama. Установите BEDROCK_BASE_URL только в том случае, если вы звоните на региональную конечную точку, отличную от заданной по умолчанию.

См. AWS Bedrock руководство для ознакомления с IAM настройка, выбор региона и межрегиональный анализ.

Qwen Портал (OAuth)​

Alibaba's Qwen Портал с входом OAuth через браузер. Выберите Qwen OAuth (Портал) в vibeos model, войдите в систему через браузер, и VibeOS сохранит токен обновления.

vibeos model
# → pick "Qwen OAuth (Portal)"
# → browser opens; sign in with your Alibaba account
# → confirm — credentials are saved to ~/.vibeos/auth.json

vibeos chat # uses portal.qwen.ai/v1 endpoint

Или настройте config.yaml:

model:
provider: "qwen-oauth"
default: "qwen3-coder-plus"

Устанавливайте VIBEOS_QWEN_BASE_URL только в том случае, если конечная точка портала перемещается (по умолчанию: https://portal.qwen.ai/v1).

Qwen OAuth vs Qwen Cloud (Alibaba DashScope)

qwen-oauth использует ориентированный на потребителя портал Qwen с входом OAuth — идеальное решение для индивидуальных пользователей. Поставщик alibaba использует облако Qwen (Alibaba DashScope) с DASHSCOPE_API_KEY — идеальное решение для программных/производственных рабочих нагрузок. Оба маршрутизируются к моделям семейства Qwen, но живут на разных конечных точках.

Alibaba Cloud (Coding Plan)​

Если вы подписаны на Coding Alibaba План (цена SKU отделена от стандартного доступа к DashScope API), VibeOS предоставляет его как собственного первоклассного поставщика: alibaba-coding-plan. Конечная точка: https://coding-intl.dashscope.aliyuncs.com/v1. Он OpenAI-совместим с обычным провайдером alibaba, но с другой базой URL и платежной поверхностью.

model:
provider: alibaba_coding # alias for alibaba-coding-plan
model: qwen3-coder-plus

Или из CLI:

vibeos chat --provider alibaba_coding --model qwen3-coder-plus

alibaba_coding использует тот же DASHSCOPE_API_KEY, который уже использует ваша запись alibaba — отдельный ключ не требуется, просто другая цель маршрутизации. До регистрации этого провайдера пользователи, устанавливавшие provider: alibaba_coding в config.yaml, автоматически переходили на маршрутизацию OpenRouter.

MiniMax (OAuth)​

MiniMax-M2.7 через браузер OAuth вход — ключ API не требуется. Выберите MiniMax (OAuth) в vibeos model, войдите в систему через браузер, и VibeOS сохранит токены доступа и обновления. Использует Anthropic конечную точку, совместимую с сообщениями (/anthropic) под капотом.

vibeos model
# → pick "MiniMax (OAuth)"
# → browser opens; sign in with your MiniMax account (global or CN region)
# → confirm — credentials are saved to ~/.vibeos/auth.json

vibeos chat # uses api.minimax.io/anthropic endpoint

Или настройте config.yaml:

model:
provider: "minimax-oauth"
default: "MiniMax-M2.7"

Поддерживаемые модели: MiniMax-M2.7 (основной) и MiniMax-M2.7-highspeed (проводной как вспомогательная модель по умолчанию). Путь OAuth игнорирует MINIMAX_API_KEY / MINIMAX_BASE_URL.

MiniMax OAuth или API key

minimax-oauth использует портал MiniMax, ориентированный на потребителя, с логином OAuth — настройка выставления счетов не требуется. Поставщики minimax и minimax-cn используют MINIMAX_API_KEY / MINIMAX_CN_API_KEY — для программного доступа. Полное описание смотрите в MiniMax OAuth

NVIDIA NIM​

Nemotron и другие модели с открытым исходным кодом через build.nvidia.com (бесплатный ключ API) или локальный NIM конечная точка.

# Cloud (build.nvidia.com)
vibeos chat --provider nvidia --model nvidia/nemotron-3-super-120b-a12b
# Requires: NVIDIA_API_KEY in ~/.vibeos/.env

# Local NIM endpoint — override base URL
NVIDIA_BASE_URL=http://localhost:8000/v1 vibeos chat --provider nvidia --model nvidia/nemotron-3-super-120b-a12b

Или установите его навсегда в config.yaml:

model:
provider: "nvidia"
default: "nvidia/nemotron-3-super-120b-a12b"
Локальный NIM

Для локальных развертываний (DGX Spark, локальный GPU), установите NVIDIA_BASE_URL=http://localhost:8000/v1. NIM предоставляет те же OpenAI-совместимые завершения чата API, что и build.nvidia.com, поэтому переключение между облачным и локальным режимом представляет собой однострочный env-var изменить.

VibeOS автоматически присоединяет заголовок VibeOS к каждому запросу к build.nvidia.com автоматически прикрепляет заголовок NIM — настройка не требуется. Это маршрутизирует потребление по правильному источнику в панели выставления счетов NVIDIA.

GMI Cloud​

Открывайте и анализируйте модели через GMI Облако — OpenAI-совместимый API, API аутентификация по ключу.

# GMI Cloud
vibeos chat --provider gmi --model deepseek-ai/DeepSeek-V3.2
# Requires: GMI_API_KEY in ~/.vibeos/.env

Или установите его навсегда в config.yaml:

model:
provider: "gmi"
default: "deepseek-ai/DeepSeek-V3.2"

Базовый URL можно переопределить с помощью GMI_BASE_URL (по умолчанию: https://api.gmi-serving.com/v1).

StepFun​

Step-серии с помощью клавиши StepFun — OpenAI-совместимой API, API аутентификация.

# StepFun
vibeos chat --provider stepfun --model step-3.5-flash
# Requires: STEPFUN_API_KEY in ~/.vibeos/.env

Или установите его навсегда в config.yaml:

model:
provider: "stepfun"
default: "step-3.5-flash"

Базу URL можно переопределить с помощью STEPFUN_BASE_URL (по умолчанию: https://api.stepfun.com/v1).

Hugging Face Поставщики вывода​

Hugging Face Поставщики вывода направляют к более чем 20 открытым моделям через унифицированную OpenAI-совместимую конечную точку (router.huggingface.co/v1). Запросы автоматически перенаправляются на самый быстрый доступный сервер (Groq, Together, SambaNova и т. д.) с автоматическим переключением при сбое.

# Use any available model
vibeos chat --provider huggingface --model Qwen/Qwen3.5-397B-A17B
# Requires: HF_TOKEN in ~/.vibeos/.env

# Short alias
vibeos chat --provider hf --model deepseek-ai/DeepSeek-V3.2

Или установите его навсегда в config.yaml:

model:
provider: "huggingface"
default: "Qwen/Qwen3.5-397B-A17B"

Получите свой токен по адресу huggingface.co/settings/tokens — обязательно включите разрешение «Совершать вызовы поставщикам выводов». Включен уровень бесплатного пользования (кредит $0.10/month, без надбавки к тарифам поставщика).

Вы можете добавлять суффиксы маршрутизации к названиям моделей: :fastest (по умолчанию), :cheapest или :provider_name, чтобы принудительно использовать определенный backend.

Базовый URL можно переопределить с помощью HF_BASE_URL.

Пользовательский и автономный LLM Провайдеры​

VibeOS работает с любой OpenAI-совместимой API конечной точкой. Если сервер реализует /v1/chat/completions, вы можете указать на него VibeOS. Это означает, что вы можете использовать локальные модели, GPU серверы вывода, маршрутизаторы с несколькими поставщиками или любые сторонние API.

Общие настройки​

Три способа настройки пользовательского конечная точка:

Интерактивная настройка (рекомендуется):

vibeos model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name

Ручная настройка (config.yaml):

# In ~/.vibeos/config.yaml
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
api_key: your-key-or-leave-empty-for-local
Устаревшая среда env vars

LLM_MODEL в .env удалена — config.yaml является единственным источником достоверной информации о конфигурации модели и конечных точек. OPENAI_BASE_URL по-прежнему учитывается, но только для провайдера openai-api (он переопределяет конечную точку OpenAI для прямого доступа к API-ключу). Для других поставщиков и пользовательских конечных точек используйте vibeos model или установите model.base_url напрямую в config.yaml. Если у вас есть устаревшие записи в вашем .env, они автоматически удаляются при следующем vibeos setup или при миграции конфигурации. модель, поставщик и база URL.

Модели переключения с /model​

vibeos model vs /model

vibeos model (запускается с вашего терминала, вне сеанса чата) — это мастер полной настройки провайдера. Используйте его для добавления новых провайдеров, запуска потоков OAuth, ввода ключей API и настройки пользовательских конечных точек.

/model (введено в активном сеансе чата VibeOS) можно только переключаться между поставщиками и моделями, которые вы уже настроили. Он не может добавлять новых поставщиков, запускать OAuth или запрашивать ключи API. Если вы настроили только одного поставщика (например, OpenRouter), /model будет отображать модели только для этого поставщика.

Чтобы добавить нового поставщика: Выйдите из сеанса (Ctrl+C или /quit), запустите vibeos model, настройте нового провайдера, затем начните новый сеанс.

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

/model custom:qwen-2.5          # Switch to a model on your custom endpoint
/model custom # Auto-detect the model from the endpoint
/model openrouter:claude-sonnet-4 # Switch back to a cloud provider

Если у вас настроены именованные пользовательские поставщики (см. ниже), используйте тройной синтаксис:

/model custom:local:qwen-2.5    # Use the "local" custom provider with model qwen-2.5
/model custom:work:llama3 # Use the "work" custom provider with llama3

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

подсказка

/model custom (без названия модели) запрашивает /models вашей конечной точки. API и автоматически выбирает модель, если загружена ровно одна. Полезно для локальных серверов, на которых работает одна модель.

Все, что показано ниже, следует той же схеме — просто измените URL, ключ и модель. name.


Ollama — Локальные модели, ноль Config​

Ollama запускает модели открытого веса локально с помощью одной команды. Подходит для: быстрых локальных экспериментов, работы с конфиденциальностью, использования в автономном режиме. Поддерживает вызов инструментов через OpenAI-совместимый API.

# Install and run a model
ollama pull qwen2.5-coder:32b
ollama serve # Starts on port 11434

Затем настройте VibeOS:

vibeos model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:11434/v1
# Skip API key (Ollama doesn't need one)
# Enter model name (e.g. qwen2.5-coder:32b)

Или настройте config.yaml напрямую:

model:
default: qwen2.5-coder:32b
provider: custom
base_url: http://localhost:11434/v1
context_length: 64000 # See warning below
Ollama по умолчанию имеет очень малую длину контекста.

Ollama по умолчанию не использует полное контекстное окно вашей модели. В зависимости от вашего VRAM значение по умолчанию:

Доступно VRAMКонтекст по умолчанию
Менее 24 ГБ4096 токенов
24–48 ГБ32 768 токенов
48+ ГБ256 000 токенов

VibeOS требуется не менее 64 000 токенов контекста для использования агентом с инструментами. Окна меньшего размера отклоняются при запуске, поскольку системное приглашение, схемы инструментов и состояние рабочего диалога требуют достаточно места для надежных многоэтапных рабочих процессов.

Как увеличить (выберите один):

# Option 1: Set server-wide via environment variable (recommended)
OLLAMA_CONTEXT_LENGTH=64000 ollama serve

# Option 2: For systemd-managed Ollama
sudo systemctl edit ollama.service
# Add: Environment="OLLAMA_CONTEXT_LENGTH=64000"
# Then: sudo systemctl daemon-reload && sudo systemctl restart ollama

# Option 3: Bake it into a custom model (persistent per-model)
echo -e "FROM qwen2.5-coder:32b\nPARAMETER num_ctx 64000" > Modelfile
ollama create qwen2.5-coder-64k -f Modelfile

Вы не можете установить длину контекста через OpenAI-совместимый API (/v1/chat/completions). Его необходимо настроить на стороне сервера или через файл модели. Это источник путаницы №1 при интеграции Ollama с такими инструментами, как VibeOS.

Проверьте правильность настройки контекста:

ollama ps
# Look at the CONTEXT column — it should show your configured value
подсказка

Перечислите доступные модели с ollama list. Возьмите любую модель из библиотеки Ollama с помощью ollama pull <model>`. Ollama автоматически обрабатывает GPU — для большинства настроек конфигурация не требуется.


vLLM — Высокая производительность GPU Inference​

vLLM является стандартом для производственного обслуживания LLM. Лучше всего подходит для: максимальной пропускной способности на оборудовании GPU, обслуживания больших моделей, непрерывной пакетной обработки.

pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--port 8000 \
--max-model-len 65536 \
--tensor-parallel-size 2 \
--enable-auto-tool-choice \
--tool-call-parser vibeos

Затем настройте VibeOS:

vibeos model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:8000/v1
# Skip API key (or enter one if you configured vLLM with --api-key)
# Enter model name: meta-llama/Llama-3.1-70B-Instruct

Длина контекста: vLLM считывает max_position_embeddings модели по умолчанию. Если это превышает объем памяти GPU, произойдет ошибка и будет предложено установить --max-model-len ниже. Вы также можете использовать --max-model-len auto, чтобы автоматически найти подходящий максимум. Установите --gpu-memory-utilization 0.95 (0,9 по умолчанию), чтобы втиснуть больше контекста в VRAM.

Вызов инструмента требует явных флагов:

ФлагЦель
--enable-auto-tool-choiceТребуется для tool_choice: "auto" (по умолчанию в VibeOS)
--tool-call-parser <name>`Синтаксический анализатор формата вызова инструмента модели

Поддерживаемые парсеры: vibeos (Qwen 2.5, VibeOS 2/3), llama3_json (Llama 3.x), mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Без этих флагов вызовы инструментов не будут работать — модель будет выводить вызовы инструментов в виде текста.

Qwen анализаторы рассуждений: VibeOS сохраняет метаданные структурированных рассуждений, такие как reasoning, reasoning_content и потоковые рассуждения, когда OpenAI-совместимые серверы возвращают их. Эти метаданные рассматриваются как данные трассировки reasoning/thinking, а не как замена видимого ответа помощника. Для моделей рассуждения Qwen, обслуживаемых vLLM, убедитесь, что окончательный видимый пользователю ответ по-прежнему отображается в content. Если --reasoning-parser qwen3 оставляет content пустым в вашем развертывании, либо отключите этот синтаксический анализатор, либо передайте параметр запроса, поддерживаемый сервером, например chat_template_kwargs.enable_thinking: false, через extra_body.

подсказка

vLLM поддерживает удобочитаемые размеры: --max-model-len 64k (строчные k = 1000, прописные K = 1024).


SGLang — Быстрое обслуживание с RadixAttention​

SGLang является альтернативой vLLM с RadixAttention для повторного использования кэша KV. Лучше всего подходит для: многоповоротных диалогов (кэширование префиксов), ограниченного декодирования, структурированного вывода.

pip install "sglang[all]"
python -m sglang.launch_server \
--model meta-llama/Llama-3.1-70B-Instruct \
--port 30000 \
--context-length 65536 \
--tp 2 \
--tool-call-parser qwen

Затем настройте VibeOS:

vibeos model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:30000/v1
# Enter model name: meta-llama/Llama-3.1-70B-Instruct

Длина контекста: SGLang считывает из конфигурации модели по умолчанию. Используйте --context-length для отмены. Если вам необходимо превысить заявленный максимум модели, установите SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1.

Вызов инструмента: Используйте --tool-call-parser с соответствующим синтаксическим анализатором для вашего семейства моделей: qwen (Qwen 2.5), llama3, llama4, deepseekv3, mistral, glm. Без этого флага вызовы инструментов возвращаются в виде обычного текста.

SGLang по умолчанию используется максимальное количество выходных токенов 128

Если ответы кажутся усеченными, добавьте max_tokens к своим запросам или установите --default-max-tokens на сервере. По умолчанию SGLang составляет только 128 токенов на ответ, если это не указано в запросе.


llama.cpp / llama-server — CPU & Metal Inference​

llama.cpp запускает квантованные модели на CPU, Apple Silicon (Metal) и потребительские графические процессоры. Лучше всего подходит для: запуска моделей без центра обработки данных GPU, пользователей Mac, периферийного развертывания.

# Build and start llama-server
cmake -B build && cmake --build build --config Release
./build/bin/llama-server \
--jinja -fa \
-c 64000 \
-ngl 99 \
-m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
--port 8080 --host 0.0.0.0

Длина контекста (-c): Последние сборки по умолчанию имеют значение 0, которое считывает контекст обучения модели из метаданных GGUF. Для моделей с обучающим контекстом 128k+ это может OOM пытаться выделить весь KV-кеш. Явно задайте для -c не менее 64 000 токенов для VibeOS. При использовании параллельных слотов (-np) общий контекст делится между слотами — при -c 64000 -np 4 каждый слот получает только 16 КБ, что ниже минимума VibeOS для активного сеанса.

Затем настройте VibeOS так, чтобы он указывал на это:

vibeos model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter URL: http://localhost:8080/v1
# Skip API key (local servers don't need one)
# Enter model name — or leave blank to auto-detect if only one model is loaded

Это сохраняет конечную точку в config.yaml, чтобы она сохранялась между сеансами.

--jinja требуется для вызова инструмента

Без --jinja, llama-server полностью игнорирует параметр tools. Модель попытается вызвать инструменты, написав JSON в тексте ответа, но VibeOS не распознает это как вызов инструмента — вы увидите необработанный JSON, такой как {"name": "web_search", ...}, напечатанный как сообщение вместо фактического поиск.

Встроенная поддержка вызовов инструментов (наилучшая производительность): Llama 3.x, Qwen 2.5 (включая Coder), VibeOS 2/3, Mistral, DeepSeek, Functionary. Все остальные модели используют общий обработчик, который работает, но может оказаться менее эффективным. Полный список см. в llama.cpp документации по вызову функций для получения полного списка.

Вы можете убедиться, что поддержка инструмента активна, проверив http://localhost:8080/props — поле chat_template должно быть присутствует.

подсказка

Загрузите модели GGUF из Hugging Face. Q4_K_M квантование обеспечивает наилучший баланс качества и использования памяти.


LM Studio — Настольное приложение с локальными моделями​

LM Studio — это настольное приложение для запуска локальных моделей с GUI. Подходит для: пользователей, предпочитающих визуальный интерфейс, быстрое тестирование модели, разработчиков macOS/Windows/Linux.

Запустите сервер из приложения LM Studio (вкладка «Разработчик» → «Запустить сервер») или воспользуйтесь CLI:

lms server start                        # Starts on port 1234
lms load qwen2.5-coder --context-length 64000

Затем настройте VibeOS:

vibeos model
# Select "LM Studio"
# Press Enter to use http://localhost:1234/v1
# Pick one of the discovered models
# If LM Studio server auth is enabled, enter LM_API_KEY when prompted

VibeOS автоматически загрузит модель LM Studio с длиной контекста 64 КБ

Чтобы изменить длину контекста в LM Studio:

  1. Щелкните значок шестеренки рядом со средством выбора модели
  2. Установите для параметра «Длина контекста» значение не менее 64000 для более плавной работы
  3. Перезагрузите модель, чтобы изменения вступили в силу
  4. Если ваша машина не может вместить 64000, рассмотрите возможность использования модели меньшего размера с большей длиной контекста.

В качестве альтернативы используйте CLI: lms load model-name --context-length 64000

Вы можете использовать CLI, чтобы оценить, подойдет ли модель: lms load model-name --context-length 64000 --estimate-only

Чтобы установить постоянные настройки по умолчанию для каждой модели: вкладка «Мои модели» → значок шестеренки на модели → установить контекст size. :::

Вызов инструмента: Поддерживается с LM Studio 0.3.6. Модели со встроенным обучением использованию инструментов (Qwen 2.5, Llama 3.x, Mistral, VibeOS) автоматически обнаруживаются и отображаются со значком инструмента. В других моделях используется общий запасной вариант, который может быть менее надежным. Пользователи)

Поскольку для VibeOS требуется среда Unix, пользователи Windows запускают ее внутри WSL2. Если сервер вашей модели (Ollama, LM Studio и т. д.) работает на хосте Windows, вам необходимо устранить сетевой разрыв — WSL2 использует виртуальный сетевой адаптер с собственной подсетью, поэтому localhost внутри WSL2 относится к Linux виртуальной машине, а не к хосту Windows.

Оба в WSL2? Нет проблем.

Если сервер вашей модели также работает внутри WSL2 (обычно для vLLM, SGLang и llama-server), localhost работает как положено — они используют одно и то же сетевое пространство имен. Пропустите этот раздел.

Вариант 1: Режим зеркальной сети (рекомендуется)​

Доступно Windows 11 22H2+, в зеркальном режиме localhost работает в двух направлениях между Windows и WSL2 — самое простое исправление.

  1. Создайте или отредактируйте %USERPROFILE%\.wslconfig (например, C:\Users\YourName\.wslconfig):

    [wsl2]
    networkingMode=mirrored
  2. Перезапустите WSL с PowerShell:

    wsl --shutdown
  3. Снова откройте терминал WSL2. localhost теперь доступен сервисам Windows:

    curl http://localhost:11434/v1/models   # Ollama on Windows — works
Брандмауэр Hyper-V

В некоторых сборках Windows 11 брандмауэр Hyper-V по умолчанию блокирует зеркальные соединения. Если localhost по-прежнему не работает после включения зеркального режима, запустите это от имени Администратора PowerShell:

Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow

Вариант 2: Используйте IP-адрес хоста Windows (Windows 10 / более старые сборки)​

Если вы не можете использовать зеркальном режиме, найдите IP-адрес хоста Windows изнутри WSL2 и используйте его вместо localhost:

# Get the Windows host IP (the default gateway of WSL2's virtual network)
ip route show | grep -i default | awk '{ print $3 }'
# Example output: 172.29.192.1

Используйте этот IP-адрес в своей конфигурации VibeOS:

model:
default: qwen2.5-coder:32b
provider: custom
base_url: http://172.29.192.1:11434/v1 # Windows host IP, not localhost
Динамический помощник

IP-адрес хоста может измениться при перезапуске WSL2. Вы можете динамически получить его в своей оболочке:

export WSL_HOST=$(ip route show | grep -i default | awk '{ print $3 }')
echo "Windows host at: $WSL_HOST"
curl http://$WSL_HOST:11434/v1/models # Test Ollama

Или используйте имя mDNS вашего устройства (требуется libnss-mdns в WSL2):

sudo apt install libnss-mdns
curl http://$(hostname).local:11434/v1/models

Адрес привязки сервера (требуется для режима NAT)​

Если вы используете Вариант 2 (NAT с режимом IP-адрес хоста), сервер модели на Windows должен принимать соединения извне 127.0.0.1. По умолчанию большинство серверов прослушивают только локальный хост — соединения WSL2 в режиме NAT поступают из другой виртуальной подсети и будут отклонены. В зеркальном режиме localhost сопоставляется напрямую, поэтому привязка 127.0.0.1 по умолчанию работает нормально.

СерверПривязка по умолчаниюКак исправить
Ollama127.0.0.1Установите переменную среды OLLAMA_HOST=0.0.0.0 перед запуском Ollama (Системные настройки → Переменные среды в Windows или отредактируйте службу Ollama)
LM Studio127.0.0.1Включите "Сервис по сети" на вкладке "Разработчик" → Настройки сервера
лама-сервер127.0.0.1Добавьте --host 0.0.0.0 в команду запуска
vLLM0.0.0.0По умолчанию уже привязывается ко всем интерфейсам
SGLang127.0.0.1Добавьте --host 0.0.0.0 к команде запуска

Ollama на Windows (подробно): Ollama работает как служба Windows. Чтобы установить OLLAMA_HOST:

  1. Откройте Свойства системы → Переменные среды
  2. Добавьте новую Системную переменную: OLLAMA_HOST = 0.0.0.0
  3. Перезапустите службу Ollama (или перезагрузите)

Windows Firewall​

Windows Брандмауэр лечит WSL2 как отдельную сеть (как в NAT, так и в зеркальном режиме). Если соединения по-прежнему не работают после описанных выше шагов, добавьте правило брандмауэра для порта вашей модели сервера:

# Run in Admin PowerShell — replace PORT with your server's port
New-NetFirewallRule -DisplayName "Allow WSL2 to Model Server" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 11434

Общие порты: Ollama 11434, vLLM 8000, SGLang 30000, llama-server 8080, LM Studio 1234.

Быстрая проверка​

Изнутри WSL2, проверьте, до чего вы можете дотянуться сервер вашей модели:

# Replace URL with your server's address and port
curl http://localhost:11434/v1/models # Mirrored mode
curl http://172.29.192.1:11434/v1/models # NAT mode (use your actual host IP)

Если вы получите ответ JSON со списком ваших моделей, все в порядке. Используйте тот же URL, что и base_url в вашей конфигурации VibeOS.


Устранение неполадок локально Модели​

Эти проблемы затрагивают все локальные серверы вывода при использовании с VibeOS.

«Соединение отклонено» от WSL2 до Windows-сервер модели​

Если вы используете VibeOS внутри WSL2 и ваш сервер модели на хосте Windows, http://localhost:<port>` не будет работать WSL2 — сетевой режим NAT по умолчанию. Исправление см. в WSL2 Networking выше.

Вызовы инструментов отображаются в виде текста вместо выполнения​

Модель выводит что-то вроде {"name": "web_search", "arguments": {...}} в виде сообщения вместо фактического вызова инструмента.

Причина: На вашем сервере не включен вызов инструмента, или модель не поддерживает его посредством реализации вызова инструмента на сервере.

СерверИсправить
llama.cppДобавьте --jinja в команду запуска
vLLMДобавьте --enable-auto-tool-choice --tool-call-parser vibeos
SGLangДобавьте --tool-call-parser qwen (или соответствующий парсер)
OllamaВызов инструмента включен по умолчанию — убедитесь, что ваша модель его поддерживает (уточните ollama show model-name)
LM StudioОбновите версию до 0.3.6+ и используйте модель со встроенной поддержкой инструментов

Кажется, модель забывает контекст или дает бессвязные ответы​

Причина: Окно контекста слишком маленькое. Когда разговор превышает ограничение контекста, большинство серверов молча удаляют старые сообщения. Только системная подсказка VibeOS + схемы инструментов могут использовать токены 4–8 тыс.

Диагностика:

# Check what VibeOS thinks the context is
# Look at startup line: "Context limit: X tokens"

# Check your server's actual context
# Ollama: ollama ps (CONTEXT column)
# llama.cpp: curl http://localhost:8080/props | jq '.default_generation_settings.n_ctx'
# vLLM: check --max-model-len in startup args

Исправление: Установите контекст как минимум на 64 000 токенов для использования агентом. Конкретный флаг см. в разделе каждого сервера выше.

«Ограничение контекста: 2048 токенов» при запуске​

VibeOS автоматически определяет длину контекста на основе данных вашего сервера /v1/models конечная точка. Если сервер сообщает о низком значении (или не сообщает его вообще), VibeOS использует заявленный предел модели, который может быть неверным.

Исправить: Установите его явно в config.yaml:

model:
default: your-model
provider: custom
base_url: http://localhost:11434/v1
context_length: 64000

Ответы обрезаются на полуслове​

Возможные причины:

  1. Низкое ограничение вывода (max_tokens) на сервере — SGLang по умолчанию составляет 128 токенов на ответ. Установите --default-max-tokens на сервере или настройте VibeOS с помощью model.max_tokens в config.yaml. Примечание. max_tokens контролирует только длину ответа — она не связана с продолжительностью истории вашего разговора (то есть context_length).
  2. Исчерпание контекста — модель заполнила контекстное окно. Увеличьте model.context_length или включите сжатие контекста в VibeOS.

LiteLLM Прокси — шлюз для нескольких провайдеров​

LiteLLM — OpenAI-совместимый прокси, объединяющий более 100 Поставщики LLM за одним API. Лучше всего подходит для: переключения между провайдерами без изменения конфигурации, балансировки нагрузки, резервных цепочек, контроля бюджета.

# Install and start
pip install "litellm[proxy]"
litellm --model anthropic/claude-sonnet-4 --port 4000

# Or with a config file for multiple models:
litellm --config litellm_config.yaml --port 4000

Затем настройте VibeOS с помощью vibeos model → Пользовательская конечная точка → http://localhost:4000/v1.

Пример litellm_config.yaml с запасной вариант:

model_list:
- model_name: "best"
litellm_params:
model: anthropic/claude-sonnet-4
api_key: sk-ant-...
- model_name: "best"
litellm_params:
model: openai/gpt-4o
api_key: sk-...
router_settings:
routing_strategy: "latency-based-routing"

ClawRouter — Оптимизация затрат Routing​

ClawRouter от BlockRunAI — это локальный прокси-сервер маршрутизации, который автоматически выбирает модели в зависимости от сложности запроса. Он классифицирует запросы по 14 измерениям и направляет к самой дешевой модели, способной справиться с задачей. Оплата осуществляется криптовалютой USDC (без ключей API).

# Install and start
npx @blockrun/clawrouter # Starts on port 8402

Затем настройте VibeOS с помощью vibeos model → Пользовательская конечная точка → http://localhost:8402/v1 → имя модели blockrun/auto.

Routing профили:

ПрофильСтратегияЭкономия
blockrun/autoСбалансированный quality/cost74-100%
blockrun/ecoСамый дешевый95-100%
blockrun/premiumМодели лучшего качества0%
blockrun/freeТолько бесплатные модели100%
blockrun/agenticОптимизирован для использования с инструментамиварьируется
примечание

ClawRouter для оплаты требуется кошелек, финансируемый USDC, на Base или Solana. Все запросы проходят через серверную часть BlockRun API. Запустите npx @blockrun/clawrouter doctor, чтобы проверить состояние кошелька.


Другие совместимые Провайдеры​

Любая служба с OpenAI-совместимой API работает. Некоторые популярные варианты:

ПровайдерБаза URLПримечания
Вместе AIhttps://api.together.xyz/v1Открытые модели, размещенные в облаке
Грокhttps://api.groq.com/openai/v1Сверхбыстрый вывод
DeepSeekhttps://api.deepseek.com/v1DeepSeek модели
ИИ-фейерверкhttps://api.fireworks.ai/inference/v1Быстрый хостинг открытых моделей
GMI Облакоhttps://api.gmi-serving.com/v1Управляемый OpenAI-совместимый вывод
Церебраhttps://api.cerebras.ai/v1Вывод микросхемы в масштабе пластины
Мистраль ИИhttps://api.mistral.ai/v1Модели Мистраль
OpenAIhttps://api.openai.com/v1Прямой OpenAI доступ
Azure OpenAIhttps://YOUR.openai.azure.com/Предприятие OpenAI
LocalAIhttp://localhost:8080/v1Автономный многомодельный
Январьhttp://localhost:1337/v1Настольное приложение с локальными моделями

Настройте любое из них с помощью vibeos model → Пользовательская конечная точка или в config.yaml:

model:
default: meta-llama/Llama-3.1-70B-Instruct-Turbo
provider: custom
base_url: https://api.together.xyz/v1
api_key: your-together-key

Определение длины контекста​

Две настройки, легко confuse

context_length — это общее контекстное окно — объединенный бюджет для входных и выходных токенов (например, 200 000 для Claude Opus 4.6). VibeOS использует это, чтобы решить, когда сжимать историю и проверять запросы API.

model.max_tokens — это ограничение вывода — максимальное количество токенов, которые модель может сгенерировать в одном ответе. Это не имеет никакого отношения к тому, насколько длинной может быть история вашего разговора. Стандартное имя max_tokens является частым источником путаницы; Родной Anthropic API с тех пор переименовал его в max_output_tokens для ясности.

Set context_length, когда автоматическое определение определяет неправильный размер окна. Set model.max_tokens только тогда, когда вам нужно ограничить продолжительность отдельных ответов.

VibeOS использует цепочку разрешения из нескольких источников для определения правильного контекстного окна для вашей модели и провайдер:

  1. Переопределение конфигурации — model.context_length в config.yaml (высший приоритет)
  2. Индивидуальный поставщик для каждой модели — custom_providers[].models.&lt;id&gt;.context_length
  3. Постоянный кэш — ранее обнаруженные значения (выдерживает перезапуск)
  4. Конечная точка /models — запрашивает конечные точки API (local/custom) 5 вашего сервера. Anthropic /v1/models — запрашивает API Anthropic для max_input_tokens (API только для ключевых пользователей)
  5. OpenRouter API — метаданные живой модели из OpenRouter
  6. Nous Portal — суффикс соответствует идентификаторам модели Nous с метаданными OpenRouter
  7. models.dev — реестр, поддерживаемый сообществом, с длиной контекста, зависящей от поставщика, для более чем 3800 моделей от более чем 100 поставщиков
  8. Резервные настройки по умолчанию — шаблоны широкого семейства моделей (по умолчанию 128 КБ)

Для большинства настроек это работает «из коробки». Система учитывает провайдера — одна и та же модель может иметь разные ограничения контекста в зависимости от того, кто ее обслуживает (например, claude-opus-4.6 составляет 1 М на Anthropic напрямую, но 128 КБ на GitHub Copilot).

Чтобы явно задать длину контекста, добавьте context_length в конфигурацию вашей модели:

model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens

Для пользовательских конечных точек вы также можете установить длину контекста для каждой модели:

custom_providers:
- name: "My Local LLM"
base_url: "http://localhost:11434/v1"
models:
qwen3.5:27b:
context_length: 64000
deepseek-r1:70b:
context_length: 65536

vibeos model предложит указать длину контекста при настройке пользовательской конечной точки. Оставьте это поле пустым для автоматического обнаружения.

Когда устанавливать это вручную
  • Вы используете Ollama с пользовательским num_ctx, значение которого ниже максимального значения модели
  • Вы хотите ограничить контекст ниже максимум модели (например, 8 КБ на модели 128 КБ для сохранения VRAM)
  • Вы используете прокси-сервер, который не раскрывает /v1/models

Назначенные индивидуальные поставщики​

Если вы работаете с несколько пользовательских конечных точек (например, локальный сервер разработки и удаленный сервер GPU), вы можете определить их как именованные пользовательские поставщики в config.yaml:

custom_providers:
- name: local
base_url: http://localhost:8080/v1
# api_key omitted — VibeOS uses "no-key-required" for keyless local servers
- name: work
base_url: https://gpu-server.internal.corp/v1
key_env: CORP_API_KEY
api_mode: chat_completions # set explicitly by `vibeos model` → Custom Endpoint wizard; auto-detection still happens as a fallback
- name: anthropic-proxy
base_url: https://proxy.example.com/anthropic
key_env: ANTHROPIC_PROXY_KEY
api_mode: anthropic_messages # for Anthropic-compatible proxies

Некоторым OpenAI-совместимым конечным точкам требуются поля тела запроса, специфичные для поставщика. Добавьте карту extra_body к соответствующему пользовательскому поставщику, и VibeOS объединит ее с каждым запросом завершения чата для этой конечной точки:

custom_providers:
- name: gemma-local
base_url: http://localhost:8080/v1
model: google/gemma-4-31b-it
extra_body:
enable_thinking: true
reasoning_effort: high

Используйте форму документов вашего сервера. Например, vLLM Gemma и некоторые конечные точки NVIDIA NIM ожидают enable_thinking под chat_template_kwargs вместо extra_body верхнего уровня поле:

extra_body:
chat_template_kwargs:
enable_thinking: true

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

extra_body:
chat_template_kwargs:
enable_thinking: false

vibeos model → Мастер настройки конечной точки теперь явно запрашивает api_mode и сохраняет ваш ответ на config.yaml. Автоматическое обнаружение на основе URL (например, пути /anthropic → anthropic_messages) по-прежнему выполняется в качестве резервного варианта, если поле остается пустым.

Встроенное видение для моделей пользовательских поставщиков. Если ваша пользовательская конечная точка обслуживает модель с поддержкой машинного зрения, которая отсутствует в models.dev, установите model.supports_vision: true, чтобы VibeOS маршрутизировал прикрепленные изображения в исходном виде (как части image_url) вместо их предварительной обработки с помощью vision_analyze. Одна ручка — нет необходимости дополнительно настраивать agent.image_input_mode: native.

model:
provider: custom
base_url: http://localhost:8080/v1
default: qwen3.6-35b-a3b
supports_vision: true # send images natively; otherwise vision_analyze pre-describes them

Этот же ключ учитывается в моделях каждого провайдера (custom_providers[*].models[*].supports_vision) и принимает стандартные логические значения YAML (true/false/yes/no/on/off/1/0).

Переключение между ними в середине сеанса с тройным синтаксисом:

/model custom:local:qwen-2.5       # Use the "local" endpoint with qwen-2.5
/model custom:work:llama3-70b # Use the "work" endpoint with llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4 # Use the proxy

Вы также можете выбрать именованных пользовательских поставщиков из интерактивного меню vibeos model. Perplexity

Поставщики облачных услуг, перечисленные в списке Другие совместимые провайдеры, все говорят на диалекте OpenAI REST, поэтому они подключаются одинаково под custom_providers:. Далее следуют три рабочих рецепта. Каждый из них попадает в ~/.vibeos/config.yaml, а соответствующий ключ API переходит в ~/.vibeos/.env.

Вместе AI​

Host модели открытого веса (лама, MiniMax, Gemma, DeepSeek, Qwen) по ценам значительно ниже сторонних API. Хороший вариант по умолчанию для автопарков, состоящих из нескольких моделей.

# ~/.vibeos/config.yaml
custom_providers:
- name: together
base_url: https://api.together.xyz/v1
key_env: TOGETHER_API_KEY
# api_mode: chat_completions # default — no need to set

model:
default: MiniMaxAI/MiniMax-M2.7 # or any model from together.ai/models
provider: custom:together
# ~/.vibeos/.env
TOGETHER_API_KEY=your-together-key

Смена модели в середине сеанса:

/model custom:together:meta-llama/Llama-3.3-70B-Instruct-Turbo
/model custom:together:google/gemma-4-31b-it
/model custom:together:deepseek-ai/DeepSeek-V3

Together /v1/models работает, поэтому vibeos model может автоматически обнаруживать доступные модели.

Groq​

Сверхбыстрый вывод (~500 tok/s на Ламе-3.3-70B). Небольшой каталог, но мощный для интерактивного использования, чувствительного к задержке.

# ~/.vibeos/config.yaml
custom_providers:
- name: groq
base_url: https://api.groq.com/openai/v1
key_env: GROQ_API_KEY

model:
default: llama-3.3-70b-versatile
provider: custom:groq
# ~/.vibeos/.env
GROQ_API_KEY=your-groq-key

Perplexity​

Полезно, если вам нужна модель, которая автоматически выполняет поиск в сети и цитирование в реальном времени. Строго уточняйте, какие модели доступны — проверьте текущий список perplexity.ai/settings/api.

# ~/.vibeos/config.yaml
custom_providers:
- name: perplexity
base_url: https://api.perplexity.ai
key_env: PERPLEXITY_API_KEY

model:
default: sonar
provider: custom:perplexity
# ~/.vibeos/.env
PERPLEXITY_API_KEY=your-perplexity-key

Несколько провайдеров в одной конфигурации​

Три рецепта составляют — используйте их все вместе и переключайтесь по очереди с помощью /model custom:&lt;name&gt;:<model>`:

custom_providers:
- name: together
base_url: https://api.together.xyz/v1
key_env: TOGETHER_API_KEY
- name: groq
base_url: https://api.groq.com/openai/v1
key_env: GROQ_API_KEY
- name: perplexity
base_url: https://api.perplexity.ai
key_env: PERPLEXITY_API_KEY

model:
default: MiniMaxAI/MiniMax-M2.7
provider: custom:together # boot to Together; switch freely after
Устранение неполадок
  • vibeos doctor не должен печатать никаких предупреждений Unknown provider для любого из этих имен после того, как валидатор CLI исправит #15083.
  • Если поставщик Конечная точка /v1/models недоступна (распространенная проблема — недоумение), vibeos model сохранит модель с предупреждением, а не с жестким отклонением — см. #15136.
  • Чтобы полностью пропустить custom_providers: и использовать голую provider: custom с CUSTOM_BASE_URL env var, см. #15103. ::

Выбор права Настройка​

Вариант использованияРекомендуется
Просто хочу, чтобы это сработалоOpenRouter (по умолчанию) или Nous Portal
Локальные модели, простая настройкаOllama
Производство GPU порцияvLLM или SGLang
Mac / нет GPUOllama или llama.cpp
Маршрутизация между несколькими провайдерамиLiteLLM Прокси или OpenRouter
Оптимизация затратClawRouter или OpenRouter с sort: "price"
Максимальная конфиденциальностьOllama, vLLM или llama.cpp (полностью локальный)
Предприятие / AzureAzure OpenAI с пользовательской конечной точкой
Китайские модели искусственного интеллектаz.ai (GLM), Kimi/Moonshot (kimi-coding или kimi-coding-cn), MiniMax, Xiaomi MiMo или Tencent TokenHub (первоклассные поставщики)
подсказка

Вы можете переключаться между провайдерами в любое время с помощью vibeos model — перезагрузка не требуется. История ваших разговоров, память и навыки сохраняются независимо от того, какого поставщика вы используете.

Необязательные API Keys​

ОсобенностьПровайдерПеременная окружения
Парсинг веб-страницFirecrawlFIRECRAWL_API_KEY, FIRECRAWL_API_URL
Автоматизация браузераBrowserbaseBROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID
Генерация изображенийFALFAL_KEY
Премиум TTS голосаElevenLabsELEVENLABS_API_KEY
OpenAI TTS + транскрипция голосаOpenAIVOICE_TOOLS_OPENAI_KEY
Мистраль TTS + голосовая транскрипцияМистральMISTRAL_API_KEY
Межсессионное моделирование пользователейHonchoHONCHO_API_KEY
Семантическая долговременная памятьSupermemorySUPERMEMORY_API_KEY

Самостоятельный хостинг Firecrawl​

По умолчанию VibeOS использует Firecrawl облако API для веб-поиска и парсинга. Если вы предпочитаете запускать Firecrawl локально, вместо этого вы можете указать VibeOS на локальный экземпляр. Подробные инструкции по настройке см. в документе Firecrawl SELF_HOST.md](https://github.com/firecrawl/firecrawl/blob/main/SELF_HOST.md).

Что вы получаете: Не требуется ключ API, нет ограничений по скорости, нет затрат на каждую страницу, полный суверенитет данных.

Что вы теряете: В облачной версии используется собственная «Пожарная машина» Firecrawl для расширенного обхода защиты от ботов (Cloudflare, CAPTCHA, ротация IP). При самостоятельном размещении используется базовая выборка + Playwright, поэтому некоторые защищенные сайты могут выйти из строя. Для поиска используется DuckDuckGo вместо Google.

Настройка:

  1. Клонируйте и запустите стек Firecrawl Docker (5 контейнеров: API, Playwright, Redis, RabbitMQ, PostgreSQL — требуется ~4–8 ГБ RAM):

    git clone https://github.com/firecrawl/firecrawl
    cd firecrawl
    # In .env, set: USE_DB_AUTHENTICATION=false, HOST=0.0.0.0, PORT=3002
    docker compose up -d
  2. Наведите VibeOS на свой экземпляр (ключ API не требуется):

    vibeos config set FIRECRAWL_API_URL http://localhost:3002

Вы также можете установить FIRECRAWL_API_KEY и FIRECRAWL_API_URL, если на вашем локальном экземпляре включена аутентификация.

OpenRouter Поставщик Маршрутизация​

При использовании OpenRouter вы можете контролировать маршрутизацию запросов между поставщиками. Добавьте раздел provider_routing в ~/.vibeos/config.yaml:

provider_routing:
sort: "throughput" # "price" (default), "throughput", or "latency"
# only: ["anthropic"] # Only use these providers
# ignore: ["deepinfra"] # Skip these providers
# order: ["anthropic", "google"] # Try providers in this order
# require_parameters: true # Only use providers that support all request params
# data_collection: "deny" # Exclude providers that may store/train on data

Ярлыки: Добавьте :nitro к любому названию модели для сортировки по пропускной способности (например, anthropic/claude-sonnet-4:nitro) или :floor для указания цены. сортировка.

OpenRouter Маршрутизатор кода Парето​

OpenRouter отправляет экспериментальный маршрутизатор модели кодирования в openrouter/pareto-code, который автоматически направляет запросы на самую дешевую модельную встречу индикатор качества кодирования (рейтинг по версии Artificial Analysis). Выберите эту модель и настройте ручку min_coding_score в ~/.vibeos/config.yaml:

model:
provider: openrouter
model: openrouter/pareto-code

openrouter:
min_coding_score: 0.65 # 0.0–1.0; higher = stronger (more expensive) coders. Default 0.65.

Примечания:

  • min_coding_score отправляется только, когда model.model имеет значение openrouter/pareto-code. В любой другой модели значение неактивно.
  • Установите пустую строку (или удалите строку), чтобы позволить OpenRouter выбрать самый сильный доступный кодировщик — его документированное поведение, когда блок плагинов опущен.
  • Выбор является детерминированным по баллу в данный день, но фактическая выбранная модель может смещаться по мере движения границы Парето (новые модели, контрольный показатель) обновления).
  • См. OpenRouter Документация по маршрутизатору Pareto для получения полной информации о работе маршрутизатора.
  • Чтобы использовать маршрутизатор с кодом Парето для конкретной вспомогательной задачи (сжатие, просмотр и т. д.) вместо основного агента, установите extra_body.plugins для этой задачи — см. Вспомогательные модели → OpenRouter маршрутизация и код Парето для вспомогательных задач.

Резервный вариант Поставщики​

Настройте цепочку резервных поставщиков, VibeOS пытается по порядку, когда основная модель дает сбой (ограничения скорости, ошибки сервера, сбои аутентификации). Канонический формат – это список fallback_providers: верхнего уровня:

fallback_providers:
- provider: openrouter
model: anthropic/claude-sonnet-4
- provider: anthropic
model: claude-sonnet-4
# base_url: http://localhost:8000/v1 # optional, for custom endpoints
# api_mode: chat_completions # optional override

Устаревший однопарный дикт fallback_model: по-прежнему принимается для обратной совместимости:

fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4

При активации резервный вариант меняет модель и поставщика в середине сеанса, не теряя разговора. Цепочка проверяется запись за записью; активация осуществляется один раз за сеанс.

Поддерживаемые поставщики: openrouter, nous, novita, openai-codex, copilot, copilot-acp, anthropic, gemini, qwen-oauth, huggingface, zai, kimi-coding, kimi-coding-cn, minimax, minimax-cn, minimax-oauth, deepseek, nvidia, xai, xai-oauth, ollama-cloud, bedrock, azure-foundry, opencode-zen, opencode-go, kilocode, xiaomi, arcee, gmi, stepfun, lmstudio, alibaba, alibaba-coding-plan, tencent-tokenhub, custom.

подсказка

Fallback настраивается исключительно через config.yaml — или интерактивно через vibeos fallback. Полную информацию о том, когда он срабатывает, как продвигается цепочка и как она взаимодействует со вспомогательными задачами и делегированием, см. в разделе Откат Поставщики.


См. также​

  • Конфигурация — Общая конфигурация (структура каталогов, приоритет конфигурации, серверные части терминала, память, сжатие и т. д.)
  • Переменные среды — Полная ссылка на все переменные среды