GPT-6 Sol и Claude Opus 5.5 уже доступныGPT-6 Sol вдвое дешевле 5.6 Sol

Свои модели в Factory Droid: как подключить Claude и GPT со своим API-ключом

Один settings.json дал Droid 1.0.0 модели Claude Sonnet 5.5, GPT-6.1 Terra и MiniMax M3.1 Flash на одном ключе. Ниже файл, provider для каждой модели и четыре ошибки, на которые мы наткнулись.

Kiki, OmniaKey COO9 мин чтения
На этой странице

Добавьте каждую модель в customModels файла ~/.factory/settings.json с полями model, baseUrl, apiKey и provider: anthropic для Claude с чистым хостом, openai для GPT и generic-chat-completion-api для всего остального. На Droid 1.0.0 Claude Sonnet 5.5, GPT-6.1 Terra и MiniMax M3.1 Flash исправили один и тот же баг за 33,7, 77,4 и 30,7 секунды.

Все три прогона шли через OmniaKey на одном ключе — так мы получили доступ к Claude Sonnet 5.5, GPT-6.1 Terra и MiniMax M3.1 Flash. Каждой модели досталась одна и та же сломанная функция median(), и каждая её починила.

Коротко

  • Куда писать. customModels в ~/.factory/settings.json (документация Factory по настройкам, проверена 30 октября 2026), с полями model, baseUrl, apiKey и provider.
  • Какой provider. anthropic для Claude, openai для моделей GPT, generic-chat-completion-api для всего остального, что говорит на Chat Completions.
  • Куда ставить /v1. anthropic получает чистый хост, потому что Droid сам добавляет /v1/messages; openai и generic-chat-completion-api получают URL, оканчивающийся на /v1.
  • ID для droid exec. custom:, отображаемое имя с дефисами вместо пробелов, затем позиция с нуля: custom:Claude-Sonnet-5.5-[OmniaKey]-0.
  • Что показали прогоны. Все три исправили баг; 30,7 с у Flash, 33,7 с у Claude, 77,4 с у GPT-6.1 Terra.

Какой provider выбрать?

Выбирайте provider по API, на котором говорит ваш эндпоинт, а не по названию модели.

  • anthropic отправляет запросы в Anthropic Messages API. Подходит для Claude; базовый URL Anthropic — https://api.anthropic.com.
  • openai отправляет запросы в OpenAI Responses API. Подходит для моделей GPT; базовый URL OpenAI — https://api.openai.com/v1.
  • generic-chat-completion-api отправляет запросы в OpenAI Chat Completions. Подходит для большинства других моделей, шлюзов и локальных серверов — с URL /v1 самого провайдера.

Factory указывает generic-chat-completion-api для OpenRouter, Fireworks, Together AI, Ollama, vLLM и большинства open-source провайдеров и советует этот вариант, пока вы не обращаетесь к официальному API OpenAI или Anthropic (документация Factory по BYOK, проверена 30 октября 2026).

Шлюз, который тоже понимает Messages API или Responses API, может использовать anthropic или openai. Наши записи для Claude и GPT-6.1 Terra работали так через OmniaKey, и обе запустились; OmniaKey отдаёт модели GPT на POST /v1/responses (документация OmniaKey о совместимости с OpenAI, проверена 30 октября 2026).

Есть и четвёртое значение — bedrock-converse, для моделей на Converse API в AWS Bedrock. Factory предупреждает, что полностью протестированы и прогнаны через бенчмарки только модели Anthropic и OpenAI на их официальных API, а модели меньше 30 миллиардов параметров заметно хуже справляются с агентным программированием (документация Factory по BYOK, проверена 30 октября 2026).

Наш settings.json

Droid создаёт ~/.factory/settings.json при первом запуске, поэтому добавьте customModels в уже существующий файл (документация Factory по настройкам, проверена 30 октября 2026). Наш выглядит так:

json
{
  "customModels": [
    {
      "model": "claude-sonnet-5-5",
      "displayName": "Claude Sonnet 5.5 [OmniaKey]",
      "baseUrl": "https://api.omniakey.com",
      "apiKey": "${OMNIAKEY_API_KEY}",
      "provider": "anthropic",
      "maxOutputTokens": 16000
    },
    {
      "model": "gpt-6.1-terra",
      "displayName": "GPT-6.1 Terra [OmniaKey]",
      "baseUrl": "https://api.omniakey.com/v1",
      "apiKey": "${OMNIAKEY_API_KEY}",
      "provider": "openai",
      "maxOutputTokens": 16000
    },
    {
      "model": "minimax-m3.1-flash",
      "displayName": "MiniMax M3.1 Flash [OmniaKey]",
      "baseUrl": "https://api.omniakey.com/v1",
      "apiKey": "${OMNIAKEY_API_KEY}",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 16000
    }
  ]
}
  • model — это id, который уходит в API; скопируйте его из списка моделей провайдера. displayName — ваша метка: она видна в /model и образует id custom:.
  • baseUrl — чистый хост для anthropic и адрес с /v1 на конце для двух других.
  • apiKey: "${OMNIAKEY_API_KEY}" читает ключ из переменной окружения, поэтому в файле его нет (документация Factory по BYOK, проверена 30 октября 2026).
  • provider задаёт API; опечатка здесь даёт ошибку «Invalid provider» ниже.
  • maxOutputTokens: 16000 ограничивает длину каждого ответа.

Один ключ и два базовых URL покрывают все три модели: чистый хост OmniaKey для Claude и хост /v1 для двух других. Если вы уже прошли настройку OmniaKey для кодовых агентов, тот же ключ работает и здесь.

Factory пишет, что ключи остаются локально и не загружаются на серверы Factory (документация Factory по BYOK, проверена 30 октября 2026). Старые руководства кладут модели в ~/.factory/config.json. Документация Factory по BYOK по-прежнему утверждает, что Droid копирует их в settings.json при старте. В pull request #76 в репозитории Factory на GitHub сказано, что изменение кода, слитое 15 октября 2026, эту копию убрало, так что новые модели сразу пишите в settings.json.

Как выбрать свою модель в Droid?

В приложении откройте /model и посмотрите раздел Custom Models; в командной строке передайте id custom: в droid exec.

Документация Factory говорит, что сохранённые модели показываются там с их displayName, а добавить модель можно ещё в /settings > Custom models или /model > Manage custom models (проверена 30 октября 2026).

ID для droid exec — это custom:, затем отображаемое имя с дефисами вместо пробелов, дефис и позиция модели в customModels с нуля (документация Factory по droid exec, проверена 30 октября 2026). У нас получились custom:Claude-Sonnet-5.5-[OmniaKey]-0, custom:GPT-6.1-Terra-[OmniaKey]-1 и custom:MiniMax-M3.1-Flash-[OmniaKey]-2.

Индекс идёт по порядку массива, поэтому вставка модели выше сдвигает все id под ней; скопируйте id заново после правки файла.

-r / --reasoning-effort в droid exec не действует для своих моделей (документация Factory по droid exec, проверена 30 октября 2026). Задайте reasoningEffort в самой записи.

Три модели на одном баге

Два файла, одна команда, один прогон на модель. stats.py:

python
def median(values):
    """Return the median of a non-empty list of numbers."""
    ordered = sorted(values)
    mid = len(ordered) // 2
    return ordered[mid]

test_stats.py:

python
from stats import median

assert median([3, 1, 2]) == 2
assert median([4, 1, 3, 2]) == 2.5
assert median([5]) == 5
assert median([1.5, 2.5]) == 2.0
print("all tests passed")

Команда, где между прогонами меняется только значение --model:

bash
droid exec --auto medium -o json --model "custom:Claude-Sonnet-5.5-[OmniaKey]-0" "python3 test_stats.py fails. Fix the bug in stats.py without changing the tests, run python3 test_stats.py again, and tell me in one sentence what you changed."
МодельВремяШагиТокены вывода
Claude Sonnet 5.533,7 с3702
GPT-6.1 Terra77,4 с4451
MiniMax M3.1 Flash30,7 с4525

Это собственные цифры Droid (duration_ms, num_turns, output_tokens). Flash финишировал быстрее всех за 30,7 с, Claude сделал меньше всех шагов, а GPT-6.1 Terra работал дольше всех — 77,4 с. Первый токен Droid отдал через 8,7 с у Claude, 17,8 с у Terra и 7,0 с у Flash. Все три исправили баг, не тронув test_stats.py, и тесты напечатали all tests passed.

Изменение Claude:

diff
-    return ordered[mid]
+    if len(ordered) % 2:
+        return ordered[mid]
+    return (ordered[mid - 1] + ordered[mid]) / 2

GPT-6.1 Terra добавил ту же ветку над старой строкой возврата, а MiniMax M3.1 Flash написал её через % 2 == 1. Все три ответа описывали одно и то же исправление: усреднить два средних значения, когда длина списка чётная. Обзор MiniMax M3.1 Flash разбирает эту модель подробнее.

В JSON-результате Droid каждый раз печаталось ещё и factory_credits, хотя мы ни разу не входили в аккаунт: 31 534 для Claude Sonnet 5.5, 4 830 для GPT-6.1 Terra и 835 для MiniMax M3.1 Flash. Документация Factory не объясняет, что измеряет это число и как оно связано с лимитом BYOK (проверена 30 октября 2026).

Нужен ли аккаунт или план Factory?

В наших прогонах droid exec с моделью custom: обходился без аккаунта Factory. Собственные модели Factory и интерактивное приложение его требовали.

Droid CLI 1.0.0 вышел 29 октября 2026 (changelog Factory, проверен 30 октября 2026). В чистой домашней папке без входа в Factory каждый вызов droid exec с моделью custom: шёл на нашем собственном ключе. Та же команда без --model сразу останавливалась с «Authentication failed. Please log in using /login or set a valid FACTORY_API_KEY environment variable.» («Не удалось пройти аутентификацию. Войдите через /login или задайте действующую переменную окружения FACTORY_API_KEY.»). Запись changelog Factory v0.236.0 (8 октября 2026) описывает возобновление сессий: «Droid exec now resumes a session on your own model credentials without a Factory sign-in.» («Droid exec теперь продолжает сессию на ваших собственных учётных данных модели, без входа в Factory.»)

Запуск droid без аргументов в той же папке останавливался на «Please login with your Factory account to continue.» («Войдите в свой аккаунт Factory, чтобы продолжить.»). Без входа мы не смогли попробовать свои модели в интерактивном приложении и в приложении для десктопа, а ввод изображений, Bedrock, apiKeyHelper, reasoningEffort, настройки рассуждений, Windows, сессии длиннее одной задачи и старый файл config.json мы не проверяли.

Индивидуальные планы Factory стоят $20 (Pro), $100 (Plus) и $200 (Max) в месяц; на странице цен есть ещё Teams за $60 в месяц за команду плюс $40 за место, а бесплатного индивидуального плана нет (документация и страница цен Factory, проверены 30 октября 2026).

Документация по индивидуальным планам говорит: «BYOK is free up to an allowance on all Individual plans. After that, usage is charged according to your specific plan.» («BYOK бесплатен до определённого лимита на всех индивидуальных планах. Дальше использование оплачивается по вашему плану.») Каков размер этого лимита и как выглядит оплата после него, Factory не сообщает.

Личные свои модели работают в CLI и в приложении для десктопа и не появляются в облачных веб- и мобильном приложениях Factory (документация Factory по BYOK, проверена 30 октября 2026).

Какие ошибки встретятся и что их исправляет?

Каждая возникала из-за одного неверного значения в настройке, которая в остальном работала, на Droid 1.0.0.

  1. anthropic с /v1 в базовом URL. Через 0,9 с Droid вывел «Requested model was not found on the API provider» («Запрошенная модель не найдена у провайдера API»), а в логе было 404 на Invalid URL (POST /v1/v1/messages). Droid сам добавляет /v1/messages, поэтому наш /v1 его удваивал. Решение: чистый хост, https://api.anthropic.com или https://api.omniakey.com.

  2. openai с чистым хостом. Через 1,4 с Droid вывел 404 и страницу nginx «404 Not Found»; Responses API живёт под /v1. Решение: https://api.openai.com/v1 или https://api.omniakey.com/v1.

  3. ID модели с точками, claude-sonnet-5.5, вместо claude-sonnet-5-5. Эндпоинт ответил 503 с кодом model_not_found и сообщением «No available channel for model claude-sonnet-5.5» («Нет доступного канала для модели claude-sonnet-5.5»). В логе Droid каждая неудача помечалась как «overloaded», и он сделал 10 попыток за 259,7 секунды (около 4 минут 20 секунд), прежде чем выйти с этим сообщением. Формулировка от шлюза, повторные попытки от Droid. Решение: скопировать точный id из списка моделей провайдера.

  4. OMNIAKEY_API_KEY пустая в оболочке, из которой запустили Droid. Через 2,8 с Droid получил 401 с «Invalid token» («Недействительный токен»). Решение: экспортировать ключ в той оболочке, откуда вы запускаете droid, и начать новую сессию.

В списке решения проблем у Factory есть ещё два пункта. «Invalid provider» значит, что значение написано с ошибкой или с другой заглавной буквой, и должно быть ровно anthropic, openai, generic-chat-completion-api или bedrock-converse. Если модели нет в списке выбора, документация советует проверить синтаксис JSON в ~/.factory/settings.json и наличие обязательных полей в каждой записи (проверена 30 октября 2026).

FAQ

Где файл настроек Droid в Windows?

%USERPROFILE%\.factory\settings.json, тот же файл, что ~/.factory/settings.json в macOS и Linux (документация Factory по настройкам, проверена 30 октября 2026). customModels пишите туда.

Почему моя модель не появляется в /model?

Проверьте сначала синтаксис JSON в ~/.factory/settings.json, затем поля model, baseUrl и provider. Droid замечает сохранённые изменения через отслеживание файла (документация Factory по BYOK, проверена 30 октября 2026). В одном отчёте на Desktop 0.184.0 с CLI 0.227.0 свои модели на миг появлялись в десктопном списке выбора и исчезали, хотя droid exec --help по-прежнему перечислял все 14; сейчас эта проблема закрыта (Factory-AI issue #40, проверена 30 октября 2026).

Умеют ли свои модели читать изображения?

У anthropic и openai изображения включены по умолчанию, у generic-chat-completion-api выключены: там noImageSupport по умолчанию равен true (документация Factory по BYOK, проверена 30 октября 2026). Поставьте noImageSupport: false в универсальной записи, чтобы их разрешить. Согласно одному сообщению, изображения всё равно вырезались на CLI v0.205.1 с этим значением (Factory-AI issue #24, проверена 30 октября 2026).

Можно ли задать reasoning effort для своей модели?

-r / --reasoning-effort в droid exec не действует для своих моделей. Задайте reasoningEffort в записи: значение задаёт усилие по умолчанию для модели, которую Droid не знает, и добавляет off, low, medium и high в список выбора (документация Factory по BYOK, проверена 30 октября 2026).

Работают ли свои модели в приложении Droid для десктопа?

Да: личные свои модели доступны в CLI и в приложении для десктопа и не попадают в облачные веб- и мобильное приложения. Редакторы моделей в CLI и в десктопном приложении сохраняют всё в ~/.factory/settings.json (документация Factory по BYOK, проверена 30 октября 2026).

Проверенные источники

Собственная документация OmniaKey, проверена 30 октября 2026: обзор API и API, совместимый с OpenAI.

Модели в этой статье

Factory DroidBYOKсвои моделиClaude Sonnet 5.5GPT-6.1 Terraнастройка API

Похожие статьи

Настройка API7 мин чтения

Как использовать API Claude и GPT в DeepSeek Harness

Один пользовательский провайдер по протоколу OpenAI запускает Claude Opus 5.5, Claude Sonnet 5.5 и GPT-6.1 в DeepSeek Harness, если у каждой модели есть уровни рассуждений и лимит вывода 128K. Встроенный провайдер DeepSeek отправляет настройку thinking, которую Claude отвергает.

Гайд4 мин чтения

Claude Code с OmniaKey

Направьте Claude Code на эндпоинт OmniaKey с нативным Anthropic API — две переменные окружения, модели Claude без молчаливой подмены, оплата за токены без месячной подписки.

Сравнение12 мин чтения

Лучшая модель для Claude Code

Начинайте повседневную работу с Sonnet 5.5 за 2 доллара за миллион входных токенов, отдавайте задачи на несколько файлов Opus 5.5 за 4 доллара, держите Fable 5.1 для самых трудных и долгих сессий, а быстрые правки и субагентов оставляйте Haiku 5.5.

Недавние статьи