DEV Community на русском
Подписаться
Создание автономного агента кодирования с участием человека с использованием n8n и Telegram
Автор создал личный проект автоматизации, позволяющий удаленно выполнять автономное кодирование с участием человека на своей машине разработки. Система позволяет отправлять задачи по кодированию с телефона через Telegram, а ИИ-агент (Codex) выполняет работу локально. Ключевым элементом архитектуры является Cloudflare Tunnel, который безопасно выводит локальный экземпляр n8n в публичный интернет, выступая в качестве моста для связи с Telegram без развертывания внешних сервисов.n8n выступает в роли оркестратора, получая команды из Telegram и управляя рабочим процессом, включая разбор инструкций и вызов локального исполнителя Codex. Легковесный сервис Express.js действует как исполнитель Codex, инициируя и взаимодействуя с Codex в пределах указанных локальных репозиториев (предотвращая произвольный доступ к файловой системе).Основная задача заключалась в том, чтобы позволить Codex приостанавливать задачу, запрашивать разрешение на выполнение конфиденциальных действий, а затем возобновлять работу после одобрения. Это было решено с помощью Codex App Server, который позволяет Express получать события жизненного цикла, такие как запросы на одобрение. Когда требуется одобрение, запрос проходит от Codex к Express, затем через n8n, Cloudflare Tunnel и, наконец, в Telegram для принятия решения пользователем.После одобрения через Telegram ответ проходит обратно через систему к Codex, который затем продолжает приостановленную задачу с того места, где она была остановлена. Запрос n8n остается синхронным, ожидая полного завершения задачи Codex, независимо от того, требует ли она одобрения или нет, что упрощает конвейер результатов.Для точного профилирования выполнения задач время выполнения разделяется на общее календарное время и фактическое активное время, которое Codex тратит на работу, учитывая время ожидания одобрения человеком. Эта удаленная настройка позволяет выполнять автономную работу независимо, сохраняя при этом контроль пользователя над критически важными решениями.