ЧЕМ AI-АГЕНТ ОТЛИЧАЕТСЯ ОТ ОБЫЧНОГО БОТА
Скрипты рассылок были всегда. Разница 2026 года — в автономности. Классическая автоматизация работает по жёсткому сценарию: если открыл письмо → отправь второе. Агент же держит цель («назначить демо»), сам решает, какой следующий шаг делать, и адаптирует текст под конкретного человека. Он рассуждает, а не выполняет ветвление.
Технически агент — это LLM в цикле, у которой есть инструменты (tools): поиск, обогащение, отправка почты, запись в CRM. Модель на каждом шаге смотрит на состояние сделки и выбирает действие. Именно поэтому такие системы называют agentic: они замыкают петлю «наблюдение → решение → действие» без человека внутри.
Три уровня зрелости
- Assist — агент готовит черновик письма, человек жмёт «отправить». Минимум риска, быстрый старт.
- Copilot — агент ведёт всю переписку, но эскалирует спорные ответы менеджеру.
- Autopilot — полностью автономный цикл до момента «горячий лид», дальше — человек. Требует зрелых гардрейлов.
АНАТОМИЯ SDR-АГЕНТА: 5 БЛОКОВ
Любой продающий агент раскладывается на пять узлов. Понимание этой схемы важнее выбора конкретного вендора — инструменты меняются, архитектура остаётся.
- Sourcing — где брать лидов. ICP-фильтр по индустрии, размеру, стеку, триггерам (наняли, подняли раунд, сменили CTO).
- Enrichment — обогащение: email, должность, соцсети, недавние новости компании. Без этого персонализация мертва.
- Reasoning — мозг на LLM: решает, стоит ли писать, какой угол зайти, что предложить.
- Delivery — отправка через прогретые почтовые домены, LinkedIn или мультиканал. Тут же — контроль лимитов и deliverability.
- Memory & CRM — состояние по каждому контакту: что писали, когда, ответ, следующий шаг. Без памяти агент шлёт дубли и палится.
Многие подобные open-source сборки мы регулярно разбираем в каталоге REDDYX — там удобно отслеживать свежие агентные фреймворки под конкретную задачу.
СРАВНЕНИЕ ПОДХОДОВ: SAAS ПРОТИВ СВОЕГО АГЕНТА
Главная развилка 2026: покупать готовую SDR-платформу или собирать своего агента на фреймворке. Ниже — честное сравнение по критериям, которые реально бьют по кошельку и результату.
| Критерий | Готовый SaaS (Clay/Artisan-класс) | Свой агент (LangGraph/CrewAI + API) |
|---|---|---|
| Время до первого письма | Часы | 1-2 дня |
| Стоимость на масштабе | Растёт с числом лидов (дорого) | Почти фиксированная (токены + API) |
| Гибкость логики | В рамках вендора | Полная, любой сценарий |
| Контроль данных | Данные у вендора | Всё у себя |
| Порог входа | Низкий, без кода | Нужен разработчик |
| Кому подходит | Быстрый тест гипотезы | Свой продукт, высокий объём |
По наблюдениям сообщества, гибрид работает лучше всего: обогащение и поиск отдают SaaS-провайдерам через API, а reasoning и оркестрацию держат у себя. Так вы не платите за каждый сгенерированный оффер маржу вендора.
СТЕК ИНСТРУМЕНТОВ, КОТОРЫЙ РАБОТАЕТ В 2026
Для автономного цикла достаточно скромного набора. Не гонитесь за модностью — берите то, что стабильно.
- Оркестрация: LangGraph или CrewAI для управления состоянием и петлёй агента.
- LLM: сильная модель для reasoning и генерации писем; лёгкая — для классификации ответов, чтобы экономить токены.
- Обогащение: провайдеры данных с REST API (поиск email, фирмографика, триггеры).
- Доставка: транзакционный SMTP/API с прогревом доменов и SPF/DKIM/DMARC.
- Хранилище: обычный Postgres как источник правды по состоянию контактов.
Ключевой принцип — идемпотентность. Агент падает, перезапускается, и не должен слать письмо дважды. Состояние хранится вне LLM, в БД.
РАБОЧИЙ ПРИМЕР: АВТОНОМНЫЙ OUTREACH-ЦИКЛ НА PYTHON
Ниже — скелет агента, который проходит полный путь: поиск лида → обогащение → генерация письма → отправка → планирование фоллоуапа. Код упрощён до сути, но структура — продакшн-готовая: состояние в БД, гардрейлы, разделение шагов.
import time, sqlite3, datetime as dt
from openai import OpenAI # любой совместимый клиент LLM
llm = OpenAI()
db = sqlite3.connect("sales.db")
db.execute("""CREATE TABLE IF NOT EXISTS leads(
email TEXT PRIMARY KEY, name TEXT, company TEXT,
stage TEXT DEFAULT 'new', last_touch TEXT, touches INT DEFAULT 0)""")
def find_leads(icp: dict) -> list[dict]:
# тут вызов API провайдера данных по критериям ICP
return data_provider.search(industry=icp["industry"], size=icp["size"])
def enrich(lead: dict) -> dict:
# обогащаем: email, должность, свежий триггер (раунд/найм)
lead.update(data_provider.enrich(lead["domain"]))
return lead
def write_email(lead: dict, followup: bool = False) -> str:
goal = "мягкий фоллоуап" if followup else "первое касание, зацепка на триггере"
prompt = f"""Ты SDR. Напиши короткое письмо ({goal}) для {lead['name']},
{lead['role']} в {lead['company']}. Триггер: {lead.get('trigger','')}.
Правила: до 90 слов, один вопрос в конце, без штампов, по-русски."""
r = llm.chat.completions.create(model="gpt-4.1",
messages=[{"role": "user", "content": prompt}])
return r.choices[0].message.content
def send(email: str, body: str):
mailer.send(to=email, subject="Быстрый вопрос", body=body) # прогретый домен
def save(lead: dict, stage: str):
now = dt.datetime.utcnow().isoformat()
db.execute("""INSERT INTO leads(email,name,company,stage,last_touch,touches)
VALUES(?,?,?,?,?,1)
ON CONFLICT(email) DO UPDATE SET
stage=?, last_touch=?, touches=touches+1""",
(lead["email"], lead["name"], lead["company"], stage, now, stage, now))
db.commit()
def run_cycle(icp: dict, daily_limit: int = 40):
sent = 0
for raw in find_leads(icp):
if sent >= daily_limit: # гардрейл deliverability
break
row = db.execute("SELECT stage FROM leads WHERE email=?",
(raw.get("email",""),)).fetchone()
if row: # уже в работе — не дублируем
continue
lead = enrich(raw)
if not lead.get("email"):
continue
send(lead["email"], write_email(lead))
save(lead, stage="contacted")
sent += 1
time.sleep(20) # человеческий ритм отправки
def run_followups(gap_days: int = 3):
cutoff = (dt.datetime.utcnow() - dt.timedelta(days=gap_days)).isoformat()
rows = db.execute("""SELECT email,name,company FROM leads
WHERE stage='contacted' AND touches < 3 AND last_touch < ?""",
(cutoff,)).fetchall()
for email, name, company in rows:
lead = {"email": email, "name": name, "company": company, "role": ""}
send(email, write_email(lead, followup=True))
save(lead, stage="contacted")
if __name__ == "__main__":
icp = {"industry": "fintech", "size": "50-200"}
run_cycle(icp)
run_followups()
Запускайте run_cycle и run_followups по расписанию (cron / очередь). БД гарантирует, что один контакт не получит два первых письма, а лимит держит домены живыми.
ГАРДРЕЙЛЫ: КАК НЕ УБИТЬ ДОМЕН И РЕПУТАЦИЮ
Автономность без ограничителей = бан за неделю. Обязательный минимум:
- Прогрев доменов. Новый домен не шлёт 500 писем в день. Начинайте с десятков, наращивайте постепенно.
- SPF, DKIM, DMARC. Без корректной аутентификации письма уходят в спам ещё до чтения.
- Лимиты и джиттер. Случайные паузы между отправками имитируют человека.
- Human-in-the-loop на эскалации. Ответ «пришлите договор» агент не должен обрабатывать сам.
- Стоп-слова и отписка. Любой негатив или unsubscribe мгновенно вынимает контакт из цикла.
МЕТРИКИ И ROI: НА ЧТО СМОТРЕТЬ
Не гонитесь за объёмом отправок. Автономный агент легко раздувает цифры, которые ничего не значат. Реальные метрики воронки:
- Reply rate — доля ответов. Главный сигнал качества персонализации.
- Positive reply rate — доля позитивных ответов. Именно она конвертит в деньги.
- Meetings booked — назначенные встречи. Финальная цель SDR-агента.
- Cost per meeting — токены + API + инфра, делённые на встречи. Сравните с ценой живого SDR.
По замерам сообщества, грамотно настроенный агент на холодном outreach даёт reply rate в разы выше, чем шаблонные массовые рассылки — за счёт настоящей персонализации на триггерах, а не подстановки {{first_name}}.
Частые вопросы
Заменит ли AI-агент живого сейлза?
Нет. Он снимает рутину верха воронки — поиск, первое касание, фоллоуапы. Закрытие сделки, переговоры и сложные возражения остаются за человеком. Агент отдаёт менеджеру уже прогретого лида.
Нужен ли разработчик, чтобы собрать своего агента?
Для кастомного агента на LangGraph/CrewAI — да, хотя бы уровня Python-джуна. Если кода нет совсем, начните с готового SaaS, протестируйте гипотезу, а потом мигрируйте на своё для экономии на масштабе.
Не попадут ли письма агента в спам?
Попадут, если игнорировать прогрев доменов и аутентификацию (SPF/DKIM/DMARC). При корректной настройке и разумных лимитах deliverability не хуже ручной рассылки.
Сколько стоит запустить такой цикл?
Свой агент — это в основном токены LLM плюс подписки на данные и почту. На умеренных объёмах расходы обычно кратно ниже зарплаты SDR, но точная цифра зависит от объёма лидов и выбранной модели.
Разбираем свежие агентные фреймворки, инструменты обогащения и open-source SDR-сборки каждый день. Если хотите первыми видеть, что реально работает в 2026 — подписывайтесь на Telegram-канал REDDYX AI — новые репозитории каждые 30-60 минут.