AI Providers
На этой странице описана настройка поставщиков вывода для VibeOS — от облачных API, таких как OpenRouter и Anthropic, до самостоятельных конечных точек, таких как Ollama и vLLM для расширенной маршрутизации и резервных конфигураций. Вам нужен хотя бы один провайдер, настроенный на использование .
Inference Providers
Вам нужен хотя бы один способ подключения к LLM. Используйте vibeos model для интерактивного переключения поставщиков и моделей или настройте напрямую:
| Провайдер | Настройка |
|---|---|
| Nous Portal | vibeos model (OAuth, на основе подписки) |
| OpenAI Codex | vibeos model (ChatGPT OAuth, использует модели Codex) |
| GitHub Copilot | vibeos model (OAuth поток кода устройства, COPILOT_GITHUB_TOKEN, GH_TOKEN или gh auth token) |
| GitHub Copilot ACP | vibeos model (создает локальный copilot --acp --stdio) |
| Anthropic | vibeos model (Claude Макс. + дополнительные кредиты на использование через OAuth; также поддерживает ключ Anthropic API или токен ручной настройки — см. примечание ниже) |
| OpenRouter | OPENROUTER_API_KEY в ~/.vibeos/.env |
| NovitaAI | NOVITA_API_KEY в ~/.vibeos/.env (поставщик: novita, более 200 моделей, Модель API, Песочница агента, GPU Облако) |
| z.ai / GLM | GLM_API_KEY в ~/.vibeos/.env (провайдер: zai) |
| Kimi / Moonshot | KIMI_API_KEY в ~/.vibeos/.env (провайдер: kimi-coding) |
| Kimi / Moonshot (Китай) | KIMI_CN_API_KEY в ~/.vibeos/.env (провайдер: kimi-coding-cn; псевдонимы: kimi-cn, moonshot-cn) |
| Arcee AI | ARCEEAI_API_KEY в ~/.vibeos/.env (провайдер: arcee; псевдонимы: arcee-ai, arceeai) |
| GMI Облако | GMI_API_KEY в ~/.vibeos/.env (провайдер: gmi; псевдонимы: gmi-cloud, gmicloud) |
| MiniMax | MINIMAX_API_KEY в ~/.vibeos/.env (провайдер: minimax) |
| MiniMax Китай | MINIMAX_CN_API_KEY в ~/.vibeos/.env (провайдер: minimax-cn) |
| xAI (Grok) — Отзывы API | XAI_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 Code | KILOCODE_API_KEY в ~/.vibeos/.env (провайдер: kilocode) |
| Xiaomi МиМо | XIAOMI_API_KEY в ~/.vibeos/.env (провайдер: xiaomi, псевдонимы: mimo, xiaomi-mimo) |
| Tencent TokenHub | TOKENHUB_API_KEY в ~/.vibeos/.env (провайдер: tencent-tokenhub, псевдонимы: tencent, tokenhub, tencentmaas) |
| OpenCode Zen | OPENCODE_ZEN_API_KEY в ~/.vibeos/.env (провайдер: opencode-zen) |
| OpenCode Go | OPENCODE_GO_API_KEY в ~/.vibeos/.env (провайдер: opencode-go) |
| DeepSeek | DEEPSEEK_API_KEY в ~/.vibeos/.env (провайдер: deepseek) |
| Hugging Face | HF_TOKEN в ~/.vibeos/.env (провайдер: huggingface, псевдонимы: hf) |
| Google / Gemini | GOOGLE_API_KEY (или GEMINI_API_KEY) в ~/.vibeos/.env (провайдер: gemini) |
| OpenAI API (прямой) | OPENAI_API_KEY в ~/.vibeos/.env (поставщик: openai-api, дополнительно OPENAI_BASE_URL) |
| Azure AI Foundry | vibeos model → "Azure AI Foundry" (поставщик: azure-foundry; использует Azure OpenAI / Foundry конечная точка и ключ) |
| AWS Bedrock | vibeos 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 OAuth | vibeos model → "Qwen OAuth" (провайдер: qwen-oauth; браузер PKCE логин) |
| MiniMax OAuth | vibeos model → "MiniMax (OAuth)" (провайдер: minimax-oauth; браузер PKCE логин) |
| StepFun | STEPFUN_API_KEY в ~/.vibeos/.env (провайдер: stepfun) |
| LM Studio | vibeos 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 и меняются прозрачно. Отозванные токены обновления помещаются в карантин во избежание циклов повтора.
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 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 не требуется. Поддерживает три метода аутентификации:
При аутентификации через 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
Параметры аутентификации (проверяются в следующем порядке):
COPILOT_GITHUB_TOKENпеременная средыGH_TOKENпеременная средыGITHUB_TOKENпеременная средыgh auth tokenCLI запасной вариант
Если токен не найден, vibeos model предлагает вход с кодом устройства OAuth — тот же процесс, который используется Copilot CLI и открытый код.
Copilot API не поддерживает классические токены личного доступа (ghp_*). Поддерживаемые типы токенов:
| Тип | Префикс | Как получить |
|---|---|---|
| токен OAuth | gho_ | vibeos model → GitHub Copilot → Войти с помощью GitHub |
| Мелкозернистый PAT | github_pat_ | GitHub Настройки → Настройки разработчика → Детализированные токены (требуется разрешение Copilot Запросы) |
| GitHub Токен приложения | ghu_ | Через GitHub Установка приложения |
Если ваш gh auth token возвращает токен ghp_*, используйте vibeos model для аутентификации через OAuth вместо этого
VibeOS отправляет поддерживаемое сообщение токен GitHub (gho_*, github_pat_* или ghu_*) непосредственно на api.githubcopilot.com и включает заголовки, специфичные для Copilot (Editor-Version, Copilot-Integration-Id, Openai-Intent, x-initiator).
На HTTP 401 VibeOS теперь выполняет однократное восстановление учетных данных перед резервный вариант:
- Повторно разрешить токен через обычную цепочку приоритетов (
COPILOT_GITHUB_TOKEN→GH_TOKEN→GITHUB_TOKEN→gh auth token) - Пересоберите общий клиент OpenAI с обновленными заголовками
- Повторите запрос один раз
Некоторые старые прокси сообщества используют потоки обмена 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 / Поставщик 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) сохраняется посредством нормализации — не используйте тире.
Оба говорят тот же 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 использует ориентированный на потребителя портал 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 использует портал 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"
Для локальных развертываний (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
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 (запускается с вашего терминала, вне сеанса чата) — это мастер полной настройки провайдера. Используйте его для добавления новых провайдеров, запуска потоков 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 по умолчанию не использует полное контекстное окно вашей модели. В зависимости от вашего 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. Без этого флага вызовы инструментов возвращаются в виде обычного текста.
Если ответы кажутся усеченными, добавьте 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:
- Щелкните значок шестеренки рядом со средством выбора модели
- Установите для параметра «Длина контекста» значение не менее 64000 для более плавной работы
- Перезагрузите модель, чтобы изменения вступили в силу
- Если ваша машина не может вместить 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 (обычно для vLLM, SGLang и llama-server), localhost работает как положено — они используют одно и то же сетевое пространство имен. Пропустите этот раздел.
Вариант 1: Режим зеркальной сети (рекомендуется)
Доступно Windows 11 22H2+, в зеркальном режиме localhost работает в двух направлениях между Windows и WSL2 — самое простое исправление.
-
Создайте или отредактируйте
%USERPROFILE%\.wslconfig(например,C:\Users\YourName\.wslconfig):[wsl2]
networkingMode=mirrored -
Перезапустите WSL с PowerShell:
wsl --shutdown -
Снова откройте терминал WSL2.
localhostтеперь доступен сервисам Windows:curl http://localhost:11434/v1/models # Ollama on Windows — works
В некоторых сборках 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 по умолчанию работает нормально.
| Сервер | Привязка по умолчанию | Как исправить |
|---|---|---|
| Ollama | 127.0.0.1 | Установите переменную среды OLLAMA_HOST=0.0.0.0 перед запуском Ollama (Системные настройки → Переменные среды в Windows или отредактируйте службу Ollama) |
| LM Studio | 127.0.0.1 | Включите "Сервис по сети" на вкладке "Разработчик" → Настройки сервера |
| лама-сервер | 127.0.0.1 | Добавьте --host 0.0.0.0 в команду запуска |
| vLLM | 0.0.0.0 | По умолчанию уже привязывается ко всем интерфейсам |
| SGLang | 127.0.0.1 | Добавьте --host 0.0.0.0 к команде запуска |
Ollama на Windows (подробно): Ollama работает как служба Windows. Чтобы установить OLLAMA_HOST:
- Откройте Свойства системы → Переменные среды
- Добавьте новую Системную переменную:
OLLAMA_HOST=0.0.0.0 - Перезапустите службу 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
Ответы обрезаются на полуслове
Возможные причины:
- Низкое ограничение вывода (
max_tokens) на сервере — SGLang по умолчанию составляет 128 токенов на ответ. Установите--default-max-tokensна сервере или настройте VibeOS с помощьюmodel.max_tokensв config.yaml. Примечание.max_tokensконтролирует только длину ответа — она не связана с продолжительностью истории вашего разговора (то естьcontext_length). - Исчерпание контекста — модель заполнила контекстное окно. Увеличьте
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/cost | 74-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 | Примечания |
|---|---|---|
| Вместе AI | https://api.together.xyz/v1 | Открытые модели, размещенные в облаке |
| Грок | https://api.groq.com/openai/v1 | Сверхбыстрый вывод |
| DeepSeek | https://api.deepseek.com/v1 | DeepSeek модели |
| ИИ-фейерверк | https://api.fireworks.ai/inference/v1 | Быстрый хостинг открытых моделей |
| GMI Облако | https://api.gmi-serving.com/v1 | Управляемый OpenAI-совместимый вывод |
| Церебра | https://api.cerebras.ai/v1 | Вывод микросхемы в масштабе пластины |
| Мистраль ИИ | https://api.mistral.ai/v1 | Модели Мистраль |
| OpenAI | https://api.openai.com/v1 | Прямой OpenAI доступ |
| Azure OpenAI | https://YOUR.openai.azure.com/ | Предприятие OpenAI |
| LocalAI | http://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
Определение длины контекста
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 использует цепочку разрешения из нескольких источников для определения правильного контекстного окна для вашей модели и провайдер:
- Переопределение конфигурации —
model.context_lengthв config.yaml (высший приоритет) - Индивидуальный поставщик для каждой модели —
custom_providers[].models.<id>.context_length - Постоянный кэш — ранее обнаруженные значения (выдерживает перезапуск)
- Конечная точка
/models— запрашивает конечные точки API (local/custom) 5 вашего сервера. Anthropic/v1/models— запрашивает API Anthropic дляmax_input_tokens(API только для ключевых пользователей) - OpenRouter API — метаданные живой модели из OpenRouter
- Nous Portal — суффикс соответствует идентификаторам модели Nous с метаданными OpenRouter
- models.dev — реестр, поддерживаемый сообществом, с длиной контекста, зависящей от поставщика, для более чем 3800 моделей от более чем 100 поставщиков
- Резервные настройки по умолчанию — шаблоны широкого семейства моделей (по умолчанию 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:<name>:<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_URLenv var, см. #15103. ::
Выбор права Настройка
| Вариант использования | Рекомендуется |
|---|---|
| Просто хочу, чтобы это сработало | OpenRouter (по умолчанию) или Nous Portal |
| Локальные модели, простая настройка | Ollama |
| Производство GPU порция | vLLM или SGLang |
| Mac / нет GPU | Ollama или llama.cpp |
| Маршрутизация между несколькими провайдерами | LiteLLM Прокси или OpenRouter |
| Оптимизация затрат | ClawRouter или OpenRouter с sort: "price" |
| Максимальная конфиденциальность | Ollama, vLLM или llama.cpp (полностью локальный) |
| Предприятие / Azure | Azure OpenAI с пользовательской конечной точкой |
| Китайские модели искусственного интеллекта | z.ai (GLM), Kimi/Moonshot (kimi-coding или kimi-coding-cn), MiniMax, Xiaomi MiMo или Tencent TokenHub (первоклассные поставщики) |
Вы можете переключаться между провайдерами в любое время с помощью vibeos model — перезагрузка не требуется. История ваших разговоров, память и навыки сохраняются независимо от того, какого поставщика вы используете.
Необязательные API Keys
| Особенность | Провайдер | Переменная окружения |
|---|---|---|
| Парсинг веб-страниц | Firecrawl | FIRECRAWL_API_KEY, FIRECRAWL_API_URL |
| Автоматизация браузера | Browserbase | BROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID |
| Генерация изображений | FAL | FAL_KEY |
| Премиум TTS голоса | ElevenLabs | ELEVENLABS_API_KEY |
| OpenAI TTS + транскрипция голоса | OpenAI | VOICE_TOOLS_OPENAI_KEY |
| Мистраль TTS + голосовая транскрипция | Мистраль | MISTRAL_API_KEY |
| Межсессионное моделирование пользователей | Honcho | HONCHO_API_KEY |
| Семантическая долговременная память | Supermemory | SUPERMEMORY_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.
Настройка:
-
Клонируйте и запустите стек 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 -
Наведите 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. Полную информацию о том, когда он срабатывает, как продвигается цепочка и как она взаимодействует со вспомогательными задачами и делегированием, см. в разделе Откат Поставщики.
См. также
- Конфигурация — Общая конфигурация (структура каталогов, приоритет конфигурации, серверные части терминала, память, сжатие и т. д.)
- Переменные среды — Полная ссылка на все переменные среды