Средний· 9 мин чтения

n8n + OpenAI: собираем ИИ-агента шаг за шагом

Как собрать ИИ-агента в n8n: нода AI Agent, саб-ноды модели и памяти, инструменты, которые модель действительно выбирает верно, и случаи, когда обычный процесс лучше агента.

n8n + OpenAI: собираем ИИ-агента шаг за шагом

Обычный процесс в n8n идёт по пути, который вы нарисовали. Агент выбирает путь сам: получает запрос, смотрит на выданные ему инструменты, вызывает один, читает результат и решает, что делать дальше. В этом вся суть — и в этом же причина, по которой агенты дороже и ведут себя менее предсказуемо, чем процесс, который вы уже умеете собирать.

Гайд предполагает, что базовый процесс вы уже собирали. Если нет — начните с первого процесса в n8n: об агентах думать намного проще, когда триггеры и ноды уже знакомы.

Берите агента только когда он действительно нужен

Это решение большинство туториалов пропускает, а ошибка в нём дорого обходится. Если шаги известны заранее, фиксированная цепочка нод дешевле, быстрее и намного проще в отладке. Агент оправдывает себя, только когда следующий шаг по-настоящему зависит от того, что вернул предыдущий.

СитуацияЧто собирать
Шаги каждый раз одни и те жеОбычный процесс, без агента
Одна развилка с понятными веткамиПроцесс с нодой IF
Нужное действие зависит от непредсказуемого вводаАгент
Задача требует нескольких инструментов в неизвестном порядкеАгент

Четыре составные части

Агент в n8n — это одна основная нода с саб-нодами, прицепленными снизу. Саб-ноды крепятся к ноде AI Agent, а не встают в основной поток слева направо, и в первый раз это удивляет.

ЧастьНодаЧто делает
АгентAI AgentКрутит цикл: подумать, сделать, посмотреть, повторить
МозгСаб-нода Chat ModelОтвечает за рассуждение — OpenAI, Anthropic, Google, локальные модели
Короткая памятьSimple MemoryДержит недавнюю переписку, чтобы ответы оставались связными
РукиСаб-ноды инструментовВсё, что агент может вызвать: HTTP-запросы, базы данных, другие ноды

Simple Memory раньше называлась Window Buffer Memory, поэтому в старых туториалах и на скриншотах то же самое встречается под этим именем.

Собираем по шагам

  1. Добавьте триггер. Для разговорного агента возьмите When chat message received: он даёт окно чата для проверки и сам передаёт идентификатор сессии.
  2. После триггера добавьте ноду AI Agent. Под ней появятся пустые слоты для саб-нод.
  3. Прицепите саб-ноду Chat Model и подключите доступ к OpenAI. Начните со средней по уровню модели: агент вызывает её многократно, поэтому разница в цене умножается, а не остаётся фиксированной.
  4. Напишите системный промпт на ноде агента. Именно от него зависит, будет ли агент работать, — об этом ниже.
  5. Прицепите Simple Memory, если агент должен помнить предыдущие сообщения того же разговора. Параметром Context Window Length ограничьте, сколько истории он тащит с собой.
  6. Прицепите один инструмент и проверьте его, прежде чем добавлять остальные. Агента с пятью непроверенными инструментами диагностировать почти невозможно.
  7. Проверьте через окно чата, прочитайте промежуточные шаги и нажмите Publish — правило то же, что и для любого процесса: сам он не запустится, пока вы этого не сделаете.

Системный промпт — это должностная инструкция

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

Три вещи, которые в него регулярно забывают положить: явная граница («если вопрос не про X — так и скажи, а не угадывай»), правило на случай нехватки данных («спроси номер заказа, а не выдумывай его») и ожидаемый формат ответа. Размытые промпты дают агентов, которые уверенно вызывают не тот инструмент.

Инструменты: всё решает качество описания

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

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

Что такое Simple Memory на самом деле

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

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

Почему агенты не работают

  • Брать агента там, где хватило бы фиксированного процесса: медленнее, дороже, сложнее в отладке и без выгоды.
  • Размытый системный промпт, из-за которого агент выбирает инструменты наугад.
  • Описания инструментов, написанные для людей, а не для модели.
  • Слишком много инструментов сразу — невозможно понять, какой выбор оказался неверным.
  • Считать, что память вечна: это скользящее окно, и самые старые сообщения из него выпадают.
  • Не смотреть на промежуточные шаги и отлаживать финальный ответ вместо решения, которое его породило.
  • Забывать, что каждая итерация цикла — это ещё один платный вызов модели.

Стоимость и контроль

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

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

Куда двигаться дальше

Если что-то из терминологии всё ещё мешает, глоссарий n8n разбирает основные понятия, а база знаний по n8n объясняет, как части складываются вместе. Цены и честные ограничения — на странице n8n.

Итог

Собрать агента — простая часть: одна нода, три саб-ноды, полчаса. Работа начинается там, где его делают надёжным, и почти вся она сосредоточена в системном промпте и описаниях инструментов.

Начните с одного инструмента и скучного, конкретного промпта. Добавляйте возможности только после того, как простая версия ведёт себя предсказуемо. И до того, как что-то строить, честно спросите себя, действительно ли шаги непредсказуемы: если нет, привычный фиксированный процесс обойдёт агента по всем значимым параметрам.

Часто Задаваемые Вопросы

Чем процесс в n8n отличается от ИИ-агента?
Процесс идёт по пути, который вы нарисовали. Агент выбирает путь на ходу, решая, какой инструмент вызвать, исходя из увиденного. Берите агента только тогда, когда шаги действительно нельзя знать заранее.
Какие ноды нужны, чтобы собрать ИИ-агента в n8n?
Нода AI Agent, саб-нода Chat Model для рассуждения, при желании Simple Memory для истории переписки и одна или несколько саб-нод инструментов. Саб-ноды крепятся снизу к ноде AI Agent, а не встают в основной поток.
Почему агент вызывает не тот инструмент?
Почти всегда из-за описаний инструментов или системного промпта. Модель выбирает инструменты, читая их описания, поэтому каждое должно точно говорить, что инструмент делает и когда применяется.
Годится ли Simple Memory для продакшена?
Для тестов и одного экземпляра — вполне, но n8n не советует полагаться на неё в режиме очереди: следующее сообщение может обработать другой воркер, у которого этой истории нет. Для настоящих многопользовательских систем используйте внешнее хранилище.