Разработчик под ником jamro (в публикации на Reddit — jamropl) создал Tiny Engineer — небольшого робота, который показывает, чем сейчас занят программный ИИ-агент. Пока агент читает файлы, размышляет или пишет код, фигурка меняет позу, двигает руками и выводит выражение лица на OLED-экране. После завершения задачи она может позвонить в миниатюрный настольный звонок.

В материале
  1. Как программное событие превращается в движение
  2. Что находится внутри
  3. Зачем роботу изображать «мысли»
  4. Источники

Важно, что Tiny Engineer не запускает языковую модель внутри микроконтроллера и не наблюдает за компьютером самостоятельно. ИИ работает на ПК или во внешнем сервисе, интеграция превращает его события в HTTP-запросы, а робот принимает команды по Wi‑Fi. Поэтому точнее называть устройство физическим индикатором состояния агента, а не автономным «телом ИИ».

Как программное событие превращается в движение

В готовой интеграции для Cursor используются хуки редактора: они сообщают, когда агент читает, думает, печатает, завершает работу или сталкивается с ошибкой. Небольшой клиент отправляет соответствующую команду на REST API робота в локальной сети. Например, запрос к анимации typing запускает движение рук, а ring — сценарий со звонком.

Такая архитектура не привязывает проект к одному приложению. Cursor — только готовый пример. Подключить Claude, Codex или другой инструмент можно через собственный скрипт либо плагин, если он умеет отправлять HTTP-запросы. Сам робот при этом не получает текст проекта, историю диалога или исходный код: ему достаточно названия нужной анимации. Это упрощает интеграцию и позволяет не передавать лишние данные устройству.

Схема связи ИИ-агента на компьютере с настольным роботом через локальную сеть
ИИ-агент остаётся на компьютере, а ESP32 принимает команды и управляет периферией. Концептуальная схема: OpenAI ImageGen.

На ESP32-C3 работает прошивка на Arduino, собранная через PlatformIO. При первом включении устройство создаёт точку доступа для настройки сети 2,4 ГГц, после чего доступно по локальному адресу. Встроенная веб-панель позволяет проверить приводы, экран и анимации без подключения ИИ-агента.

Что находится внутри

Основой служит компактная плата Waveshare ESP32-C3-Zero. Она принимает команды по Wi‑Fi, исполняет сценарии и связывается с остальной электроникой. Пять микросервоприводов PowerHD HD-1370A двигают голову, шею, руки и корпус. Управлять ими помогает отдельная плата Adafruit PCA9685: она формирует сигналы для приводов, не заставляя микроконтроллер обслуживать каждый канал программно.

Лицо собрано на монохромном OLED-дисплее SSD1306 размером 0,91 дюйма с разрешением 128 × 32 пикселя. За звук отвечают усилитель MAX98357A и динамик мощностью 1 Вт. Проекту нужен источник питания 5 В не менее чем на 2 А — это важнее, чем может показаться: несколько сервоприводов при одновременном старте создают заметную нагрузку, и слабый адаптер способен вызвать перезагрузку контроллера или рывки механики.

Корпус и декоративные детали печатаются на 3D-принтере. Автор публикует модели, схему подключения, перечень компонентов и безопасные диапазоны углов для сервоприводов. Однако это не готовый набор из коробки: детали нужно приобрести отдельно, распечатать, собрать, прошить и откалибровать. Особенно внимательно придётся отнестись к укладке проводов и нейтральному положению сервоприводов, чтобы небольшие шарниры не упирались в корпус.

Зачем роботу изображать «мысли»

Главная идея Tiny Engineer — заменить незаметный статус в интерфейсе периферийным сигналом. Если агент работает несколько минут, пользователю не обязательно держать окно редактора перед глазами: поза робота показывает, продолжается ли задача, а звонок сообщает о завершении. Это похоже на аппаратный индикатор сборки или лампу уведомлений, только состояние передаётся движением и характером.

Три состояния настольного робота: чтение, размышление и завершение задачи
Движения и выражения экрана делают состояния агента заметными без постоянного взгляда на IDE. Концептуальная иллюстрация: OpenAI ImageGen.

Практическая ценность проекта зависит от качества интеграции. Если редактор не выдаёт точные события, робот сможет показать лишь грубые этапы. Кроме того, открытый REST API в локальной сети требует аккуратной настройки Wi‑Fi: устройство не стоит выставлять в интернет, а сеть должна быть доверенной. В документации Tiny Engineer он рассматривается именно как локальный аксессуар.

Проект распространяется по лицензии MIT, поэтому код и конструкцию можно изменять, добавлять собственные анимации и подключать другие инструменты. Tiny Engineer интересен не вычислительной мощностью, а чётким разделением ролей: сложная работа остаётся у ИИ-агента, а недорогая электроника переводит его события в понятные физические сигналы.

Источники