Чтобы не объяснять OpenCode одно и то же, сохраните поручение в Markdown-файле и вызывайте его по имени через /. Новые данные передавайте через $ARGUMENTS, ответ проверяйте по условиям поручения. Не путайте с запуском: opencode открывает приложение из терминала, а /poruchenie вызывает сохранённый запрос внутри него.
Даёте агенту задачу, а приходится постоянно его поправлять, проверять по несколько раз, объяснять одно и то же. Я с этим тоже сталкивался в работе с Hermes. Мой принцип: сделав задачу 2-й раз, превращаете её в навык. В OpenCode для короткого поручения возьмём команду: способ работы сохраняется, данные меняются.
Команды OpenCode: что вводить в терминале, а что внутри
| Что это | Где вводить | Что делает | Пример |
|---|---|---|---|
| Запуск приложения | В оболочке терминала | Открывает OpenCode | opencode |
| Встроенное действие | В открытом OpenCode | Показывает справку | /help |
| Своё поручение | В открытом OpenCode | Отправляет сохранённый запрос; файл сначала нужно создать | /my-command |
Из терминала можно передать запрос без интерактивного режима. Пример из официальной справки:
opencode run "Explain how closures work in JavaScript"Здесь запрос написан в строке запуска, а не сохранён в файле команды.
Внутри OpenCode также есть /init, /undo, /redo. Не называйте свой файл help.md, init.md, undo.md или redo.md: он переопределит встроенную команду.
opencode models показывает доступные модели настроенных поставщиков. В терминале модель задают через --model или -m в формате поставщик/модель; в настройках команды - полем model. В примере его не задаём.
Если OpenCode ещё не запускается, начните с установки и подключения модели.
Больше разборов работы с ИИ-агентами - в канале:
Никогда не пишем код сразу: сначала образ результата
Сначала опишите, что хотите получить по итогу. Возьмём пример: превратить текст поручения в карточку проверки. До сохранения файла определите:
- Что подаёте: текст после
/poruchenie. - Что неизменно: инструкция разбирать его без выдуманных условий.
- Какой ответ нужен: «Задача», «Готово, когда», «Уточнить».
- Как проверяете: условия поручения сохранены, о недостающих сведениях агент спросил.
Сразу договоритесь, что агент проверяет сам, а что приносит вам. Здесь он должен только подготовить карточку, без проверки формы заявки или поиска на сайте.
Шаг 1. Создайте файл поручения в проекте
В корне нужного проекта создайте .opencode/commands/poruchenie.md:
.opencode/
commands/
poruchenie.mdВ пути commands написано во множественном числе. Для глобального хранения справка указывает ~/.config/opencode/commands/. Здесь работаем с файлом проекта; глобальная копия не нужна.
Шаг 2. Сохраните неизменную инструкцию
Вставьте в poruchenie.md весь текст, включая строки с ---:
---
description: Разобрать поручение на задачу и признаки готовности
---
Преобразуй входное поручение в карточку проверки.
Не выполняй само поручение, не используй инструменты и не меняй файлы.
Используй только сведения из входа. Не придумывай сроки, условия и результаты.
Ответь 3 разделами с точными заголовками:
Задача - что требуется сделать.
Готово, когда - перечисли явно указанные во входе признаки готовности.
Уточнить - перечисли недостающие сведения; если их нет, напиши «нет».
Если признак готовности не задан, не выдумывай его: вынеси вопрос в «Уточнить».
Не добавляй вступление и не заявляй, что работа уже выполнена.
Входное поручение:
$ARGUMENTSЭто пример инструкции. Просьба не использовать инструменты не заменяет настройку доступа к ним у агента.
В навыки пишем, как выполнять работу. А цены, акции и условия агент каждый раз берёт из актуальных документов. Здесь тот же принцип: в файле остаётся способ разбора, условия формы или поиска передавайте при вызове.
Шаг 3. Проверьте имя, описание и место для новых данных
poruchenie.mdзадаёт имя вызова/poruchenie.- Блок между
---задаёт свойства. Ключdescriptionоставьте как есть; его значение будет описанием в интерфейсе. - Текст после блока становится шаблоном запроса.
$ARGUMENTSзаменяется данными после имени команды.
Укажите $ARGUMENTS буквально.
Вместо файла можно использовать раздел command в конфигурации с обязательным template. Для нашего примера настройка в конфигурации не нужна.
Шаг 4. Откройте OpenCode и найдите поручение
В терминале получите номер версии:
opencode --versionЗапишите его. Из корня проекта, где лежит файл, откройте приложение:
opencodeЗапишите выбранную модель. Внутри OpenCode введите / и найдите poruchenie с описанием «Разобрать поручение на задачу и признаки готовности».
Если имени нет, переходите к разделу про ошибки. Версия и модель понадобятся, чтобы разобрать, что пошло не так.
Шаг 5. Передайте поручение о форме заявки
Внутри OpenCode введите:
/poruchenie Проверить форму заявки: поле почты обязательно; после отправки показать подтверждение.В ответе должны быть все 3 заголовка. В «Готово, когда» - обязательность поля почты и подтверждение после отправки. В «Уточнить» - вопросы о недостающих сведениях.
«Форма проверена, всё работает» - ошибка: агенту поручили составить карточку, результатов проверки сайта во входе нет. Если потерялась обязательность почты или появилась придуманная дата сдачи, ответ тоже не подходит.
Шаг 6. Замените вход и проверьте тот же файл
poruchenie.md не редактируйте. Передайте другое поручение:
/poruchenie Проверить поиск: по названию находит товар; пустой запрос не отправляется.Теперь в «Готово, когда» должны быть поиск товара по названию и запрет отправки пустого запроса. Условия формы заявки туда попадать не должны. Формат ответа прежний, выдуманных результатов быть не должно.
Для каждого вызова запишите, что получилось:
Версия OpenCode:
Выбранная модель:
Команда появилась, описание совпало:
Вход:
Фактический ответ:
Новые данные подставлены:
Формат сохранён:
Критерий выполнен:Сохраните сам ответ: по отметке «хорошо» потом не разобрать, что получилось. Проверка пройдена, если оба ответа соответствуют инструкции. Одинакового текста добиваться не нужно.
Если вы собираете свои проекты с ИИ-агентами, посмотрите программу практикума СмыслоКода.
Не получилось: что сверить в файле и ответе
Команда не появилась
Сверьте открытый проект, путь .opencode/commands/poruchenie.md, расширение и имя с официальной справкой Commands. При вводе / проверьте, есть ли poruchenie и его описание.
Нашли отличие - исправьте и проверьте список. Всё совпадает, но имени нет - ищите в справке сведения для своей версии. Не переименовывайте каталоги наугад. Запуск и получение версии описаны в справке CLI.
Кстати, я снял видео о том, как сохранять проверенный способ работы в навык на примере Hermes Agent. Посмотрите:
В нём показал, как задать правила навыка, образец и показатели, проверить работу на разных моделях. Посмотрите, как закреплять исправления в инструкции на Hermes, без синтаксиса OpenCode.
Новые данные не попали в ответ
Проверьте, есть ли $ARGUMENTS в тексте файла и само поручение после /poruchenie в вызове. В ответе условия поиска или снова условия формы?
Нет $ARGUMENTS или текста поручения - добавьте и повторите вызов. Если всё записано верно, сохраните вызов вместе с ответом, чтобы разбираться дальше.
Ответ нарушил критерий
Запишите, что именно не так: пропущен заголовок, потеряно условие, добавлен срок, заявлено о выполненной работе.
Посмотрите, что пришлось исправить. Эти исправления записывайте в инструкцию, чтобы в следующий раз не объяснять то же самое. Уточните poruchenie.md и заново проверьте оба поручения на той же модели. Вы изменили файл - нужно проверить его заново, старых ответов недостаточно.
Если вместо встроенной команды срабатывает ваша, проверьте имя файла: например, help.md переопределяет /help.
А если нужны отдельные аргументы или файл
Для свободного текста оставьте $ARGUMENTS. Если нужно передать отдельные поля, используйте $1, $2, $3. Нашему поручению это не требуется.
Для ссылки на файл в шаблоне есть запись:
@src/components/Button.tsxОна включает содержимое файла в запрос. Это путь из справки; укажите файл вашего проекта. Секреты в пример не включайте.
Для команды можно задать модель полем model, исполнителя - agent. Оба поля необязательны. Без agent используется текущий агент. После смены модели снова проверьте ответы по тем же требованиям.
Команда, навык и агент: что выбирать для поручения
Для /poruchenie достаточно файла команды: он хранит шаблон запроса для вызова через /.
Инструкции навыка лежат в SKILL.md и загружаются по требованию инструментом skill. Ради короткого поручения такой файл не нужен: команда и навык - разные механизмы.
Если нужен именно навык, вот как установить и проверить его в OpenCode.
Агент - исполнитель со своими инструкциями, моделью и доступом к инструментам. Для нашего шаблона отдельный агент не нужен.
Если хотите поручить проверку отдельному агенту, вот как настроить проверяющего в OpenCode.
Частые вопросы
Какое поручение вы даёте агенту по кругу? Напишите в комментариях в канале, что повторяется и как вы проверяете результат.
Источники
- OpenCode: пользовательские команды - пути файлов, описание, аргументы, ссылки на файлы и настройки команды.
- OpenCode: команды терминала - запуск, прямой запрос, список моделей и версия.
- OpenCode: навыки - SKILL.md и загрузка через инструмент skill.
- OpenCode: агенты - настройки исполнителя, модели и инструментов.
Новые материалы - дайджестом, без спама
Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

