Skip to content
55 changes: 26 additions & 29 deletions docs/ai/opencode.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ title: "Работа с OpenCode"

> Как установить OpenCode, выбрать модель и подключить агента к GitHub Actions.

OpenCode это агент для разработки на основе языковых моделей, который работает в терминале. На нём построены курсы по разработке с ИИ: агент читает код проекта, правит файлы, запускает команды и в одном из уроков отвечает на задачи в GitHub.
OpenCode это агент для разработки на основе языковых моделей, который работает в терминале. На нём построены курсы по разработке с ИИ: агент читает код проекта, правит файлы, запускает команды и умеет отвечать на задачи в GitHub.

## Установка

Expand Down Expand Up @@ -88,27 +88,9 @@ OpenCode Console Default stored

Оплата и расход живут в кабинете [opencode.ai/console](https://opencode.ai/console). Ключ другого провайдера, например OpenAI или Anthropic, подключается той же командой `/connect`.

## Агент в GitHub Actions

В уроке про GitHub Actions агент запускается на серверах GitHub по комментарию в задаче или пулреквесте. Как поставить приложение и завести файл `.github/workflows/opencode.yml`, рассказывает сам урок. Здесь только про модель и секрет.

Модель задаётся в воркфлоу полем `model`, и от её провайдера зависит имя секрета с ключом:

| Модель в воркфлоу | Имя секрета |
| --- | --- |
| `opencode/<модель>` | `OPENCODE_API_KEY` |
| `openai/<модель>` | `OPENAI_API_KEY` |
| `anthropic/<модель>` | `ANTHROPIC_API_KEY` |

Секрет добавляется в репозитории на GitHub: **Settings → Secrets and variables → Actions**, кнопка **New repository secret**.

**Ключ нужен для любой модели, в том числе бесплатной.** Для моделей `opencode/…` его создают в кабинете [opencode.ai/console](https://opencode.ai/console) на вкладке **API Keys**, для остальных в кабинете провайдера. Значение ключа кабинет показывает один раз, поэтому сразу скопируйте его в секрет. Пустой секрет роняет запуск на аутентификации.

У бесплатной модели есть дневной лимит запросов. Если агент отвечает ошибкой лимита, повторите запуск позже или переключитесь на платную модель.

## Если вы купили программу «ИИ для разработчиков»

Студентам, которые купили программу [«ИИ для разработчиков»](https://ru.hexlet.io/programs/ai-for-developers), Хекслет даёт доступ к платным моделям через пространство **Hexlet Students** в OpenCode. Устройство OpenCode и команды остаются теми же, что описаны выше. Меняется пространство, из которого идут запросы, и источник ключа для GitHub Actions.
Студентам, которые купили программу [«ИИ для разработчиков»](https://ru.hexlet.io/programs/ai-for-developers), Хекслет даёт доступ к платным моделям через пространство **Hexlet Students** в OpenCode. Устройство OpenCode и команды остаются теми же, что описаны выше. Меняется пространство, из которого идут запросы. Ключ для GitHub Actions выпускается по [шагам ниже](#ключ-для-github-actions), только в поле **Workspace** выберите **Hexlet Students**.

Если курсы по ИИ входят в ваш тариф другой профессии или в подписку, доступа к **Hexlet Students** у вас нет: в этом случае вы можете использовать бесплатные модели из разделов выше.

Expand Down Expand Up @@ -160,26 +142,41 @@ OpenCode Console Default stored

Агент в GitHub Actions запускается сам на каждый пулреквест, комментарий или по расписанию, поэтому расход копится незаметно. Одно ревью пулреквеста моделью `kimi-k3` стоит от $0.20 до $0.45, и активный день проверок может съесть весь бюджет. Для автоматических проверок берите в воркфлоу модель `opencode/deepseek-v4.1-flash`, она справляется с ревью и стоит намного дешевле. Сильную модель оставьте для терминала, где вы видите каждый запрос.

## Агент в GitHub Actions

OpenCode можно запускать в своём репозитории на GitHub. Агент работает на серверах GitHub и отвечает на комментарий в задаче или пулреквесте, а воркфлоу можно настроить и на запуск по каждому пулреквесту или по расписанию. Как поставить приложение OpenCode и завести файл `.github/workflows/opencode.yml`, рассказывает [документация OpenCode](https://opencode.ai/docs/github/). Здесь разбираются модель и секрет с ключом.

Модель задаётся в воркфлоу полем `model`, и от её провайдера зависит имя секрета с ключом:

| Модель в воркфлоу | Имя секрета |
| --- | --- |
| `opencode/<модель>` | `OPENCODE_API_KEY` |
| `openai/<модель>` | `OPENAI_API_KEY` |
| `anthropic/<модель>` | `ANTHROPIC_API_KEY` |

Секрет добавляется в репозитории на GitHub: **Settings → Secrets and variables → Actions**, кнопка **New repository secret**.

### Ключ для GitHub Actions

Ключ для урока про GitHub Actions вы выпускаете сами в кабинете OpenCode.
**Ключ нужен для любой модели, в том числе бесплатной.** Для моделей `opencode/…` вы выпускаете его сами в кабинете OpenCode, для остальных моделей в кабинете провайдера.

1. Откройте [opencode.ai/console](https://opencode.ai/console) и войдите той почтой, на которую пришло приглашение в **Hexlet Students**.
1. Откройте [opencode.ai/console](https://opencode.ai/console) и войдите в свой аккаунт.
2. Нажмите на свою почту в правом верхнем углу и выберите **Account**.
3. В блоке **Personal API keys** нажмите **Add API key**.
4. В поле **Workspace** выберите **Hexlet Students**. По умолчанию там стоит **Personal**, и ключ из личного пространства с моделями курса работать не будет.
4. В поле **Workspace** выберите пространство, которое будет платить за запросы агента. По умолчанию там стоит **Personal**, ваш личный аккаунт с бесплатными моделями. Если вы купили программу «ИИ для разработчиков», выберите **Hexlet Students**, и запросы пойдут из бюджета курса.
5. В поле **Key name** напишите понятное имя, например `github-actions`.
6. В поле **Expiration** выберите **Custom** и в поле **Days until expiration** укажите, сколько дней осталось до конца курса. Ключ без срока живёт вечно, и про него легко забыть.
7. Нажмите **Create** и сразу скопируйте ключ, кабинет показывает его один раз.
6. В поле **Expiration** выберите **Custom** и в поле **Days until expiration** укажите, сколько дней вам нужен ключ. Ключ без срока живёт вечно, и про него легко забыть.
7. Нажмите **Create** и сразу скопируйте ключ в секрет `OPENCODE_API_KEY`, кабинет показывает его один раз. Пустой секрет роняет запуск на аутентификации.

Ключ работает с моделями `opencode/…`, поэтому секрет в репозитории называется `OPENCODE_API_KEY`. Ключ может только получить список моделей и вызвать их от вашего имени. Храните его только в секретах репозитория и не вставляйте в код.
Ключ может только получить список моделей и вызвать их от вашего имени. Храните его только в секретах репозитория и не вставляйте в код.

Если проверка в GitHub Actions упала, причину подсказывает ответ OpenCode в логе.

- `429 Policy budget exceeded` означает, что закончился месячный бюджет. Новый ключ не поможет, потому что все ключи тратят один бюджет. Дождитесь первого числа или напишите куратору.
- `401` означает, что ключ истёк, отозван или выпущен в пространстве **Personal**. Выпустите новый ключ по шагам выше и замените значение секрета.
- Ошибка лимита на бесплатной модели означает, что кончился дневной лимит запросов. Повторите запуск позже или переключитесь на платную модель.
- `429 Policy budget exceeded` в пространстве **Hexlet Students** означает, что закончился месячный бюджет. Новый ключ не поможет, потому что все ключи тратят один бюджет. Дождитесь первого числа или напишите куратору.
- `401` означает, что ключ истёк или отозван. Выпустите новый ключ по шагам выше и замените значение секрета.

Если ключ попал к посторонним, удалите его в блоке **Personal API keys** и выпустите новый. Старый перестаёт работать сразу. Когда вы покидаете пространство **Hexlet Students**, все ваши ключи отзываются автоматически.
Если ключ попал к посторонним, удалите его в блоке **Personal API keys** и выпустите новый. Старый перестаёт работать сразу. Когда вы покидаете пространство **Hexlet Students**, ключи этого пространства отзываются автоматически.

## Если остались вопросы

Expand Down
Loading