Пример: агент для строительной компании (лид → показ)¶
Сквозной пример, как из платформы собирается конкретный агент под застройщика: конфиг, сценарий диалога, «голевая передача». Показывает применение 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. Ядро платформы не меняется — это и есть «агент под что угодно из коробки».