Перейти к содержимому
USE CASE

Чатбот поддержки на Claude в 2026: от MVP до продакшна

Сквозной гайд по чатботу клиентской поддержки на Claude — база знаний, тон бренда, эскалация на человека, eval и настройка через Claudexia.

Клиентская поддержка — это сценарий с самым высоким ROI для больших языковых моделей в 2026 году. Тикеты повторяются, знания задокументированы, а цена ошибки ограничена эскалацией на живого оператора. Claude Sonnet 4.5 — доступный через Claudexia по адресу https://api.claudexia.tech/v1 — даёт качество рассуждений фронтирной модели вместе с prompt caching и tool use из коробки, поэтому маленькая команда может выкатить production-чатбота примерно за неделю. Этот гайд проводит через требования, архитектуру, промпты, инструменты, eval, эскалацию, guardrails и стоимость.

Требования: что должен уметь настоящий бот поддержки

Прежде чем писать хоть строчку кода, зафиксируйте четыре непреложных пункта. Первое — привязка к базе знаний: бот обязан отвечать из ваших документов и истории тикетов, а не из тренировочных данных модели. Галлюцинации про цены, политику возвратов или лимиты API сожгут доверие клиентов быстрее, чем когда-либо это сделает медленный ответ. Второе — тон бренда: в три часа ночи бот — это голос вашего бренда. Ему нужен tone spec — тёплый, но точный, никогда не подобострастный, никогда не роботизированный — и этот spec живёт в системном промпте. Третье — эскалация на человека: любой бот упрётся в вопросы, на которые не может или не должен отвечать. Передача должна быть чистой, с полным контекстом разговора, переданным оператору. Четвёртое — мультиязычность: если вы продаёте на международный рынок, поддержка с первого дня хотя бы английского, русского, испанского и немецкого — это must, а Claude обрабатывает все четыре нативно без слоёв перевода.

Пятое требование часто забывают: измеримость. С первого дня нужен eval-набор. Без него каждое изменение промпта — это гадание.

Архитектура: четыре движущиеся части

Референсная архитектура намеренно скучная:

[Веб/Мобайл UI] → [Ваш бэкенд] → [Claudexia API] → [Claude Sonnet 4.5]
                       ↓
                  [Vector DB + CRM]

Фронтенд — это виджет чата на React, Vue или нативный мобильный компонент. Он стримит токены ради воспринимаемой отзывчивости. Бэкенд — тонкий оркестрационный слой: аутентифицирует пользователя, достаёт релевантные куски KB, вызывает Claudexia, исполняет tool calls (поиск в CRM, создание тикетов) и стримит ответ обратно. Claudexia по адресу https://api.claudexia.tech/v1 — это drop-in замена Anthropic API: тот же формат запросов, те же SDK, поэтому можно переиспользовать официальный @anthropic-ai/sdk или Python-пакет anthropic.

RAG (retrieval-augmented generation) сидит между документами и промптом. Индексируйте два корпуса: (1) публичный help-центр и продуктовые доки, нарезанные по ~500 токенов с overlap; (2) анонимизированные закрытые тикеты за последние 12 месяцев — это золото, потому что они отражают, как вопросы реально задают, а не как их пишут в доках. Эмбедьте оба в векторное хранилище (pgvector, Qdrant или Pinecone), доставайте top-k=5 на запрос и инжектьте их в системный промпт под блоком <knowledge>.

Шаблон системного промпта

Системный промпт — ваш самый рычаговый актив. Относитесь к нему как к production-коду: версионируйте, ревьюйте, прогоняйте через eval. Хороший шаблон состоит из пяти секций:

Ты — Ариа, AI-агент поддержки Acme Corp.

# Роль
Помогаешь платящим клиентам с вопросами по биллингу, аккаунту и продукту.
Ты НЕ продавец. Ты НЕ юрист. Ты НЕ врач.

# Тон
- Тёплый, точный, краткий. Не извиняйся больше одного раза за реплику.
- Никаких филлеров ("Отличный вопрос!"). Сразу к ответу.
- Используй имя клиента один раз — в первом ответе.
- Подстраивайся под язык клиента (en, ru, es, de, fr).

# Инструменты
Тебе доступны:
- lookup_ticket(ticket_id): получить детали тикета
- lookup_customer(email): получить план, статус, MRR
- create_ticket(subject, body, priority): завести новый тикет
- escalate_to_human(reason): передать живому оператору

# Правила эскалации
Эскалируй немедленно если:
- Клиент зол, угрожает уходом или упоминает юристов/прессу
- Вопрос про возврат >$500 или изменение договора
- Твоя уверенность \<80%
- Клиент явно просит человека

# База знаний
<knowledge>
{{retrieved_chunks}}
</knowledge>

Всегда указывай раздел доки, из которого взял ответ. Если знаний нет — 
скажи об этом и эскалируй. Никогда не выдумывай политику, цены или лимиты.

Закрепите всё выше блока <knowledge> как кешируемый префикс. С prompt caching от Claudexia этот системный промпт на 800 токенов стоит ~10% от input rate после первого хита — на 10 000 тикетов в месяц это разница между счётом в $60 и $400.

Tool use: где бот становится полезным

Бот, который только отвечает из доков, — это поисковик с манерами. Скачок к «полезному» происходит через tool use. Определите инструменты в запросе:

const response = await client.messages.create({
  model: "claude-sonnet-4.5",
  max_tokens: 1024,
  system: [
    { type: "text", text: SYSTEM_PROMPT, cache_control: { type: "ephemeral" } },
    { type: "text", text: `<knowledge>${chunks}</knowledge>` }
  ],
  tools: [
    {
      name: "lookup_ticket",
      description: "Получить детали тикета по ID",
      input_schema: {
        type: "object",
        properties: { ticket_id: { type: "string" } },
        required: ["ticket_id"]
      }
    },
    // ... остальные инструменты
  ],
  messages: conversation
}, {
  baseURL: "https://api.claudexia.tech/v1"
});

Когда Claude возвращает блок tool_use, бэкенд исполняет вызов в CRM, возвращает результат как tool_result, и Claude продолжает реплику. Эта петля — то, что позволяет боту сказать «Вижу, ваш счёт от 14 марта на $89 — карта была отклонена; хотите, повторю списание?» вместо «Пожалуйста, обратитесь в биллинг».

Стриминг для воспринимаемой отзывчивости

Time-to-first-token важнее общей задержки. Стримьте каждый ответ:

const stream = await client.messages.stream({
  model: "claude-sonnet-4.5",
  max_tokens: 1024,
  messages,
  system,
  tools
}, { baseURL: "https://api.claudexia.tech/v1" });

for await (const event of stream) {
  if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
    socket.send(event.delta.text);
  }
}

Пользователь, который видит появление текста через 400 мс, воспринимает бота как быстрого, даже если полный ответ занимает 6 секунд. Пользователь, который ждёт 6 секунд готового ответа, уходит из чата.

Eval: то, что отделяет игрушки от продукта

Соберите eval-набор из 200–500 реальных тикетов, размеченных идеальным ответом, корректными tool calls и пометкой, нужна ли была эскалация. Оценивайте каждую новую версию промпта по трём осям: фактическая точность (соответствует ли докам?), верность тону (звучит ли как бренд?) и точность эскалации (передаёт ли, когда надо, и только тогда?). Используйте сам Claude как судью для первых двух — мета-промпт с рубрикой и ответом-кандидатом — и exact-match по исходам тикетов для третьего.

Гоняйте eval на каждом изменении промпта. Гоняйте на каждом обновлении модели. Без этого вы не знаете, действительно ли ваше «улучшение» что-то улучшило. Модель стоимости eval-прогонов смотрите в разборе цен.

Паттерн эскалации: draft, score, route

Самый чистый паттерн эскалации — draft-then-route. Модель всегда генерирует кандидат-ответ. Второй, меньший вызов (или рубрика уверенности внутри того же вызова) оценивает его 0–1. Если уверенность ≥ 0.85 — отправляем ответ. Если 0.6–0.85 — отправляем с футером «Помогло? Оператор на связи». Если < 0.6 — отбрасываем ответ, передаём разговор в очередь, а в поле ответа оператора подставляем драфт — человек редактирует и отправляет. Операторы это обожают: среднее время обработки даже эскалированных тикетов падает на 40–60%.

Guardrails: PII, scope и отказы

Три guardrails должны быть в каждом боте поддержки. Защита от эха PII: вычищайте номера карт, полные паспорта и пароли из входов и выходов regex-проходом до того, как они коснутся модели. Отказы вне области: системный промпт явно перечисляет, чего бот НЕ делает (юридические советы, медицинские вопросы, сравнения с конкурентами), и вы подкрепляете это few-shot примером. Сопротивление prompt injection: никогда не кладите недоверенный пользовательский контент (тела тикетов, форварды писем) в системный промпт; всегда кладите в user-сообщение, обёрнутое в теги <untrusted>, и инструктируйте модель воспринимать инструкции внутри этих тегов как данные, а не команды.

Мультиязычность: бесплатно, нативно, без слоя перевода

Claude Sonnet 4.5 по-настоящему мультиязычен. Определите язык клиента по первому сообщению (однострочный классификатор-промпт или библиотека вроде franc), задайте его директивой в системном промпте (Respond in: ru) — и всё. Без хопа через Google Translate, без деградации качества, без отдельных промптов на язык. Тот же eval-набор, переведённый самим Claude и точечно проверенный носителями, валидирует каждый язык.

Прогноз стоимости: типичный SMB

Для B2B SaaS, обрабатывающего 10 000 тикетов в месяц, при средней длине разговора 6 реплик и ~3 000 input-токенов (система + KB + история) плюс ~400 output-токенов на реплику:

  • Без prompt caching: ~180M input + ~24M output ≈ $720/мес
  • С prompt caching (система + KB закешированы, ~85% hit rate): ~$60/мес
  • Плюс эмбеддинги + vector DB: ~$20/мес

Итого примерно $80/мес all-in за полностью мультиязычного, использующего инструменты, умеющего эскалировать бота на 10k тикетов. Это треть стоимости одного сидения у большинства легаси-вендоров автоматизации поддержки.

Настройка Claudexia

Направьте SDK на https://api.claudexia.tech/v1, используйте свой Claudexia API key — остальной код идентичен официальному Anthropic SDK. Prompt caching, tool use, стриминг и vision работают одинаково. Биллинг — в рублях или USD, тарификация поминутная, без per-seat плат: вы платите за токены, которые использовали.

Итого

MVP можно выкатить за неделю: дни 1–2 — заливка доков и тикетов в векторное хранилище; день 3 — UI чата со стримингом; день 4 — системный промпт и схемы инструментов; день 5 — очередь эскалации; день 6 — сборка eval-набора; день 7 — выкат на 10% трафика за feature flag. Дальше каждая неделя — итерация промпта, опирающаяся на eval и реальные разговоры. Бот, который выйдет на первой неделе, будет постыдным на четвёртой — в этом и смысл. Стройте петлю, а не идеальный промпт.