Процессы с агентами · 21 сентября 2026 г.
Как дать ИИ-агенту безопасный доступ к отправке писем
Выдать ИИ-агенту API-ключ — значит принять на себя риск. Разбираемся, как внедрить учётные данные с ограниченными правами, границы подтверждения и идемпотентность, чтобы агенты не устроили катастрофу с рассылкой.
Главная сложность почты в руках агентов
Чтобы дать ИИ-агенту безопасный доступ к почте, относитесь к отправке писем как к внешнему побочному эффекту с высоким риском. Никогда не давайте агенту корневой API-ключ. Вместо этого используйте учётные данные, ограниченные рабочим пространством, введите границу подтверждения человеком (human-in-the-loop) для массовых или чувствительных отправок и требуйте ключи идемпотентности, чтобы повторы LLM не приводили к дублям. Такая архитектура ограничивает радиус поражения агента и при этом сохраняет возможность проверить каждое исходящее письмо.
Как инженер, отвечающий за очередь инцидентов, я видел, что бывает, когда агент зацикливается или выдумывает список рассылки. Если у агента неограниченный доступ к вашему транзакционному провайдеру, одна логическая ошибка может за считаные минуты уничтожить репутацию домена. Нужно разделять способность агента составить письмо и разрешение системы его отправить.
Профиль рисков ИИ-агентов для почты
Встраивая LLM в процессы работы с почтой, мы получаем три основных сценария сбоя:
- Бесконечный цикл: агент отправляет письмо, получает отказ или ответ и тут же отвечает, создавая рекурсивный цикл, который взвинчивает объём и упирается в лимиты запросов.
- Выдуманные получатели: агент генерирует правдоподобные, но неверные адреса, из-за чего растёт доля отказов и страдает репутация отправителя.
- Дрейф контекста: агент теряет исходный смысл разговора и начинает отправлять клиенту нерелевантный или неуместный контент.
Эти риски усугубляются тем, что большинство устаревших email API рассчитаны на детерминированную логику приложений, а не на вероятностную логику ИИ. Если вы используете обычный API-ключ, провайдер не отличит легитимное системное уведомление от вышедшего из-под контроля агента.
Учётные данные с ограниченными правами
Первая линия защиты — принцип минимальных привилегий. Не используйте глобальный ключ аккаунта. Используйте API-ключи, ограниченные рабочим пространством, которые разрешают агенту только определённые домены или шаблоны.
Например, в SendHQ можно использовать API-ключи, ограниченные рабочим пространством, чтобы агент мог отправлять письма только с конкретного подтверждённого домена. Это не даст агенту случайно подделать другие внутренние домены или получить доступ к административным настройкам.
Структура полезной нагрузки
Когда агент запрашивает отправку, полезная нагрузка должна содержать метаданные для аудита. Не позволяйте агенту динамически задавать адрес from. Зафиксируйте адрес from на бэкенде, а агенту оставьте только to, subject и body (или переменные шаблона).
{
"to": "customer@example.com",
"template_id": "welcome-email-01",
"variables": {
"first_name": "Jane",
"onboarding_step": "API Integration"
},
"idempotency_key": "req_agent_88234_step_1",
"metadata": {
"agent_id": "support-bot-v2",
"conversation_id": "conv_9912"
}
}
Решение проблемы повторной отправки
LLM склонны к тайм-аутам и повторам. Если агент вызывает email API, запрос зависает и агент повторяет его, вы рискуете отправить одно и то же письмо дважды. Это плохой пользовательский опыт и сигнал для спам-фильтров, что ваша отправка ведёт себя хаотично.
Здесь ключ идемпотентности обязателен. Это уникальное значение, которое генерирует клиент (оркестратор агента) и по которому API распознаёт последующие повторы того же запроса. Если API видит уже обработанный ключ, он возвращает исходный успешный ответ, не отправляя письмо повторно.
Границы подтверждения и участие человека (HITL)
Не каждое письмо требует проверки человеком, но рискованные — требуют. Я рекомендую многоуровневую систему подтверждения на основе оценки уверенности агента или важности получателя.
Уровень 1: автоматически (низкий риск)
- Транзакционные уведомления (например, сброс пароля).
- Напоминания о подтверждённых встречах.
- Такие письма идут в обход очереди подтверждения.
Уровень 2: с пометкой (средний риск)
- Ответы службы поддержки клиентам.
- Письма на основе данных о лидах.
- Они попадают в очередь на панели управления, где человек нажимает «Подтвердить» или «Изменить».
Уровень 3: заблокировано (высокий риск)
- Письма топ-менеджерам.
- Массовые объявления.
- Такие письма требуют ручного составления или строгого переопределения шаблоном.
Компромисс по стоимости инфраструктуры
Выбирая провайдера для агента, нужно соотносить стоимость с функциями, необходимыми для безопасности (например, детальными API-ключами и событиями доставки).
Согласно ценам Amazon SES, отправка a la carte стоит 0.10 USD за 1 000 писем. Однако новые тарифы, введённые 21 июля 2026 года, меняют расчёт: Essentials — 0.16 USD за 1 000, Pro — 0.22 USD за 1 000 плюс 105 USD в месяц за регион, Enterprise — 0.23 USD за 1 000 плюс 500 USD в месяц.
Сравните с другими провайдерами:
- Resend предлагает бесплатный тариф на 3 000 писем в месяц (не более 100 в день), тариф Pro за 20 USD в месяц на 50 000 писем и превышение по 0.90 USD за 1 000.
- SendGrid превратил бесплатный тариф в 60-дневный пробный период, Essentials — от 19.95 USD в месяц.
- Mailgun стоит от 15 USD в месяц за 10 000 писем, превышение — от 1.80 до 1.10 USD за 1 000.
- Postmark стоит от 15 USD в месяц за 10 000 писем, превышение — от 1.80 до 1.20 USD за 1 000.
С точки зрения чистой стоимости 50 000 писем обходятся примерно в 5 USD на SES a la carte против примерно 66 USD на тарифах Postmark. Но стоимость — не единственная метрика. ИИ-агентам нужны надёжные события доставки и удобное управление стоп-листом, чтобы агент не писал снова и снова на мёртвый адрес.
Журналы аудита и телеметрия
Если агент отправил проблемное письмо, нужно точно знать, почему это произошло. Логи должны связывать ID письма с промптом LLM и конкретной версией системных инструкций агента.
Обязательные поля журнала аудита
message_id: уникальный ID у провайдера.agent_version: использованная версия промпта.prompt_hash: хеш входного контекста, переданного LLM.approval_timestamp: когда человек подтвердил отправку.delivery_status: принял ли письмо принимающий сервер.
Помните: приём провайдером — не то же самое, что доставка, а доставка — не то же самое, что попадание во «Входящие». Агент может получить от API 202 Accepted, но сервер получателя всё равно может отбросить письмо из-за непройденных проверок SPF или DKIM. Прежде чем позволить агенту отправить хоть одно письмо, проверьте записи с помощью инструмента вроде Email DNS Checker от SendHQ.
Чек-лист доставляемости для ИИ-агентов
Перед запуском агента в продакшен пройдите по этому чек-листу:
- Проверка DNS: настроены ли SPF, DKIM и DMARC? (Подробнее — в нашем руководстве по DKIM, SPF и DMARC.)
- Ключи с ограниченными правами: есть ли у агента ключ, ограниченный конкретным рабочим пространством или доменом?
- Идемпотентность: есть ли уникальный ключ для каждого запроса, предотвращающий дубликаты?
- Ограничение частоты запросов: есть ли жёсткий лимит количества писем, которые агент может отправить за час?
- Синхронизация стоп-листа: проверяет ли агент стоп-лист перед попыткой отправки?
- Участие человека: есть ли механизм перехвата писем с высоким риском?
Обработка ошибок
Оркестратор агента должен корректно обрабатывать ошибки API. Не позволяйте агенту «исправлять» ошибки 401 Unauthorized или 429 Too Many Requests, меняя полезную нагрузку. Это проблемы инфраструктуры, а не содержимого.
Код ошибки | Значение | Действие агента
400 Bad Request | Некорректная полезная нагрузка | Записать ошибку в лог, уведомить разработчика, остановить агента
401 Unauthorized | Недействительный API-ключ | Немедленно разомкнуть цепь (circuit breaker), оповестить администратора
429 Too Many Requests | Достигнут лимит запросов | Экспоненциальная задержка, не повторять сразу
500 Internal Error | Проблема на стороне провайдера | Поставить в очередь на потом, не давать агенту зацикливаться на повторах
Выводы
Возможность общаться с клиентами многократно усиливает ИИ-агента, но это и серьёзный риск. Относясь к письму как к побочному эффекту, строго ограничивая права учётных данных и внедряя идемпотентность, вы получаете скорость ИИ, не рискуя репутацией домена. Сосредоточьтесь на границах, а не только на промптах.
Стройте процессы с агентами уверенно вместе с SendHQ.