Перейти к содержимому
Экосистема AI Vibe
← Назад к AI Vibe News

Редакция 21 июля 2026 г.

Разборы

Четыре тихих сбоя при выводе CrewAI-агента в AWS Bedrock AgentCore

Четыре тихих сбоя при выводе CrewAI-агента в AWS Bedrock AgentCore.

Соло-разработчик, который собирает агентный пайплайн на CrewAI и Amazon Bedrock, на ноутбуке получает ответ за секунды — а в управляемом runtime AWS неделю ловит HTTP 200 на пустое тело и контейнеры без единой строки в CloudWatch. Разбор кейса на Dev.to показывает, почему вывод агента в прод через Bedrock AgentCore — не «docker push и забыли», а отдельный класс отладки: платформа вышла в GA в июне 2026, а ловушки SDK, IAM и Dockerfile автор @sarvar_04 описывает как четыре «тихих» отказа.

Почему локальный CrewAI и AgentCore — разные миры

Агент автора — resume-tailoring на CrewAI с моделью Amazon Bedrock Nova Pro: анализ резюме под JD, поиск пробелов, переписывание bullet points. Локально связка работала без сбоев; перенос в Bedrock AgentCore — managed runtime для AI-агентов (контейнер → push → scaling, memory, invocation) — оказался многослойнее, чем happy path из документации.

Разрыв типичен для соло-workflow с агентами: код и промпты выглядят готовыми, а продакшен-оболочка — отдельный продукт со своими контрактами. Автор оценивает отладку в пять дней на четыре независимых сбоя; к моменту публикации (июль 2026) часть поведения AWS могла уже измениться.

Четыре «тихих» отказа: сборка зелёная, агент мёртв

Каждый сбой проходит сборку и деплой без явной ошибки — отсюда «silent failure».

# Что ломается Ложный сигнал
1 Placeholder bedrock-agentcore-client на PyPI вместо реального SDK pip install успешен, импорт падает в рантайме, invoke отдаёт пустой payload
2 Нет IAM-права bedrock:GetAgentRuntime invoke-agent-runtime возвращает 200 OK с пустым телом; runtime Active, логов нет
3 В Dockerfile нет USER 1000 Health check ~30 с, затем Failed; в CloudWatch — тишина
4 Имя resume-tailor-agent с дефисом Паттерн ^[a-zA-Z0-9_]+$; кнопка submit в консоли «молчит»

По оценке автора, на поиск ушло примерно 3, 5, 4 и 1 час соответственно — не на логику агента, а на инфраструктурные детали managed-платформы.

Два клиента AWS и ловушка PyPI

Официальная документация смешивает два Python-клиента; в одной таблице их не свести:

Клиент Роль Откуда ставить
bedrock-agentcore-control create/update/delete runtime CodeArtifact: amazon-agent-runtimes / agent-runtimes-pypi
bedrock-agentcore SDK внутри контейнера Тот же CodeArtifact
boto3 (bedrock-agent) Вызов агента снаружи Обычный pip

Документация предлагает pip install bedrock-agentcore-client; на PyPI — placeholder с тем же именем. Реальный пакет — в CodeArtifact; для входа нужен aws codeartifact login с --domain-owner 600427722194:

aws codeartifact login --tool pip \
  --domain amazon-agent-runtimes \
  --repository agent-runtimes-pypi \
  --domain-owner 600427722194

Установка «не того» клиента может дать AttributeError глубоко в вызове, а не ImportError на старте — типичная ловушка при первом деплое агентного стека в облако.

USER 1000, пустой 200 OK и что проверять до продакшена

«Missing user directive» в заголовке поста — не переменная окружения и не IAM-политика, а директива USER 1000 в Dockerfile. AgentCore требует UID 1000; без RUN useradd -m -u 1000 agentuser и USER 1000 runtime убивает контейнер, в UI — одно слово «Failed». Требование автор нашёл в sample Dockerfile репозиториев AgentCore на GitHub, не в docs.

Второй сбой чинится правом в IAM-роли:

{
  "Effect": "Allow",
  "Action": "bedrock:GetAgentRuntime",
  "Resource": "*"
}

Вызов после деплоя выглядит так:

aws bedrock-agentcore-control invoke-agent-runtime \
  --agent-runtime-id abc123 \
  --payload '{"job_description": "..."}'

Пустое тело при 200 OK — silent failure upstream, а не «агент просто молчит».

Практика для агентного пайплайна: не доверять зелёному статусу

Автор формулирует три принципа, применимых к любому выводу LLM-агента в managed runtime:

  1. Не доверять 200 OK от нового сервиса — смотреть тело ответа; пустое = отказ выше по стеку.
  2. Тестировать критические импорты при старте контейнера — try/except и явный log до остальной логики агента.
  3. Читать sample repos AWS, не только docs — USER 1000 встречается там, а не в справочнике.

Дополнительно автор подключил Sentry в agent pipeline: trace waterfalls ловят проблемы за секунды вместо часов с print. Материал подан как submission для DEV Summer Bug Smash (powered by Sentry).

Вывод для соло-разработчика с агентами: локальный CrewAI + Bedrock — половина пути. Вторая половина — контракты runtime, split клиентов и Dockerfile, которые документация не собирает в одну картину. Пока платформа молода, бюджет времени на прод закладывайте отдельно от написания промптов и tools.

Источники