Урок 4 из 8 · 25 мин · обновлено

Первая задача агенту: как поставить и проверить результат

Как поставить первую задачу ИИ-агенту в OpenCode: что написать, как сослаться на файл через @, запустить команду через !, прочитать отчёт агента и проверить изменения. Пример — трекер привычек с нуля.

Из чего состоит хорошая задача

Агент сделает ровно то, что понял из вашего сообщения. Чем меньше ему приходится гадать, тем ближе результат к задуманному. Хорошая задача отвечает на четыре вопроса:

  1. Что сделать — трекер привычек.
  2. Где — в этой папке, в одном файле index.html.
  3. Что считается результатом — три привычки, галочка на сегодня, отметки не пропадают после обновления страницы.
  4. Чего не трогать — для первой задачи этого пункта нет, но позже он станет самым важным.

Запустите OpenCode в папке habits и отправьте задачу:

Текст
Сделай в этой папке трекер привычек: один файл index.html,
стили и скрипт внутри него.

- Три привычки по умолчанию: вода, зарядка, чтение.
- У каждой галочка «сделано сегодня».
- Отметки сохраняй в браузере, чтобы они не пропадали
  после обновления страницы.
- Простой светлый дизайн, крупный текст, удобно на телефоне.

Что делает агент

Агент начнёт работать, и в разговоре будут видны его шаги: посмотрел содержимое папки, создал файл index.html, иногда проверил код. В конце он напишет короткий отчёт:

Текст
Создан index.html: трекер с тремя привычками.
Отметки сохраняются в localStorage браузера.
Откройте файл в браузере, чтобы проверить.

Читайте отчёт внимательно: в нём перечислено, какие файлы изменены. Если агент тронул файл, о котором вы не просили, это повод спросить, зачем.

Когда агент правит уже существующий файл, OpenCode показывает изменения прямо в разговоре: удалённые строки и добавленные. Даже если вы не читаете код свободно, видно, большая это правка или маленькая и в каком месте.

Проверить результат

Откройте index.html в браузере: дважды щёлкните по файлу в папке. И пройдите сценарий:

  1. Видны ли три привычки?
  2. Ставится ли галочка?
  3. Остаётся ли галочка после обновления страницы (F5)?

Проверка занимает минуту. Если что-то не так, опишите агенту, что делали, что ожидали и что получили:

Текст
Ставлю галочку у «Вода» и обновляю страницу — ожидаю,
что галочка останется, но она пропадает. Исправь только это.

Два полезных значка: @ и !

@ — сослаться на файл. Начните писать @ и имя файла, OpenCode предложит варианты из папки. Так вы прямо показываете агенту, о каком файле речь:

Текст
В @index.html сделай заголовок крупнее и добавь под ним
сегодняшнюю дату.

В маленьком проекте агент найдёт файл и сам, но в большом ссылка через @ экономит время и снижает риск, что он поправит не тот файл.

! — выполнить команду. Если сообщение начинается с !, OpenCode запустит команду терминала и покажет её вывод:

Текст
!ls

На Windows вместо ls подойдёт dir. Вывод команды остаётся в разговоре, и агент тоже его видит. Так удобно показать ему результат проверки или содержимое папки.

Попробуйте сами. Дайте агенту задачу из урока и проверьте трекер по сценарию. Затем вторая задача с @: попросите добавить под списком строку «Сделано сегодня: 2 из 3», которая меняется при отметке галочек. Проверьте, что число правильно меняется и не сбрасывается после обновления страницы.

Пример задачи и проверки
Текст
В @index.html добавь под списком привычек строку
«Сделано сегодня: N из M». Она должна обновляться сразу
при отметке галочки. Остальное не меняй.

Проверка:

  1. Ни одной галочки — «0 из 3».
  2. Отметить «Воду» — «1 из 3».
  3. Обновить страницу — по-прежнему «1 из 3».
  4. Снять галочку — «0 из 3».

Если после обновления число показывает 0, хотя галочка стоит, значит, счётчик пересчитывается только при нажатии. Опишите это агенту ровно так — он поймёт, что нужно пересчитывать и при загрузке страницы.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Какая задача агенту лучше?

  2. Зачем в сообщении писать @index.html?

  3. Агент написал «Готово, всё работает». Что дальше?

  4. Как посмотреть список файлов папки, не выходя из OpenCode?