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

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: выкатка новой версии на долю трафика, сравнение метрик (конверсия, эскалации).
  • Мгновенный откат на предыдущую версию при просадке метрик.