Добавить провайдера и запустить Claude Code, Codex или Grok
Эта страница — первый час плоскости провайдеров: куда кладётся ваш API-ключ, как вы узнаёте, что он работает, и как с ним запускается сессия.
В выпуске 26.10 переменная окружения на сервере остаётся одним из ответов на первый вопрос, и эти переменные по-прежнему работают. Они больше не единственный путь и больше не тот путь, с которого начинает новый оператор.
Что значат эти три слова
Заголовок раздела «Что значат эти три слова»По одной фразе на каждое, потому что продукт их смешивал, а отказы, которые он выдаёт, называют их по отдельности.
| Слово | Что это |
|---|---|
| Провайдер | API-ключ или конечная точка локальной модели, необязательная base_url и вид (anthropic, openai, xai, gemini, openai_compatible, ollama). |
| Профиль провайдера | Идентичность на этой машине: какой официальный CLI работает и под каким домашним каталогом конфигурации и пользователя. |
| Сессия | Один запущенный дочерний процесс, под одним профилем, с учётными данными одного провайдера. |
1. Добавьте провайдера
Заголовок раздела «1. Добавьте провайдера»Из консоли
Заголовок раздела «Из консоли»- Откройте Инструменты в верхней панели и найдите раздел API-ключи.
- Выберите Добавить API-ключ. Пока не зарегистрировано ни одного ключа, кнопка называется Добавьте первого провайдера.
- Выберите провайдера, дайте ему имя, которое вы узнаете в списке выбора, и вставьте
ключ. Оставьте конечную точку пустой, если вы не указываете на собственный шлюз;
провайдер
openai_compatibleтребует её, потому что нет официальной конечной точки, которую можно было бы предположить. - Подтвердите.
Движок запечатывает ключ в покое и возвращает подсказку из четырёх символов. Ключ больше никогда не возвращается, в том числе сразу после записи. Если вы его потеряли — замените: чтения, которое его восстановит, не существует.
# Ключ читается из stdin. Он никогда не является значением флага: флаг оставляет# учётные данные в истории оболочки и в таблице процессов.olivares provider add --kind anthropic --name "Anthropic (prod)" < key.txt
# Или из переменной окружения вашей собственной оболочки:ANTHROPIC_KEY=sk-ant-... olivares provider add \ --kind openai --name "Codex" --key-env ANTHROPIC_KEY2. Проверьте соединение
Заголовок раздела «2. Проверьте соединение»olivares provider test prv_01J8ABCDEFПроверка спрашивает у провайдера, какие модели он обслуживает. Она не отправляет никаких завершений и ничего не тратит.
Она отвечает одно из трёх, и это три разных вопроса:
| Итог | Что это значит | Что делать |
|---|---|---|
ok |
Провайдер ответил и принял учётные данные. | Ничего. Привяжите их. |
refused |
Провайдер ответил и отклонил учётные данные. | Замените ключ. |
unreachable |
Ответа не получено. | Проверьте конечную точку, сеть и прокси. Это ничего не говорит о ключе — не генерируйте его заново. |
Провайдер, которого вы не проверяли, показывается как не проверен, и никогда — как работающий. Регистрация учётных данных — это намерение; проверка — это факт.
3. Зарегистрируйте профиль и привяжите провайдера
Заголовок раздела «3. Зарегистрируйте профиль и привяжите провайдера»Явно указанные домашние каталоги должны уже существовать на машине, где работает плоскость управления. Сервер проверяет их там и не создаёт отсутствующие явно указанные каталоги: пустой запасной каталог дал бы сессии личность провайдера, которую никто не настраивал.
olivares agent profile create \ --driver claude \ --config-home /home/ops/.claude \ --user-home /home/ops \ --name "Claude (работа)" \ --auth-source managed_injection \ --provider prv_01J8ABCDEF--auth-source решает, откуда берётся личность провайдера у дочернего процесса, и эти
два значения не образуют цепочку отката:
provider_account_home— вход, уже сохранённый внутри собственных домашних каталогов профиля. Olivares ничего не внедряет и никогда не читает этот файл.managed_injection— учётные данные, которые подаёт движок. С привязанным провайдером это данные именно этого провайдера.
Сокращение объединяет обнаружение, регистрацию и привязку провайдера. Если не
указаны ни --config-home, ни --user-home, домашними каталогами управляет движок.
Без --provider он выбирает профиль, который использовала бы новая сессия этого
драйвера; с --provider он создаёт профиль с собственными домашними каталогами:
olivares agent deploy claude --provider prv_01J8ABCDEFПеред использованием этого сокращения установите инструмент в разделе Инструменты ИИ. Оно не выполняет вход в вашу учётную запись провайдера.
Чтобы привязать (или перепривязать) позже:
olivares provider bind prv_01J8ABCDEF --profile ppf_01J8ZZZZZZДвижок отклоняет учётные данные, которые драйвер профиля не может прочитать. Ключ OpenAI на профиле Claude — это отказ, называющий и то и другое, и при привязке, и снова при запуске; а не сессия, которая падает посреди рукопожатия.
| Вид провайдера | Драйверы, которые его читают | С собственной base_url |
|---|---|---|
anthropic |
claude, opencode |
claude |
openai |
codex, opencode |
codex |
xai |
grok, opencode |
grok |
gemini |
gemini-cli |
|
openai_compatible |
codex, opencode |
codex |
ollama |
codex, opencode |
codex, opencode |
Для anthropic, openai и xai OpenCode принимает только конечную точку самого поставщика: оставьте base_url пустой. Для шлюза openai_compatible используйте codex; для ollama и для локального сервера openai_compatible, чей base_url — обычный http по loopback- или частному адресу, например http://127.0.0.1:8080/v1 (vLLM, llama.cpp), — codex или opencode. base_url включает /v1.
4. Запустите первую сессию
Заголовок раздела «4. Запустите первую сессию»olivares agent workspace add /srv/projects/acme --name acme --mode ro --dlp denyolivares agent session create \ --name acme-1 \ --workspace ws-123 \ --provider-profile ppf_01J8ZZZZZZolivares agent session attach run-123--provider-profile явно выбирает профиль. Если запуск с профилями включён, при
отсутствии этого параметра движок определяет профиль для Claude Code — инструмента
по умолчанию: использует существующий или создаёт новый профиль для собственного
входа инструмента, а если вход не выполнен — для совместимой записи провайдера.
Для этого требуется sessions:profile:write; без этого разрешения выберите профиль
явно. Отказы при выборе профиля и запуске по-прежнему действуют.
В консоли тот же путь — Онбординг → Агенты и первая сессия или Сессии → Новая сессия.
Замена и отзыв
Заголовок раздела «Замена и отзыв»olivares provider rotate prv_01J8ABCDEF < new-key.txt # перезапечатывает на местеolivares provider rm prv_01J8ABCDEF --yes # необратимоЗамена подставляет новое значение под той же ссылкой, поэтому все привязанные профили продолжают работать, а следующий запуск использует новый ключ. Уже идущая сессия сохраняет учётные данные, с которыми она запустилась. Прежний результат проверки стирается: вердикт, измеренный для учётных данных, которых больше нет, ничего не доказывает о тех, что их заменили.
Отзыв уничтожает запечатанное значение и отказывает во всех будущих запусках по имени. Запись и привязки сохраняются намеренно: профиль, который молча перестал бы кого-либо называть, читался бы как профиль, который никто не настраивал. Отзыв здесь не отзывает ключ у провайдера; это делается в его собственной консоли.
Что движок отклоняет и почему
Заголовок раздела «Что движок отклоняет и почему»| Вы видите | Это значит |
|---|---|
provider credentials cannot be stored on this deployment |
Запечатанное хранилище не подключено. Движок отказывается сохранить ключ вместо того, чтобы хранить тот, который он не может защитить. |
the provider connection test is not available |
Зонд не подключён. На запуск это не влияет. |
a … credential is not readable by driver … |
Вид и драйвер не совпадают. Смотрите таблицу выше. |
the provider this profile is bound to is revoked |
Привяжите активного провайдера. |
this launch has two endpoints |
Одновременно действуют шлюз вывода развёртывания и собственный base_url провайдера. Уберите один; движок не выбирает. |
the registered provider credential could not be opened |
Запуск отклонён. Он не откатывается на учётные данные хоста — это выполнило бы вашу сессию под учётной записью, которую вы не выбирали. |
Переменные окружения и где они по-прежнему действуют
Заголовок раздела «Переменные окружения и где они по-прежнему действуют»Для профилей Claude с managed_injection, которые не указывают провайдера,
OLIVARES_SESSION_RUNTIME_WIF или OLIVARES_SESSION_RUNTIME_TOKEN_FILE задаёт
учётные данные вывода на хосте. Профиль, привязанный к провайдеру, использует его
учётные данные; при ошибке запуск отклоняется без перехода к данным хоста.
Профиль с provider_account_home использует разрешённый вход инструмента и
не требует ни одной из этих переменных.