Перейти к содержанию

Пример: агент для строительной компании (лид → показ)

Сквозной пример, как из платформы собирается конкретный агент под застройщика: конфиг, сценарий диалога, «голевая передача». Показывает применение 03-agent-as-config.md на практике.

1. Бизнес-задача

Застройщик продаёт квартиры в новостройках. Лиды приходят с сайта (форма «узнать цену», обратный звонок) и из рекламы. Цель агента — мгновенно подхватить лид, квалифицировать и назначить показ квартиры/офиса продаж, затем передать менеджеру.

Целевое действие (goal) = назначенный показ.

2. Конфиг агента (на основе blueprint «Строительная компания»)

agent:
  id: agent_stroy_sales
  tenant_id: tenant_stroycompany
  version: 1
  locale: ru-RU

persona:
  name: "Анна"
  role: "менеджер отдела продаж новостроек"
  tone: "дружелюбный, экспертный, без давления"
  system_prompt_ref: "prompts/stroy_sales_v1.md"

llm:
  tier_policy: auto
  brain_model: "qwen3.6-35b-a3b"
  small_model: "qwen3.6-8b"
  temperature: 0.4
  max_tokens: 800

knowledge:
  sources:
    - type: catalog_sync         # квартиры, цены, наличие, сроки сдачи
      connector: "1c_realty_stroycompany"
      refresh: "hourly"
    - type: documents            # буклеты, планировки, условия ипотеки
      uri: "s3://tenant_stroycompany/kb/"
  retrieval:
    top_k: 6
    freshness_ttl: "6h"          # цены/наличие меняются часто

tools:
  - name: get_available_slots      # свободные слоты показов
  - name: schedule_showing         # назначить показ
  - name: create_crm_lead          # завести сделку
  - name: handoff_to_manager       # эскалация менеджеру
  - name: send_followup            # напоминания/дожим

business_rules:
  qualification:
    required_fields: [name, phone, budget, rooms, purpose]  # purpose: жильё/инвестиция
    disqualify_if: "budget < min_price OR intent == 'spam'"
  goal:
    type: "schedule_showing"
    success_event: "showing.scheduled"
  escalation:
    to_human_if:
      - "client_requests_human"
      - "sentiment == 'angry'"
      - "questions_about_legal_docs"     # ДДУ, эскроу — к менеджеру
      - "3 failed clarifications"

channels:
  - web_widget
  - whatsapp
  - telegram
  preferred_followup: "whatsapp"

integrations:
  crm: "bitrix24_stroycompany"
  calendar: "sales_office_calendar"

guardrails:
  grounding: "answers_only_from_knowledge"
  forbidden_topics: [legal_advice, final_price_commitment, mortgage_approval_promise]
  require_confirmation: [discount, deadline_promise]
  pii_handling: "mask_in_logs"

3. Сценарий диалога (happy path)

sequenceDiagram
    participant L as Лид
    participant A as Агент Анна
    participant K as База знаний 1С
    participant S as Scheduling
    participant B as Bitrix24
    participant M as Менеджер

    L->>A: Здравствуйте, интересует 2к в ЖК Ривер
    A->>K: Наличие 2к в ЖК Ривер, цены, сроки
    K-->>A: 3 варианта, от 8.9 млн, сдача Q4 2027
    A->>L: Варианты и вопрос по бюджету и цели покупки
    L->>A: До 10 млн, для себя, важен вид на реку
    A->>K: Фильтр 2к, до 10 млн, вид на реку
    K-->>A: 1 подходящий лот
    A->>L: Предложение и приглашение на показ
    L->>A: Давайте в субботу днём
    A->>S: get_available_slots суббота день
    S-->>A: Слоты 12.00 и 14.00
    A->>L: Подтверждение слота 14.00
    A->>S: schedule_showing 14.00
    A->>B: create_crm_lead, запись показа, история диалога
    B-->>M: Горячий лид и показ сб 14.00
    A->>L: Подтверждение и напоминание накануне WhatsApp
    Note over A,M: Далее агент дожимает и напоминает, менеджер ведёт показ

4. Квалификация лида

Агент собирает и кладёт в CRM: имя, телефон, бюджет, число комнат, цель покупки (жильё/инвестиция), предпочтения (район, вид, этаж), готовность к ипотеке, желаемые сроки. Дисквалификация — если бюджет ниже минимального или это спам.

5. «Голевая передача» менеджеру

В момент showing.scheduled агент: 1. Создаёт/обновляет сделку в Bitrix24 (через Integration Service). 2. Прикладывает полную историю диалога и профиль контакта. 3. Ставит задачу менеджеру с деталями показа (лот, время, предпочтения клиента). 4. Продолжает коммуникацию в WhatsApp: напоминание накануне и в день показа, ответы на дополнительные вопросы.

Эскалация к менеджеру раньше показа — при юридических вопросах (ДДУ, эскроу), негативе или явном запросе живого человека.

6. Guardrails в действии (примеры)

  • Клиент: «Дайте финальную цену с моей скидкой 15%» → агент не обещает скидку сам (require_confirmation: discount), а предлагает уточнить у менеджера/фиксирует запрос.
  • Вопрос про одобрение ипотеки → агент даёт общую информацию из базы знаний, но не обещает одобрение (mortgage_approval_promise в forbidden).
  • Цена/наличие берутся только из свежего каталога (freshness_ttl: 6h), не «из головы».

7. Метрики этого агента

  • Конверсия лид → назначенный показ.
  • Доля дошедших до показа (no-show rate).
  • Среднее время первого ответа.
  • Доля эскалаций на менеджера.
  • Стоимость назначенного показа (₽), см. 06.

8. Перенос на другую вертикаль

Чтобы получить агента, например, для автосалона или клиники — берётся соответствующий blueprint, где меняются: persona, источники knowledge, tools, критерии qualification, целевое действие goal (тест-драйв / запись на приём) и guardrails. Ядро платформы не меняется — это и есть «агент под что угодно из коробки».