Skip to content
imarch.dev
Назад в блог
· 3 мин чтения

Первые действия бота

ai fastapi claude code продукт

Бот на сайте вторую неделю отвечал на вопросы. Хорошо отвечал - на трёх языках, с контекстом, с кэшем. Но это был монолог в обе стороны. Спросили - ответил. Спросили ещё - ответил ещё. Когда посетитель хотел связаться, бот выдавал список контактов и отступал.

Сегодня попробовал научить его делать вещи.

AI-чатбот учится действовать

Проблема

Человек в чате говорит «хочу обсудить проект». Бот в ответ: «Вот email, вот Telegram, вот телефон». Человек кивает. Копирует адрес. Переключается в почту. Формулирует письмо заново. Или не формулирует - закрывает вкладку и забывает.

Между «хочу связаться» и «написал письмо» теряется больше людей чем хотелось бы.

Tool use

У Anthropic API есть механизм tool use - можно дать модели функции, и она сама решает когда их вызвать. Не по ключевым словам, не по regex. Модель читает диалог и понимает намерение.

Я дал боту два инструмента.

Первый - сбор заявки. Бот задаёт короткие вопросы, по одному за раз:

  • Можно написать Ильясу?
  • Как вас зовут?
  • Марат
  • Как связаться - email, телефон, Telegram?
  • @marat_dev
  • Что хотите обсудить?
  • Аудит архитектуры
  • Передал Ильясу, он свяжется с вами.

Письмо с данными уже на почте. Никаких форм.

Второй - отправка CV. Посетитель просит резюме, бот берёт email и шлёт письмо со ссылкой на страницу CV. Там можно посмотреть и скачать PDF. Данные всегда свежие - CV на сайте обновляется, бот автоматически ссылается на актуальную версию.

  • Можно CV Ильяса?
  • На какой email отправить?
  • hr@company.kz
  • Отправил.

Что внутри

Два tool definition с простыми схемами. Haiku 3 справляется - не путает инструменты, не вызывает их когда не надо. Описания написаны директивно: «вызывай только когда собрал все поля, иначе спроси».

Email уходит через Resend, STARTTLS на порту 587. При деплое обнаружилось что хостер блокирует 465 - Claude Code сам нашёл проблему и переключил порт. Письма локализованы на три языка.

Rate limit общий на оба инструмента - три письма с одного IP в сутки. Валидация форматов, фильтр инъекций. Ответы с вызовом инструментов не попадают в кэш - каждая заявка уникальна.

Зачем

Бот перестал быть FAQ-машиной. Теперь у него есть два действия кроме «ответить на вопрос». Архитектурно добавить третье - вопрос двадцати минут: определение инструмента, обработчик, строка в промпте.

Интересно не то что бот умеет отправить письмо. Интересно что он сам ведёт диалог к этому, задаёт правильные вопросы и ловит момент. Без скриптов, без деревьев решений. Просто модель которая читает контекст.

200 строк нового кода. Полтора часа работы. Один из тех вечеров когда результат непропорционально больше усилий.


Попробуйте - кнопка чата в правом нижнем углу. Скажите что хотите связаться или попросите CV. Или напишите напрямую если бот ещё не научился тому что вам нужно.


Читайте также

Поделиться:

Похожие статьи