Как настроить allowlist и blocklist?

Кому агент может писать и от кого принимать почту.

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

Как устроены списки

Шесть типов: направление (send, receive, reply) и тип (allow или block):

СписокНазначение
Receive allowПринимать только с этих адресов или доменов
Receive blockОтклонять с этих адресов или доменов
Send allowОтправлять только на эти адреса или домены
Send blockЗапретить отправку на эти адреса или домены
Reply allowДля ответов — принимать только с этих адресов/доменов
Reply blockДля ответов — отклонять с этих адресов/доменов

Запись — полный email (partner@example.com) или домен (example.com).

Через SDK

Добавить запись

Python
1from agentinbox import Agentinbox
2
3client = Agentinbox()
4
5# Allow receiving from a specific domain
6client.lists.create("receive", "allow", entry="trusted-corp.com")
7
8# Block a specific sender (with optional reason)
9client.lists.create("receive", "block", entry="spam@example.com", reason="spam")
10
11# Restrict sending to only certain addresses
12client.lists.create("send", "allow", entry="verified-prospect@example.com")
13
14# Prevent sending to a domain
15client.lists.create("send", "block", entry="competitor.com")

Просмотр

Python
1# View all entries in a list
2entries = client.lists.list("receive", "allow")

Удаление

Python
1client.lists.delete("receive", "block", entry="spam@example.com")

Списки на уровне ящика

Разные ящики — разные правила.

Python
1# This inbox only accepts emails from meta.com
2client.inboxes.lists.create(
3 "support@yourdomain.com", "receive", "allow", entry="meta.com"
4)
5
6# A different inbox accepts from partner.com
7client.inboxes.lists.create(
8 "sales@yourdomain.com", "receive", "allow", entry="partner.com"
9)

Правила ящика важнее pod и организации: при совпадении на ящике org/pod не проверяются.

Reply-списки

Для входящих, которые являются ответами на исходящие, проверяются заголовок In-Reply-To:

  • Ответ на ваше исходящее — только reply-списки (receive не смотрятся).
  • Не ответ — только receive-списки.

По умолчанию пустые reply-списки = все ответы разрешены (удобно для аутрича и бронирований).

Python
1# Block replies from a specific sender
2client.inboxes.lists.create(
3 "agent@yourdomain.com", "reply", "block", entry="spam-restaurant.com"
4)

Типовые сценарии

Аутрич: send allowlist — только проверенные контакты.

Python
1for prospect in verified_prospects:
2 client.lists.create("send", "allow", entry=prospect.email)

Персональный агент: receive allowlist — отвечать только доверенным.

Python
1client.lists.create("receive", "allow", entry="you@yourcompany.com")
2client.lists.create("receive", "allow", entry="trusted-partner.com")

Антиспам: receive block.

Python
1client.lists.create("receive", "block", entry="spam-domain.com", reason="spam")

Задачи с исходящими: receive allow — только ваш домен; ответы на исходящие по умолчанию открыты.

Python
1client.inboxes.lists.create(
2 "agent@yourdomain.com", "receive", "allow", entry="yourdomain.com"
3)
4client.inboxes.lists.create(
5 "agent@yourdomain.com", "reply", "block", entry="spam-restaurant.com"
6)

Зачем это агентам

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

Подробнее: Lists.