Как пользоваться ESP Agent

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

1. Конструктор устройства — самый простой путь

Кнопка 🧩 в шапке. Вместо того чтобы описывать железо словами, соберите его из каталога: что подключено, на какие пины, что делает. Агент получает точную схему и ничего не додумывает — а именно догадки о железе дают больше всего лишних правок.

🖊 У каждой плитки есть поле «что делает» — одна строка о роли этой детали: «реле включает нагрев», «кнопка сбрасывает счётчик», «этот DS18B20 меряет воду в баке, а второй — воздух в комнате». Не пропускайте его. Из состава агент видит, ЧТО подключено и на какие выводы, но не знает, ЗАЧЕМ: два одинаковых датчика без пояснения — просто два датчика, и какой из них где, он выберет наугад. Строка уходит в задание прямо за элементом.

Пин можно оставить «авто»: агент подберёт безопасный и скажет в ответе, куда паять. Если плата уже спаяна — задайте пины сами, иначе агент выберет свои.

Конструктор заодно ловит то, что новичок замечает уже с паяльником в руках: два элемента на одном пине, дисплей, который не влезет в память чипа, вывод без ШИМ там, где он нужен, серво или мотор от 3.3 В. Про «авто»-пины и конфликты он предупреждает прямо в окне.

Набор = устройство. Состав можно сохранить под именем (💾 в шапке окна) и потом собирать из него новые устройства. При отправке проект называется так же, как набор — если вы не дали проекту имя сами; своё имя приложение не перебивает, а дубль разведёт («433 2»).

Сменил плату — выводы сбрасываются на «авто», и об этом пишет строка прямо в окне. Так и задумано: один и тот же номер у разных чипов означает РАЗНЫЕ ноги («2» у ESP32 — это GPIO2, у ATtiny13 — седьмая нога), поэтому старый выбор здесь не годится. Выберите выводы заново под новое железо. Если плата другая, а карта выводов у неё та же (Uno и Nano), ничего не сбрасывается.

2. Редактор экрана — раскладка мышкой

Кнопка 🎨. Расставьте надписи, числа и шкалы так, как они должны выглядеть на дисплее, и агент повторит это в коде. Объяснять словами «температура сверху слева, крупно» не нужно — он получит и координаты, и размеры, и цвета.

Кнопки выравнивания важнее координат. Нажатие «по центру» передаёт агенту намерение, и он посчитает позицию формулой ширина/2, а не зашьёт число из макета. Иначе на другом разрешении всё уедет.

Поддерживаются и символьные LCD (1602, 2004 и подобные): там сетка не в пикселях, а в знакоместах, координаты уходят агенту как «строка 2, позиция 5», а шрифты и цвета прячутся — на таком дисплее их просто нет.

🖱 Правый клик по элементу → «Описание» — вот где макет превращается в задание. Агент видит картинку: крупное число слева сверху. Что это ТЕМПЕРАТУРА, он не знает. В поле «что это показывает» пишите смысл: «температура с BME280», «время из RTC», «сколько осталось до полива». Если состав уже собран в конструкторе, над полем появится выпадашка «— выбрать из состава устройства —»: берёте источник оттуда одним щелчком, без опечаток и разночтений в названиях. В задание это уйдёт пометкой «смысл: …» прямо за элементом — так надпись на экране связывается с деталью из состава.

В том же меню — «Переход на экран…»: если экранов несколько, укажите, какой из них откроется при выборе этого пункта, и агент соберёт готовую навигацию, а не придумает свою. А у самого экрана есть заметка «когда показывается / чем переключается» — кнопкой, таймером, событием.

3. Соберём проект целиком — на примере термостата

Три инструмента выше — это три отдельных куска одного задания. Вот как они складываются вместе. Пример: термостат, который держит температуру в теплице.

Шаг 1. Состав. Кнопка 🧩, плата ESP32, четыре элемента из каталога: DS18B20, реле, дисплей ST7789, энкодер с кнопкой. Выводы оставляем «авто» — если плата ещё не спаяна, пусть агент выберет безопасные и скажет, куда паять.

Шаг 2. Что делает каждая деталь. В поле «что делает» у каждой плитки: DS18B20 — «меряет температуру в теплице»; реле — «включает нагреватель»; энкодер — «крутим — меняем уставку, нажали — сохранили». Это тот шаг, который чаще всего пропускают, а именно он превращает список железа в устройство.

Шаг 3. Экран. Кнопка 🎨: крупное число посередине, число поменьше под ним, надпись «НАГРЕВ» в углу. Правым кликом ставим смысл каждому: крупное — «текущая температура с DS18B20» (её можно выбрать из состава выпадашкой), маленькое — «заданная уставка», надпись — «горит, когда реле включено».

Шаг 4. Общая логика. Поле внизу конструктора — то, чего не видно ни из состава, ни из макета: «держать уставку с гистерезисом 0.5 °C, чтобы реле не щёлкало; уставка хранится в памяти и не теряется при выключении; при обрыве датчика — выключить нагрев и написать на экране ошибку».

Шаг 5. Проверка и отправка. Кнопка «👁 Что уйдёт» показывает ровно тот текст, который получит агент, — прочитайте его перед отправкой. Дальше «📎 Отправить агенту»: он напишет код, скомпилирует, починит свои ошибки и предложит прошить.

⚠ Разница между «сделай термостат» и этими пятью шагами — не в объёме текста, а в количестве догадок. Всё, что не сказано, агент домыслит сам: какой датчик где, что означает цифра на экране, нужен ли гистерезис. Догадки о железе дают больше всего лишних правок — и именно на них уходят деньги и время.

4. Веб-страница устройства

Кнопка «+ WEB» в конструкторе добавляет страницу, которая откроется в браузере по адресу платы. Рисовать её не надо — опишите словами, что на ней должно быть («показания температуры, кнопка полива, настройка сети»), раскладку выберет агент.

Когда плата войдёт в сеть, в шапке приложения загорится 🌐 — там видно живую страницу. Нажмите «✎ Правка» и меняйте прямо на ней: текст, цвет текста и фона, размер, порядок (тащите мышью или стрелками ↑↓), лишнее убирайте. Правый клик по элементу открывает меню с пунктом «Описание» — сказать словами, что с ним сделать. Кнопка «📤 Агенту» отправит список правок и снимок; код правит агент.

Если поле «Wi-Fi для отладки» в настройках пустое, агент спросит кнопками: указать сеть (быстро для отладки) или сделать точку доступа с формой выбора сети — так и должно работать готовое устройство, домашний пароль в прошивку не попадёт.

5. Как давать задание

Конструктор не обязателен: то же самое можно просто описать текстом. Способы смешиваются — состав из конструктора, а особенности словами в том же сообщении.

Главное правило: агент делает ровно то, что попросили. Он не догадывается, что вы имели в виду, — он выбирает самый вероятный вариант. Чем подробнее ТЗ, тем меньше правок потом.

Размыто «сделай мигалку» Агент сам выберет пин, период и стиль кода. Может добавить Serial, может разбить на файлы. Дальше начнутся правки.
Понятно «мигалка на GPIO2, период 500 мс, без Serial, одним файлом» Выбирать нечего — результат предсказуем с первого раза.

Что полезно указать: пин, интервалы и скорости, нужен ли Serial и на какой скорости, сколько файлов, какую библиотеку использовать (если есть любимая), как себя вести при ошибке (например, «если датчик не отвечает — мигай светодиодом»).

Если агент задаст вопрос текстом в чате — просто ответь следующим сообщением. Он специально спрашивает, а не гадает, когда развилка важная.

6. Как сформулировать, чтобы поняли с первого раза

Модель не читает мысли и не видит вашего стола. Она берёт самый вероятный вариант из того, что написано. Поэтому работает простое правило: описывайте результат и обстановку, а не способ написания кода.

Скажите, что должно получиться, а не как это писать. «Сделай усреднение по 10 замерам» — это уже указание, как кодить. «Показания не должны прыгать» — это результат, и агент сам выберет фильтр, который подойдёт к вашему датчику.

Дай обстановку — железо и питание. Какой именно модуль, как подключён, от чего питается. «Дисплей не работает» и «дисплей ST7789 на SPI, подсветка на 3.3 В напрямую, экран белый» — это два разных запроса, и второй решается сразу.

Опишите симптом, а не диагноз. Если сказать «поправь инициализацию дисплея», агент будет чинить инициализацию, даже если дело в питании. Скажите, что вы видите: «мусор в правой трети экрана», «первые 2 секунды всё нормально, потом гаснет».

Назовите границы. Что уже работает и трогать не надо, чего делать нельзя, сколько памяти в запасе. Без этого агент может «заодно» переписать рабочий кусок.

Одна задача за раз. Пять требований в одном сообщении — это пять шансов, что одно потеряется. Сделайте каркас, проверьте на плате, потом добавляйте.

Так придётся переделывать «сделай нормально термометр с экраном» Не сказано ни про датчик, ни про дисплей, ни что такое «нормально». Агент выберет всё сам — и почти наверняка не то, что лежит у вас на столе.
Так поймут сразу «DS18B20 на GPIO4, OLED SSD1306 128×64 по I2C (SDA 21, SCL 22). Раз в 2 секунды показывай температуру крупно по центру, одним знаком после запятой. Если датчик не отвечает — покажи прочерк, а не ноль» Железо названо, поведение задано, крайний случай оговорён. Переделывать нечего.

Если агент всё-таки понял не так — не переписывай запрос с нуля в новом чате. Поправьте в том же диалоге («период не 500, а 200 мс»): он помнит контекст, и это быстрее и дешевле, чем объяснять всё заново.

7. Почему один и тот же запрос даёт разный код

Это не баг и не «агент сегодня не в духе». Так устроены ИИ-модели: они подбирают слова вероятностно, поэтому двух одинаковых ответов не бывает в принципе. Сверху накладывается ещё несколько вещей:

Ручки «сделай всегда одинаково» (temperature) у современных моделей нет.

Отсюда практический вывод: правьте по ходу в том же диалоге («поменяй период на 200 мс», «убери Serial») вместо «перепиши заново». В том же диалоге агент видит готовый скетч и меняет пару строк — это быстрее и заметно дешевле, чем писать всё с нуля.

8. Код не всегда выходит с первого раза — это нормально

Первая версия почти никогда не бывает окончательной, и это не признак того, что что-то пошло не так. Агент не видит вашу плату и провода: часть вещей вылезает только на живом железе — не та партия дисплея, просадка питания, дребезг кнопки, библиотека под другую версию ядра. Доводка ходами — это штатный способ работы, а не борьба с инструментом.

Молчание — худший вариант: если не сказать, что не так, агент будет считать, что всё заработало. Скажешь — доведёт.

9. Четыре кнопки, которые важно не путать

🧹 Очистить экран

Чат стал чистым, но агент всё помнит, и файлы на месте. Это просто уборка на экране.

🗒 Новый

Агент забывает разговор, старый скетч уезжает в папку «_архив». Начинает с нуля — и снова по-своему. Берите, когда задача сменилась.

📁+ Новый проект

Отдельная плата, диалог и папка. Удобно, когда параллельно ведёшь несколько устройств.

⚡ Прошить

Заливает готовый скетч без ИИ — а значит, не тратит деньги. Когда код уже написан и плату надо просто перепрошить, просите не агента, а жмите эту кнопку.

10. Если ход оборвался

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

Файлы и скетчи при этом целы. Достаточно написать «продолжай, код в проекте» — агент прочитает скетч и доделает. Терять ничего не нужно, переписывать заново тоже.

11. Старт, Про и Премиум: в чём разница на практике

У любой модели есть потолок ответа — сколько она может написать за один ход. Это не то же самое, что «сколько она читает»: читать она может очень много.

У модели тарифа Старт потолок ответа в разы ниже, и длинный код она молча обрезает — ход рвётся на полуслове. У Про запас большой, поэтому крупные скетчи он дописывает до конца.

Премиум — топовая модель: самое сильное мышление для самых тяжёлых проектов, расход выше, чем на Про.

Это честная разница тарифов, а не настройка: лимитом её не вылечить. Простые задачи — Старт, сложные проекты — Про, самые тяжёлые — Премиум.

12. Плата

13. На что уходят деньги

Вы платите за работу модели, и её ответ стоит дороже вашего вопроса — в разы. Отсюда всё остальное:

Остаток виден прямо в приложении, в статус-баре.

14. Два ядра ESP32

У ESP32 есть две версии ядра (низкоуровневая основа, на которой собирается код): новое 3.x (по умолчанию) и старое 2.0.17. Оба стоят рядом и не мешают друг другу; для классических плат ESP32 в шапке есть кнопка 3.x / 2.x.

15. Учится под ваш проект

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

Память — это подсказка, а не приказ. Ваша команда всегда важнее: если что-то из запомненного больше не подходит — просто скажите, агент послушает вас и поправит запись.

Знания лежат внутри проекта, поэтому переезжают вместе с вашими бэкапами.

⬇ Скачать для Windows Получить ключ