diff --git a/docs/ai/opencode.md b/docs/ai/opencode.md index 50e1f190..c029e005 100644 --- a/docs/ai/opencode.md +++ b/docs/ai/opencode.md @@ -8,7 +8,7 @@ title: "Работа с OpenCode" > Как установить OpenCode, выбрать модель и подключить агента к GitHub Actions. -OpenCode это агент для разработки на основе языковых моделей, который работает в терминале. На нём построены курсы по разработке с ИИ: агент читает код проекта, правит файлы, запускает команды и в одном из уроков отвечает на задачи в GitHub. +OpenCode это агент для разработки на основе языковых моделей, который работает в терминале. На нём построены курсы по разработке с ИИ: агент читает код проекта, правит файлы, запускает команды и умеет отвечать на задачи в GitHub. ## Установка @@ -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** у вас нет: в этом случае вы можете использовать бесплатные модели из разделов выше. @@ -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**, ключи этого пространства отзываются автоматически. ## Если остались вопросы