Разбор
ИИ-ассистент для онбординга: новый сотрудник получает ответы 24/7 вместо того чтобы дёргать коллег
Новый сотрудник задаёт 90+ вопросов в первый месяц — каждый отвлекает коллегу на 5–10 минут. Telegram-бот на Claude API с базой знаний компании закрывает 85% типовых вопросов за 5 секунд, без векторной БД и без перезапуска при обновлениях.
Первый день в новой компании. Сотрудник получил ноутбук, прошёл экскурсию по офису и теперь сидит с вопросом: «Как мне зайти в CRM?». HR-менеджер на звонке. Тимлид в митинге. Сосед по столу что-то срочно правит. Вопрос висит 40 минут — и это только первый из девяноста, которые будут в этот месяц.
Посчитать несложно: 90 вопросов × 7 минут = 10,5 часов чужого рабочего времени. В компании с текучкой 10 человек в год — это 105 часов потерянного времени. Только на вопросы.
Почему Excel с FAQ не работает
Обычный способ решить это — сделать «книгу новичка»: PDF или Notion-страницу с ответами на типичные вопросы. Логика понятна. Практика другая.
Сотрудник не знает что искать, пока не встретит проблему. Когда проблема возникла — он не помнит что документ вообще существует. И даже если открыл — документ на 80 страниц, а нужен ответ на конкретный вопрос прямо сейчас.
Бот в Telegram решает ровно эту проблему. Ты пишешь вопрос как коллеге и получаешь ответ через 5 секунд. Не ищешь в документе, не ждёшь пока HR освободится.
Как устроена база знаний: один текстовый файл
Главное что здесь нужно понять: никакой векторной базы данных, никаких эмбеддингов, никакого Pinecone. Вся база знаний — текстовый файл knowledge.txt, который загружается в контекст Claude при каждом запросе.
Контекстное окно Claude составляет 200 000 токенов. Это примерно 150 000 слов — больше чем большинство корпоративных вики. Для компании до 200 человек туда войдёт весь онбординговый контент без сжатия.
Что включать в файл:
Структура компании. Кто за что отвечает, прямые контакты, когда к кому обращаться. «С вопросами по продукту — к Антону Смирнову, тг @a_smirnov». Не оргчарт в PDF, а живой текст с контактами.
Рабочие процессы. Как оформить командировку (шаги + форма), как взять отпуск (за сколько дней предупреждать, кому согласовывать), как получить доступ к новому инструменту (кто одобряет, как долго).
Инструменты и доступы. Какая CRM, где вход, что делать если не можешь войти, какой мессенджер для команды, какой для клиентов, где хранятся шаблоны договоров.
Продукты и клиенты. Что продаём, кому, типичные вопросы клиентов и ответы на них, чего нельзя обещать.
Формат — свободный текст или Q&A. Не JSON, не таблицы. Просто хорошо написанные абзацы. Claude справляется с обоими форматами одинаково, но Q&A читается быстрее при редактировании.
Архитектура: как это работает
Бот хранит историю последних 6 сообщений пользователя — это контекст диалога. Если человек спрашивает «А как туда попасть?» после вопроса про CRM, бот понимает что «туда» — это CRM. При команде /new или когда тема явно меняется, история сбрасывается.
База знаний загружается в системный промпт. Благодаря prompt caching — функции Anthropic API — файл кешируется на стороне API после первого запроса. Каждый следующий вопрос обходится примерно в 10% от стоимости первого. При 50 вопросах в день расходы на API — 300–600 рублей в месяц.
Код: Python + python-telegram-bot
import asyncio
import os
from pathlib import Path
from collections import defaultdict
import anthropic
from telegram import Update
from telegram.ext import (
ApplicationBuilder, CommandHandler,
MessageHandler, ContextTypes, filters
)
TELEGRAM_TOKEN = "YOUR_BOT_TOKEN" # токен от @BotFather
CLAUDE_API_KEY = "YOUR_CLAUDE_KEY" # ключ Anthropic API
KNOWLEDGE_FILE = "knowledge.txt" # путь к базе знаний
MAX_HISTORY = 6 # сообщений в памяти (3 обмена)
MAX_TOKENS = 1024 # максимум токенов в ответе
client = anthropic.Anthropic(api_key=CLAUDE_API_KEY)
# История диалогов: chat_id -> list of {role, content}
history: dict[int, list[dict]] = defaultdict(list)
def load_knowledge() -> str:
"""Читает базу знаний с диска при каждом вызове."""
path = Path(KNOWLEDGE_FILE)
if not path.exists():
return "База знаний не загружена."
return path.read_text(encoding="utf-8")
def get_system_prompt() -> str:
knowledge = load_knowledge()
return f"""Ты помощник по онбордингу для новых сотрудников компании.
Отвечай только на основе базы знаний ниже.
Если ответа нет в базе — скажи об этом честно и предложи спросить HR.
Отвечай кратко и по делу, на русском языке.
--- БАЗА ЗНАНИЙ ---
{knowledge}
--- КОНЕЦ БАЗЫ ---"""
async def start(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None:
chat_id = update.effective_chat.id
history[chat_id].clear()
await update.message.reply_text(
"Привет! Я помогу найти ответы на вопросы об устройстве компании.\n"
"Спрашивай — отвечу по базе знаний.\n"
"Команда /new — начать новую тему."
)
async def new_topic(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None:
chat_id = update.effective_chat.id
history[chat_id].clear()
await update.message.reply_text("Хорошо, начинаем с чистого листа. Спрашивай!")
async def handle_message(update: Update, ctx: ContextTypes.DEFAULT_TYPE) -> None:
chat_id = update.effective_chat.id
user_text = update.message.text.strip()
if not user_text:
return
# Добавляем сообщение в историю
history[chat_id].append({"role": "user", "content": user_text})
# Обрезаем историю до MAX_HISTORY последних сообщений
if len(history[chat_id]) > MAX_HISTORY:
history[chat_id] = history[chat_id][-MAX_HISTORY:]
# Системный промпт с базой знаний — кешируется Anthropic API
system = [
{
"type": "text",
"text": get_system_prompt(),
"cache_control": {"type": "ephemeral"},
}
]
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=MAX_TOKENS,
system=system,
messages=history[chat_id],
)
answer = response.content[0].text
# Сохраняем ответ ассистента в историю
history[chat_id].append({"role": "assistant", "content": answer})
await update.message.reply_text(answer)
def main() -> None:
app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("new", new_topic))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
app.run_polling()Несколько вещей которые стоит знать:
cache_control: {"type": "ephemeral"} — это и есть prompt caching. Если убрать эту строку, каждый запрос будет считывать все токены базы знаний заново, цена вырастет в 8–10 раз.
load_knowledge() вызывается при каждом запросе — поэтому обновление файла применяется мгновенно. Не нужно перезапускать бота, переиндексировать базу или делать deploy. Сохранили файл — следующий вопрос уже видит изменения.
MAX_HISTORY = 6 — три полных обмена «вопрос-ответ». Для онбординговых вопросов этого хватает с запасом: редко кто ведёт длинный диалог об одном регламенте. При смене темы — /new.
Пример диалога: 5 реальных вопросов
Все пять ответов — из текстового файла. Claude не придумывает, не галлюцинирует контакты. Если вопроса нет в базе, он честно скажет: «В базе знаний этого нет — уточните у HR».
Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Как обновлять базу без перезапуска
Самая удобная часть этой схемы — обновление базы знаний никак не связано с кодом бота.
Новый регламент по работе с клиентами? Открываешь knowledge.txt, дописываешь раздел, сохраняешь. Всё. Следующий вопрос в боте уже учитывает изменение.
Поменялся ответственный за продукт? Меняешь строчку с контактом. Никаких переиндексаций, никаких деплоев.
Добавили новый инструмент в стек? Дописываешь Q&A про него в конец файла.
Единственное что нужно держать в голове — файл должен быть хорошо структурирован. Не потому что Claude требует структуры, а потому что редактировать 100 страниц неструктурированного текста через три месяца неудобно.
Формат который работает хорошо:
## ИНСТРУМЕНТЫ И ДОСТУПЫ
CRM-система: Битрикс24, адрес company.bitrix24.ru
Логин: корпоративный email
Первичный доступ: IT-отдел (@it_support), выдают в течение часа
Корпоративная почта: Gmail, домен @company.ru
Настройка: инструкция в папке "Онбординг" на Google Drive
Мессенджер для внутреннего общения: Telegram
Мессенджер для клиентов: Telegram или WhatsApp (по согласованию)
## КОМАНДИРОВКИ И РАСХОДЫ
Оформление командировки:
1. За 3 рабочих дня — форма в Битрикс24 (Задачи → Командировки)
2. Согласование с непосредственным руководителем
3. Билеты: корпоративная карта или свои средства с возмещением
4. По возвращении: авансовый отчёт + все чеки → Ольга Петрова (@o_petrova_buh)
Лимит командировочных расходов: до 5 000 руб./день без согласования
Сверх лимита: согласование с директором за 2 дня до поездки
## КОМУ ЗАДАВАТЬ ВОПРОСЫ
Технические вопросы (интеграции, баги): Дмитрий Волков (@d_volkov_tech)
Вопросы по продукту: Анна Коваль (@a_koval_product)
Юридические вопросы: Игорь Нестеров (@i_nesterov_legal)
Кадровые вопросы (отпуск, больничный): Марина Иванова (@m_ivanova_hr)Что закрывает бот, что нет
| Тип вопроса | Бот справится? | Пример |
|---|---|---|
| Процедурные (как, где, когда) | Да | «Как оформить больничный?» |
| Контактные (кто отвечает за X) | Да | «К кому идти с вопросом по договору?» |
| Фактические (политики, лимиты) | Да | «Сколько дней отпуска в году?» |
| Продуктовые FAQ | Частично | «Что отвечать клиенту на вопрос про цены?» |
| Суждения и приоритеты | Нет | «Правильно ли я понял задачу?» |
| Конфликтные ситуации | Нет | «Как мне поступить в этом споре с коллегой?» |
Как оценить: готов ли ваш онбординг к автоматизации
Диагностика онбординга
4 вопроса — поймём, насколько бот закроет вашу боль
Как запустить: 5 шагов
Написать @BotFather, команда /newbot, придумать имя и username. Сохранить токен. Отправить боту /start — потом сделать getUpdates чтобы узнать свой chat_id для тестирования.
https://t.me/BotFatherЗарегистрироваться на console.anthropic.com, создать API key. Убедитесь что у аккаунта есть баланс — без него запросы не пройдут. Начальный тест обойдётся в копейки.
console.anthropic.com → API KeysСоздать knowledge.txt. Скопировать туда самые частые вопросы новичков — спросить у HR или посмотреть историю сообщений в рабочих чатах. Минимальный старт: инструменты, контакты, командировки/отпуск.
nano knowledge.txtPython 3.9+. Установить две библиотеки. Вставить три токена в константы. Запустить скрипт и протестировать несколько вопросов вручную перед тем как давать ссылку новым сотрудникам.
pip install anthropic python-telegram-bot && python onboarding_bot.pyНа Linux — systemd unit или screen. На облачном сервере — Docker контейнер. На Railway/Render — деплой из репозитория. Бот должен работать 24/7, потому что вопросы возникают в любое время.
systemctl enable onboarding-bot.serviceКейс: ИТ-компания 40 человек
Компания разрабатывает B2B-ПО. 40 человек, растут на 8–10 новых сотрудников в год. HR-менеджер один на всю компанию.
До внедрения: HR тратил 3–4 часа ежедневно в первый месяц каждого нового сотрудника только на ответы на вопросы. Стандартный онбординг до самостоятельной работы — 3 месяца. Основная причина затяжки — не сложность продукта, а длинные цепочки ожидания: задал вопрос утром, получил ответ вечером, задал следующий.
База знаний собралась за один день: HR просто записывал ответы на вопросы которые задавал очередной новичок в ту же неделю. Получилось 47 страниц текста — меньше двух часов работы.
После трёх месяцев использования: 85% вопросов новые сотрудники задают боту. HR освободил около 2,5 часов в день — теперь это время уходит на реальную адаптацию: знакомство с командой, разбор конкретных рабочих ситуаций, обратную связь. Онбординг до самостоятельной работы — 6 недель вместо 3 месяцев.
Что помогло больше всего по словам новых сотрудников: ответ в любое время. Раньше вечером или в выходные с вопросом было некуда обратиться — приходилось ждать понедельника. Теперь нет.
Интересно что самый неожиданный эффект — не экономия времени HR, а снижение тревожности новичков. Они меньше боятся задавать «глупые вопросы» — потому что бот не осудит. Несколько человек из этой компании сказали что спрашивали у бота вещи которые стеснялись спросить у коллег. Это уже не про автоматизацию — это про то как устроены люди.
Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Источники
AI-агенты · Персональная карта
4 часа потратил — не работает?
Покажу где ты пошёл не туда и как сделать правильно за 2 недели
Получить разбор бесплатно →AI-агенты · 10 мест
Ты работаешь до полуночи — AI-агент будет работать вместо тебя
Покажу какой агент закроет твою главную операционную боль
Узнать свой маршрут →Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Источники
Читайте также
Часто задаваемые вопросы
- Как работает ИИ-ассистент для онбординга без векторной базы данных?
- База знаний компании — текстовый файл с регламентами, FAQ и структурой — загружается в контекст Claude при каждом запросе. Благодаря prompt caching (кешированию системного промпта) каждый следующий вопрос сотрудника обходится примерно в 10% стоимости первого запроса. Контекстное окно Claude составляет 200 000 токенов — этого хватает на базу знаний среднего бизнеса объёмом 100–150 страниц текста.
- Сколько стоит запустить Telegram-бот для HR на Claude API?
- Разработка базового бота — 4–6 часов если у вас есть Python. Расходы на Claude API: при 50 вопросах в день с кешированием — около 300–600 рублей в месяц. Для сравнения: час HR-специалиста в Москве стоит 800–1500 рублей, а в первый месяц работника HR тратит 3–4 часа в день только на ответы новичку.
- Что включить в базу знаний компании для онбординга?
- Четыре блока: организационная структура (кто за что отвечает, контакты), рабочие процессы (как оформить командировку, отпуск, больничный), инструменты (доступы, CRM, корпоративная почта, мессенджеры), продукты и клиенты (что продаём, кто покупает, типичные возражения). Всё в одном текстовом файле — без заголовков базы данных, просто Q&A-формат или структурированный текст.
- Как обновлять базу знаний без перезапуска бота?
- Бот читает файл базы знаний при каждом обращении (или проверяет время изменения mtime). Отредактировали регламент — сохранили файл — следующий вопрос уже идёт с обновлёнными данными. Никаких деплоев, никакой переиндексации.
- Какие вопросы новых сотрудников бот закрывает лучше всего?
- Процедурные вопросы с чётким ответом: где CRM, как оформить командировку, к кому идти с вопросом по продукту X, какой мессенджер использует команда, где хранятся шаблоны договоров. Хуже всего бот справляется с контекстными суждениями — 'правильно ли я понял задачу' или 'как лучше поступить в конфликтной ситуации'. Эти вопросы нужно эскалировать к живому HR.
- Насколько реально сократить онбординг с 3 месяцев до 6 недель?
- В ИТ-компании на 40 человек, где внедрили такого бота, сотрудники начинали работать самостоятельно к концу 6-й недели вместо 3-го месяца. Основная причина — они перестали ждать ответов. Раньше вопрос висел 2–4 часа пока коллега не освободится, теперь ответ за 5 секунд. Субъективная уверенность в первые две недели выросла заметно — люди меньше боятся 'сделать что-то не так'.
Канал «Лёха Маркетолог»
Практика без воды: кейсы, инсайты, разборы. 1–2 поста в неделю.
Пока без комментариев. Будьте первым.