Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

Запуск production-агентов в n8n с Amazon Bedrock AgentCore: пошаговый гайд

Пошаговый гайд по запуску production-агентов в n8n через community-нод @aws/n8n-nodes-agentcore. Настройка persistent-памяти, изоляция пользователей с Actor ID,

Коротко

Что будет в материале

  1. 01

    Почему нативного AI Agent node недостаточно для production

  2. 02

    Что такое Amazon Bedrock AgentCore и community-нод @aws/n8n-nodes-agentcore

  3. 03

    Пошаговая настройка: от установки нода до первого агента

  4. 04

    Изоляция пользователей с помощью Actor ID

Почему нативного AI Agent node недостаточно для production

Стандартный путь в n8n выглядит знакомо: вы добавляете AI Agent node, подключаете модель, прописываете инструкцию и запускаете первого ассистента. Он отвечает на вопросы, вызывает пару инструментов и выглядит вполне рабочим. Проблемы начинаются, когда появляется второй пользователь. Или когда агент должен помнить, о чём вы говорили вчера. Или когда ему нужно выполнить код и вернуть результат.

Нативный AI Agent node проектировался для прототипирования. Его архитектура не предполагает изоляции сессий: все пользователи разделяют общую память и состояние. Если один клиент попросит агента запомнить «мой любимый цвет - синий», следующий пользователь может получить этот контекст в своём диалоге. Для демо это терпимо. Для production - неприемлемо.

Три критических ограничения нативного нода:

  • Общая память. Контекст не изолируется по пользователям. Масштабирование на сотни одновременных сессий приводит к перемешиванию данных.
  • Ручная настройка инструментов. Каждый вызов API, базу данных или поисковый индекс нужно подключать отдельным HTTP-узлом, без централизованного каталога и аудита.
  • Отсутствие песочницы для кода. Если агент генерирует и выполняет Python-скрипт, он делает это в окружении n8n, а не в изолированной среде. Риски инъекций и утечек данных ложатся на вас.

Amazon Bedrock AgentCore harness закрывает эти пробелы на уровне AWS-инфраструктуры. А open-source community-нод @aws/n8n-nodes-agentcore делает интеграцию бесшовной: вы конфигурируете агента в визуальном редакторе n8n, а исполнение, изоляция и безопасность обеспечиваются на стороне Bedrock.

Что такое Amazon Bedrock AgentCore и community-нод @aws/n8n-nodes-agentcore

Amazon Bedrock AgentCore - это production-рантайм для AI-агентов, достигший статуса General Availability. Он управляет памятью, инструментами, безопасностью и сетевым доступом агента как единым сервисом. Вы определяете, какую модель использовать, какие skills подключить и как изолировать пользователей, а AWS берёт на себя оркестрацию, масштабирование и мониторинг.

Нод @aws/n8n-nodes-agentcore - это мост между визуальным редактором n8n и рантаймом AgentCore. Он open-source, поддерживается сообществом при участии AWS и устраняет необходимость писать CloudFormation-шаблоны или CDK-конструкции для запуска агента. Конфигурация задаётся прямо в интерфейсе n8n: модель, system prompt, Actor ID, список skills, параметры VPC.

Архитектурно это выглядит так: n8n выступает оркестратором верхнего уровня, принимает триггеры (вебхуки, расписания, события из внешних систем), передаёт управление ноду AgentCore, а тот делегирует исполнение агенту в Bedrock. Результат возвращается обратно в воркфлоу для дальнейшей обработки. Такой подход сохраняет гибкость n8n и добавляет enterprise-уровень безопасности и изоляции от Bedrock.

Ключевые возможности: persistent-память, Actor ID, code interpreter, skills

Нод привносит в экосистему n8n четыре фичи, критически важные для production-среды:

Persistent-память. Агент сохраняет контекст между сессиями. Диалог, прерванный вчера, продолжается сегодня без потери нити. Память хранится на стороне Bedrock, не засоряя хранилище n8n и не завися от перезапусков контейнера. Настройка сводится к одному флагу в конфигурации нода.

Actor ID. Уникальный идентификатор пользователя, который изолирует память, состояние и историю диалогов. Агент поддержки с Actor ID видит только историю конкретного клиента, даже если одновременно обслуживает сотни обращений. Это решает главную проблему нативного AI Agent node - общую память на всех.

Code interpreter. Изолированная среда для выполнения кода. Агент может сгенерировать Python-скрипт, выполнить его в sandbox и вернуть результат - без доступа к хостовой системе n8n. Ограничения по времени и памяти настраиваются. Типичный сценарий: пользователь загружает CSV-файл, агент анализирует данные и отдаёт агрегированную статистику.

Skills из AWS-каталога. Готовые интеграции, подключаемые к агенту одной строкой конфигурации. Поиск по базам знаний, вызов внешних API, работа с базами данных - всё это доступно без написания отдельных HTTP-узлов в n8n. Skills проходят аудит безопасности на стороне AWS и обновляются централизованно.

Приватный VPC. Агент запускается внутри вашей виртуальной частной сети. Трафик к моделям Bedrock идёт через VPC Endpoint, не выходя в публичный интернет. Это требование для compliance-чувствительных отраслей и работы с персональными данными.

Пошаговая настройка: от установки нода до первого агента

Следуйте этой инструкции, чтобы получить работающего агента за 15-20 минут. Потребуется инстанс n8n (self-hosted или cloud), AWS-аккаунт с доступом к Bedrock и базовое понимание IAM.

Шаг 1: Установка community-нода. Если вы используете self-hosted n8n, выполните в терминале:

npm install @aws/n8n-nodes-agentcore

Затем перезапустите n8n. Нод появится в палитре узлов под названием «Amazon Bedrock AgentCore». В cloud-версии n8n community-ноды устанавливаются через раздел Settings → Community Nodes.

Шаг 2: Настройка AWS-креденшелов. Создайте IAM-пользователя или роль с минимальными правами. Ноду нужны разрешения на вызов Bedrock AgentCore API, чтение каталога skills и опционально - доступ к S3 для артефактов code interpreter.

Шаг 3: Создание воркфлоу. Добавьте триггер (например, Webhook) и соедините его с нодом AgentCore. В конфигурации нода выберите регион AWS, укажите Access Key и Secret Key созданного IAM-пользователя.

Шаг 4: Конфигурация агента. Выберите foundational model (Claude Sonnet 4, Llama 4 и другие модели, доступные в Bedrock). Напишите system prompt. Включите persistent-память и задайте параметры хранения: максимальное количество сообщений в истории, время жизни сессии. Определите, как будет передаваться Actor ID - статической строкой для теста или динамически из данных триггера.

Шаг 5: Тестовый запуск. Отправьте запрос через вебхук и проверьте логи в ноде AgentCore. Убедитесь, что агент отвечает, память сохраняется между запросами, а Actor ID изолирует контекст.

Настройка AWS-креденшелов и минимальные права IAM

Минимальная IAM-политика для работы нода выглядит так:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeAgent",
        "bedrock:ListAgents",
        "bedrock:GetAgent"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "bedrock:ListSkills",
        "bedrock:GetSkill"
      ],
      "Resource": "*"
    }
  ]
}

Если планируете использовать code interpreter с сохранением артефактов в S3, добавьте разрешения на s3:PutObject и s3:GetObject для конкретного бакета. Рекомендую создавать отдельного IAM-пользователя именно для нода AgentCore, а не использовать корневые креденшелы аккаунта. Это ограничит радиус поражения при компрометации ключей.

Конфигурация агента: модель, инструкция, память

В визуальном редакторе нода конфигурация задаётся через JSON-подобную структуру или поля формы. Минимальный рабочий конфиг:

{
  "agentName": "support-agent",
  "foundationModel": "anthropic.claude-sonnet-4-20250514-v1:0",
  "systemPrompt": "Ты агент технической поддержки. Отвечай кратко, по делу. Если не знаешь ответа, предложи создать тикет.",
  "memory": {
    "enabled": true,
    "maxMessages": 50,
    "sessionTtlSeconds": 3600
  },
  "actorId": "{{ $json.actorId }}"
}

Параметр actorId принимает выражение n8n - в этом примере он динамически подставляется из тела вебхук-запроса. Для теста можно задать статическую строку. Memory с maxMessages: 50 хранит последние 50 сообщений диалога для каждого Actor ID. sessionTtlSeconds определяет, через сколько секунд неактивности сессия считается завершённой и память очищается.

Изоляция пользователей с помощью Actor ID

Actor ID - это ключевой механизм, превращающий прототип в production-систему. Каждый пользователь получает уникальный идентификатор, и все данные агента - память, состояние, история диалогов, артефакты code interpreter - привязываются к этому идентификатору. Никакого пересечения контекстов, даже при тысячах одновременных сессий.

Технически Actor ID работает как ключ партицирования в хранилище Bedrock. Когда нод отправляет запрос с actorId: "user-123", AgentCore извлекает сессию именно этого пользователя. Если сессии нет - создаёт новую. Если есть - продолжает с того места, где остановились. При смене Actor ID агент начинает с чистого листа, не имея доступа к данным предыдущего пользователя.

Источником Actor ID может быть что угодно: Telegram user ID, client_id из CRM, session token из веб-приложения. В n8n идентификатор передаётся через выражение в конфигурации нода, что позволяет динамически подставлять его из данных триггера.

Практический пример: агент поддержки с разделением контекста по клиентам

Представьте воркфлоу техподдержки для SaaS-продукта. Клиенты пишут в чат, запросы через API приходят в n8n вебхуком. Каждый запрос содержит client_id. Воркфлоу выглядит так:

  1. Webhook принимает POST-запрос с полями client_id и message.
  2. Нод AgentCore получает actorId: "{{ $json.client_id }}" и message как ввод пользователя.
  3. Агент обрабатывает запрос, помня всю историю общения с этим client_id.
  4. Ответ возвращается клиенту.

Клиент А спрашивает: «Какой у меня тариф?». Агент помнит, что в предыдущем диалоге клиент А уже называл свой тарифный план, и отвечает контекстно. Клиент Б в это же время задаёт тот же вопрос - агент извлекает историю клиента Б и даёт другой ответ. Нативный AI Agent node в этом сценарии перемешал бы контексты, и оба клиента получили бы некорректные ответы.

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

Расширяем возможности: code interpreter и skills из AWS-каталога

Агент, который только отвечает на вопросы, полезен. Агент, который выполняет код и вызывает внешние системы, - незаменим. AgentCore предоставляет два механизма расширения: code interpreter для выполнения кода в sandbox и skills для подключения готовых интеграций.

Code interpreter включается флагом в конфигурации нода. Агент получает возможность генерировать Python-код, выполнять его в изолированной среде и возвращать результат пользователю. Skills подключаются указанием идентификатора из AWS-каталога. Оба механизма работают параллельно: агент сам решает, когда вызвать код, а когда - skill, основываясь на system prompt и контексте диалога.

Безопасное выполнение кода в sandbox с code interpreter

Code interpreter запускает код в microVM - легковесной виртуальной машине, изолированной от хостовой системы n8n и от других сессий. У microVM нет сетевого доступа по умолчанию, ограничены CPU и память, а файловая система эфемерна: после завершения сессии все файлы удаляются.

Типичный сценарий: пользователь загружает CSV-файл с данными о продажах за квартал. Агент получает файл, генерирует Python-скрипт для анализа, выполняет его в sandbox и возвращает агрегированные метрики - суммарную выручку, топ-5 продуктов, динамику по месяцам. При необходимости агент может построить график и сохранить его как артефакт в S3.

Конфигурация code interpreter в ноде:

{
  "codeInterpreter": {
    "enabled": true,
    "timeoutSeconds": 30,
    "memoryLimitMb": 512
  }
}

Ограничения по времени и памяти предотвращают runaway-процессы и контролируют расходы. Для задач, требующих больше ресурсов, параметры можно увеличить, но стоит помнить о лимитах Bedrock на длительность исполнения.

Skills из AWS-каталога решают другую задачу - интеграцию с внешними системами. Вместо того чтобы настраивать HTTP-узлы в n8n для каждого API, вы подключаете готовый skill. Например, skill для поиска по Amazon Bedrock Managed Knowledge Base позволяет агенту отвечать на вопросы по внутренней документации компании. Детальный разбор архитектуры Knowledge Base и её интеграции через AgentCore Gateway есть в отдельном руководстве.

Запуск агента в приватном VPC: безопасность без компромиссов

VPC (Virtual Private Cloud) - это изолированная сеть в AWS, которую вы контролируете полностью: IP-адресацию, подсети, таблицы маршрутизации, файрволлы. Запуск агента в приватном VPC означает, что его трафик не выходит в публичный интернет. Даже запросы к моделям Bedrock идут через VPC Endpoint - внутренний сетевой интерфейс AWS.

Для compliance-чувствительных отраслей это обязательное требование. Финансовые сервисы, здравоохранение, работа с персональными данными - везде, где регулятор требует изоляции сетевого трафика, VPC становится не опцией, а необходимостью.

Настройка в ноде AgentCore сводится к указанию трёх параметров:

{
  "vpc": {
    "subnets": ["subnet-abc123", "subnet-def456"],
    "securityGroups": ["sg-xyz789"],
    "enableVpcEndpoint": true
  }
}

Subnets определяют, в каких подсетях VPC будут запускаться вычислительные ресурсы агента. Security Groups задают правила входящего и исходящего трафика. Флаг enableVpcEndpoint указывает Bedrock использовать VPC Endpoint для вызовов моделей, а не публичный API.

Для создания VPC Endpoint для Bedrock зайдите в AWS Console → VPC → Endpoints → Create Endpoint. Выберите сервис com.amazonaws.[region].bedrock, укажите VPC и подсети. После создания endpoint станет доступен внутри вашей сети, и агент сможет обращаться к Bedrock без выхода в интернет.

Подход с VPC отлично сочетается с governance-практиками для агентной разработки. Как выстроить трёхуровневый стек политик для контроля автономных агентов, разбирается в статье про Governance для агентной разработки.

Сравнение с нативным AI Agent node: когда что выбирать

Выбор между нативным AI Agent node и community-нодом AgentCore зависит от стадии проекта и требований к безопасности. Таблица ниже суммирует ключевые различия:

КритерийAI Agent node (нативный)AgentCore node
ПамятьОбщая на все сессии, теряется при перезапускеPersistent, изолированная по Actor ID
Изоляция пользователейОтсутствуетПолная, на уровне инфраструктуры
ИнструментыРучная настройка HTTP-узловSkills из каталога AWS + code interpreter
Выполнение кодаВ окружении n8n, без sandboxИзолированная microVM
Сетевая безопасностьЗависит от развёртывания n8nПриватный VPC, VPC Endpoint
Сложность настройкиМинимальная, один узелТребует AWS-аккаунт и IAM
МасштабированиеОграничено ресурсами n8nУправляется Bedrock, автомасштабирование

Нативный AI Agent node остаётся хорошим выбором для прототипов, внутренних инструментов на одного пользователя и задач, где безопасность не критична. Если вы экспериментируете с промптами или проверяете гипотезу, накладные расходы на настройку Bedrock не оправданы.

AgentCore node - выбор для production-среды с множеством пользователей, чувствительными данными и требованиями к аудиту. Миграция с нативного нода на AgentCore потребует рефакторинга воркфлоу: инструменты нужно будет перенести в skills, память - настроить через конфигурацию нода, а идентификацию пользователей - зашить через Actor ID. Но результат - агент, готовый к промышленной эксплуатации, с изоляцией, безопасностью и мониторингом из коробки.

Архитектурные паттерны для production-агентов на Bedrock, включая управление состоянием и confidence-scored auto-merge, детально разобраны в кейсе monday.com.

Очистка ресурсов и контроль расходов

Эксперименты с агентами могут привести к неожиданным счетам, если оставить ресурсы включёнными. Bedrock тарифицирует вызовы моделей по токенам, а code interpreter - по времени исполнения. При интенсивном тестировании счёт растёт быстро.

Чек-лист для полной очистки:

  • Удалите агента в Bedrock. Консоль AWS → Bedrock → Agents → выберите агента → Delete. Агент перестанет потреблять ресурсы и принимать запросы.
  • Отключите нод в n8n. Деактивируйте воркфлоу или удалите нод AgentCore, чтобы исключить случайные вызовы.
  • Очистите S3-артефакты. Если code interpreter сохранял файлы в S3, удалите их вручную или настройте lifecycle policy для автоматической очистки.
  • Удалите IAM-роли и пользователей. Если создавали отдельного пользователя для тестов, удалите его вместе с access key.
  • Удалите VPC Endpoint. Если настраивали endpoint для Bedrock и он больше не нужен, удалите его, чтобы не платить за час работы сетевого интерфейса.

Для предотвращения сюрпризов настройте бюджетные алерты в AWS Billing. Укажите месячный лимит, комфортный для экспериментов, и получайте уведомления при приближении к нему. Это стандартная практика, которая экономит деньги и нервы.

Если вы только начинаете путь в агентных системах и хотите понять, когда стоит писать своего агента с нуля, а когда использовать готовые решения, обратите внимание на разбор архитектуры самописного AI-агента - там с метриками и кодом сравниваются разные подходы.

Подписаться на канал