03. Агент-как-конфиг¶
1. Идея¶
Поведение агента задаётся вынесенным за пределы кода конфигом, а не программируется. Это позволяет: - создавать агента под любую вертикаль без изменения кода; - кастомизировать под конкретный бизнес «в пару кликов»; - версионировать, тестировать и откатывать поведение как данные.
Код платформы — это универсальный «движок», который интерпретирует конфиг.
2. Структура конфига агента¶
Конфиг — версионируемый бандл (YAML/JSON) со схемой-валидацией. Логические блоки:
agent:
id: agent_construction_sales
tenant_id: tenant_123
version: 7
locale: ru-RU
persona:
name: "Анна"
role: "менеджер по продажам новостроек"
tone: "дружелюбный, профессиональный, без давления"
system_prompt_ref: "prompts/construction_sales_v7.md"
llm:
tier_policy: auto # auto | force_brain | force_small
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"
refresh: "hourly"
- type: documents
uri: "s3://tenant_123/kb/"
retrieval:
top_k: 6
freshness_ttl: "24h"
tools: # function calling
- name: get_available_slots
- name: schedule_showing
- name: create_crm_lead
- name: handoff_to_manager
business_rules:
qualification:
required_fields: [name, phone, budget, district]
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'"
- "3 failed clarifications"
channels:
- web_widget
- whatsapp
- telegram
preferred_followup: "whatsapp"
integrations:
crm: "bitrix24_tenant_123"
calendar: "google_calendar_sales"
guardrails:
grounding: "answers_only_from_knowledge" # не выдумывать факты
forbidden_topics: [legal_advice, final_price_commitment]
require_confirmation: [discount, deadline_promise]
pii_handling: "mask_in_logs"
3. Что настраивается без кода¶
| Блок | Что задаёт бизнес |
|---|---|
persona |
Имя, роль, тон, «голос бренда», системный промпт |
llm |
Какие модели, политика ярусов, креативность |
knowledge |
Источники базы знаний и их обновление |
tools |
Какие действия доступны агенту |
business_rules |
Критерии квалификации, целевое действие, правила эскалации |
channels |
Каналы и предпочтительный канал для продолжения диалога |
integrations |
К какой CRM/календарю подключён агент |
guardrails |
Ограничители: заземление на факты, запретные темы, подтверждения |
4. Blueprints (шаблоны «в пару кликов»)¶
Blueprint — преднастроенный конфиг под вертикаль. Пользователь выбирает шаблон, подставляет свои данные — и агент готов.
flowchart LR
bp[Blueprint: Строительная компания] --> wiz[Мастер онбординга]
wiz -->|подключить сайт| kbgen[Автогенерация базы знаний]
wiz -->|подключить CRM| oauth[OAuth к CRM]
wiz -->|выбрать каналы| ch[Каналы]
kbgen --> cfg[Готовый конфиг агента]
oauth --> cfg
ch --> cfg
cfg --> sandbox[Песочница: тест агента]
sandbox --> publish[Публикация]
Примеры blueprints: «Строительная компания», «Автосалон», «Медклиника», «Образование». Каждый задаёт разумные дефолты для persona, tools, business_rules и guardrails своей ниши.
Автогенерация базы знаний: при онбординге можно скормить URL сайта клиента — краулер соберёт контент и наполнит RAG (ускоряет «из коробки»).
5. Хранение и версионирование¶
- Конфиги хранятся в Agent Config Service: метаданные и версии в БД, крупные артефакты (промпты, документы) — в объектном хранилище.
- Каждое изменение = новая версия (иммутабельные версии, семантическое версионирование).
- Hot-reload: рантайм подхватывает новую версию без перезапуска сервисов.
- Валидация по схеме перед публикацией (JSON Schema) — некорректный конфиг не уходит в прод.
6. Безопасное обновление в проде¶
- Песочница: тест агента до публикации на тестовых диалогах.
- Canary / A-B: выкатка новой версии на долю трафика, сравнение метрик (конверсия, эскалации).
- Мгновенный откат на предыдущую версию при просадке метрик.