OpenCode в Docker с платной моделью через OpenRouter

Введение

Эта статья — часть большого руководства OpenCode в Docker на Ubuntu 24.04.

Руководство показывает, как запускать OpenCode с флагом --auto внутри контейнера Docker.

С --auto агент не спрашивает вас перед каждой командой, поэтому контейнер ограничивает то, до чего он может достать: агент работает только в одном git worktree, отдельной копии проекта.

Эта статья показывает, как дать контейнеру платную модель через OpenRouter.

У бесплатной модели OpenCode есть лимит использования (у бесплатной модели есть лимит использования).

Учётная запись OpenRouter даёт контейнеру платные модели через один ключ.

Лаунчер читает ключ из файла на хосте и передаёт его по одному запуску за раз; запуск без него остаётся на бесплатной модели и ключа не получает.

1. Ключ для контейнера

Создайте отдельный ключ на странице ключей OpenRouter (создание ключа API) и задайте ему лимит кредита (ключи, лимиты и приватность).

Под --auto агент может прочитать ключ, поэтому лимит — это то, что он может потратить, а утёкший ключ удаляется, не затрагивая ваши остальные.

Сохраните его вне репозитория, доступным только вам:

mkdir -p ~/.config/opencode-agent

install -m 600 /dev/null ~/.config/opencode-agent/openrouter.key

vi ~/.config/opencode-agent/openrouter.key

Вставьте ключ, который начинается с sk-or-, единственной строкой.

install с -m 600 создаёт файл с правами на чтение и запись только для вас ещё до того, как в нём появится ключ.

2. Проверка, что контейнер его получает

container/tools/ai/opencode-docker.sh --openrouter-key ~/.config/opencode-agent/openrouter.key ../site-agent shell

В приглашении /work $:

opencode auth list

OpenRouter OPENROUTER_API_KEY environment

opencode models | grep -c '^openrouter/'

371

Без --openrouter-key те же две команды печатают No authenticated integrations и 0.

Id моделей — это строки из opencode models | grep '^openrouter/', например openrouter/deepseek/deepseek-v4.1-flash, платная DeepSeek V4.1 Flash. Затем exit.

3. Запуск задачи на платной модели

container/tools/ai/opencode-docker.sh --openrouter-key ~/.config/opencode-agent/openrouter.key ../site-agent run -m openrouter/deepseek/deepseek-v4.1-flash "<task>"

-m выбирает модель только для этого запуска; конфигурация из шага 4 (конфигурация и заметки для контейнера) оставляет бесплатную модель для каждого запуска без ключа.

Какая модель подходит какой задаче, сказано в разделе Модели ИИ; цены меняются, поэтому проверяйте их на OpenRouter перед долгой задачей (проверяйте цены до планирования бюджета).

Что знать о ключе

Автор статьи: Клавдия Кондакова