AI Sales Agent: evidence-first архитектура AI-агента для CRM

Архитектурный кейс · AI-агент · CRM · Laravel · 2026

Evidence-first AI-агент для автоматизации CRM и анализа коммуникаций: система собирает сделки, сообщения, звонки и знания в воспроизводимый контекст, отделяет вывод модели от фактов и допускает результат только после детерминированной проверки.

5 слоёвразделяют evidence, inference, validation, human input и actions
3 исходаresolved, ambiguous или unresolved при entity resolution
0 догадокпри неоднозначной привязке переписки к сделке
Read-firstreasoning отделён от внешних записей

Главный принцип: LLM предлагает семантику. Детерминированный код решает, допустима ли она. Невалидный ответ отклоняется, а не «ремонтируется» до удобного результата.

Evidence-first архитектура AI Sales Agent: источники, immutable context, AI resolver, проверка и контролируемые действия
От CRM и коммуникаций к контролируемому выводу: каждый AI-результат связан с конкретной версией исходных данных.

Бизнес-задача: понимать сделку, не превращая гипотезу в факт

Менеджер работает одновременно со статусом сделки в amoCRM, перепиской через Wazzup, задачами, звонками и документами из базы знаний Yonote. Простая схема «отправить чат в GPT и записать ответ в CRM» не отвечает на критичные вопросы: к какой именно сделке относится диалог, какие данные были доступны модели, на чём основан вывод и можно ли выполнять действие.

Поэтому решение построено как production-oriented reasoning pipeline вокруг реальных бизнес-данных. Оно сохраняет происхождение evidence, фиксирует снимок состояния, требует ссылок на доказательства и проводит структурный результат через набор контрактов до того, как он сможет повлиять на процесс.

Evidence-first pipeline

  1. Ingestion и нормализация

    amoCRM, Wazzup, транскрипты звонков и Yonote преобразуются в локальные записи с идентификаторами источника, временем и provenance.

    source evidence
  2. Entity Resolution

    Структурированные идентификаторы сопоставляют мессенджер, контакт и активную сделку. Неоднозначность сохраняется как отдельный результат.

    resolved · ambiguous · unresolved
  3. Immutable Deal Context

    Watermarks источников и нормализованные записи образуют версионированный неизменяемый пакет контекста.

    snapshot · version · provenance
  4. Fact Extraction и Resolver

    Модель выделяет факты, сценарий, business goal, prerequisites и ownership, возвращая typed output со ссылками на evidence.

    AI interpretation
  5. Контракты и validation

    Детерминированный слой проверяет типы, существование ссылок, допустимость completion, blockers и ownership.

    accept or reject
  6. Clarification или action boundary

    Недостающий критичный факт запрашивается у менеджера; внешние действия остаются отдельной, явно ограниченной границей.

    human-in-the-loop

Entity Resolution до начала reasoning

Resolved

Набор структурированных идентификаторов однозначно связывает коммуникацию с CRM-контактом и сделкой. Основания решения сохраняются.

Ambiguous

Найдено несколько допустимых кандидатов. Система не выбирает первый или наиболее удобный и не запускает reasoning на ложной уверенности.

Unresolved

Подтверждённой связи нет. Это наблюдаемое состояние, а не ошибка, которую нужно скрыть предположением модели.

Provenance

Попытка сопоставления хранит использованные признаки и результат; чувствительные идентификаторы защищены при хранении.

Неизменяемый контекст и воспроизводимость

AI не читает постоянно меняющийся набор API-ответов напрямую. Нормализованное состояние сделки фиксируется с watermarks источников в Context Package. Новый сигнал создаёт новую версию, а прежний AI-result остаётся связан с тем snapshot, на котором был получен.

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

Детерминированный safety layer

  • Несуществующая evidence-ссылка → reject. Модель не может сослаться на фрагмент, которого не было во frozen input.
  • Неверный тип evidence → reject. Ссылка должна соответствовать ожидаемому типу источника и run-local alias.
  • Неподдерживаемый completion → reject. Завершение должно соответствовать контракту текущей цели.
  • Недопустимый prerequisite → reject. Деталь, нужная после принятия решения, не становится текущим blocker.
  • Некорректный ownership → reject. Ответственность выводится из принятого состояния prerequisites, а не из свободного текста.

Human-in-the-loop без подмены доказательств

Если Resolver обнаруживает неподтверждённый критичный prerequisite, eligibility проверяется кодом, после чего менеджеру задаётся узкий вопрос. Ответ становится отдельным immutable human evidence, формируется новый Context Package и reasoning запускается снова.

Human assertion имеет собственную authority: он может подтвердить сказанное менеджером, но не доказывает несвязанное техническое событие и не закрывает коммерческую цель автоматически. Путь clarification отдельно ограничен, rate-limited, защищён от дублей и аудируется.

Звонки и operational intelligence

Call intelligence

Оригинал и нормализованный transcript сохраняют hashes, uploader/time provenance и revisions. Невалидный импорт помещается в quarantine; выпуск в AI evidence выполняется явно.

Operational layer

Dashboard показывает нагрузку менеджеров, просроченные задачи, attention cases, backlog уточнений и return-to-work observations без вызова LLM при рендеринге.

Операционное наблюдение не является коммерческим выводом: просроченная задача может требовать внимания, но сама по себе не означает отказ клиента или проигранную сделку.

Модель полномочий

СлойПолномочие
CRM / messenger / transcript recordsИсходные доказательства
Immutable Context PackageВоспроизводимое представление evidence
Fact Extraction / ResolverAI-интерпретация
Contracts / validatorsСтруктурный допуск результата
Manager ClarificationЯвное утверждение человека
Planner / ExecutorОтдельная граница действий

Что реализовано сейчас

ВозможностьСтатус
amoCRM, Wazzup и Yonote synchronizationРеализовано
Entity Resolution, Immutable Deal Context, timeline и provenanceРеализовано
Fact Extraction и Scenario / Business Goal ResolverРеализовано; Resolver активно укрепляется
Typed evidence boundary и deterministic validationРеализовано; контракты контролируемо развиваются
Manager ClarificationРеализовано с guarded pilot writes
Call transcript ingestion и operational dashboardРеализовано
General Action PlannerНе активен
Автономные сообщения клиентамНе активны

Технологии

BackendLaravel 13 · PHP 8.4 · structured AI outputs
ДанныеPostgreSQL 17 · Redis · immutable evidence
ИнтерфейсVue 3 · Inertia
ИнтеграцииamoCRM · Wazzup · Yonote · LLM relay
ЭксплуатацияDocker · Caddy · queues · scheduler · internal networks

Результат

Архитектура превращает разрозненные данные сделки в проверяемый AI reasoning process. Модель помогает интерпретировать бизнес-ситуацию, но не получает право незаметно создавать CRM-факты или выполнять неограниченные действия.

Публичная архитектура на GitHub →

AI Agent · CRM Automation · Laravel · PostgreSQL · Redis · LLM · Evidence · Human-in-the-loop