База знаний / Промпты

Системный промпт — инструкция для ассистента

Системный промпт — это текст, который формирует личность, задачи и правила поведения вашего AI-ассистента. Он задаётся один раз и остаётся невидимым для конечного пользователя. Ассистент не знает о вашей компании ничего, кроме того, что написано в промпте — поэтому чем подробнее, тем лучше.

Из чего состоит промпт

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

Базовая структура
Ты — [роль]. Работаешь в компании [название].

ЗАДАЧА:
[Что делает ассистент — одним абзацем]

ПРАВИЛА:
- [Правило 1]
- [Правило 2]
- [Правило 3]

ДАННЫЕ:
[Любые факты, цены, адреса, расписания, которые нужны ассистенту]

Как написать хороший промпт

Главное правило: ассистент делает только то, что написано явно. Не полагайтесь на то, что он «догадается» о вашем контексте — опишите всё: роль, задачу, ограничения, сценарии.

Плохой vs Хороший промпт

Плохой пример
Ты умный ассистент. Отвечай на вопросы пользователей.
Хороший пример
Ты — Алиса, менеджер по записи клиентов
салона красоты "Лотос".
Твоя задача — записывать клиентов на
процедуры, отвечать на вопросы об
услугах и ценах, принимать контактные данные.

УСЛУГИ И ЦЕНЫ:
- Маникюр — 1500 руб, 60 мин
- Педикюр — 2000 руб, 75 мин
- Маникюр+педикюр — 3000 руб, 120 мин

ПРАВИЛА:
- Всегда уточняй имя клиента перед записью
- Предлагай ближайшие свободные слоты:
  понедельник 10:00, 14:00, среда 11:00
- После записи подтверди детали голосом

Ключевые принципы

  • ✅Указывайте имя и роль — «Ты — Мария, оператор поддержки»
  • ✅Описывайте сценарии явно: «когда клиент спрашивает о цене — назови X»
  • ✅Добавляйте конкретные данные: цены, адреса, расписания прямо в промпт
  • ✅Пишите что НЕ делать: «не обсуждай конкурентов», «не обещай скидки»
  • ❌Не пишите промпт в одну строку без структуры — разбивайте на разделы
  • ❌Не надейтесь что ассистент «догадается» — описывайте каждый случай явно

Лучшие практики

10 советов для создания эффективных AI-ассистентов на VoksiAI.

✅ Давайте имя ассистенту
Повышает вовлечённость и доверие клиентов. «Меня зовут Алиса» работает лучше чем «Я ассистент».
✅ Указывайте компанию и контекст
Ассистент не знает о вас ничего — напишите название, сферу, что вы продаёте.
✅ Явные сценарии
«Когда клиент говорит X — делай Y». Чем конкретнее, тем точнее поведение.
✅ Примеры диалогов
Для сложных случаев добавляйте примеры реальных разговоров прямо в промпт.
✅ Запреты и ограничения
Явно указывайте что нельзя: «не обсуждай конкурентов», «не называй внутренние цены».
✅ Обработка ошибок функций
Напишите что делать если функция вернула ошибку — иначе ассистент растеряется.
✅ Завершение разговора
Для звонков всегда описывайте когда и как завершать. Иначе ассистент может «зависнуть».
❌ Промпт в одну строку
Без структуры и заголовков разделов модель хуже понимает приоритеты.
❌ «Ассистент догадается»
Не рассчитывайте на подразумеваемые правила — пишите всё явно.
❌ Слишком сложные инструкции
Для простого FAQ-бота достаточно 200–400 слов. Лишние детали создают путаницу.

Функция: send_webhook

Интеграция

Отправляет данные в n8n, Make.com, Zapier или любой HTTP-endpoint. Используйте для передачи собранных данных во внешние системы.

Промпт-пример — Запись клиента

Укажите URL вебхука прямо в промпте. Ассистент сам передаст его в функцию при вызове.

Системный промпт
Ты — администратор фитнес-центра "Энергия".
Записываешь клиентов на тренировки и отправляешь заявки.

Когда клиент называет имя, телефон и желаемое время —
вызови send_webhook с event="booking" и данными клиента.

URL вебхука: https://hook.eu1.make.com/abc123xyz

После отправки подтверди: "Ваша заявка принята! Мы свяжемся с вами."

ПРАВИЛА:
- Не отправляй вебхук до получения имени и телефона
- Если функция вернула ошибку — скажи: "Произошла техническая ошибка,
  мы перезвоним вам в течение 15 минут"

Что отправляется (payload)

JSON
{
  "event": "booking",
  "data": {
    "name": "Иван",
    "phone": "+79991234567",
    "time": "завтра в 10:00",
    "service": "Силовая тренировка"
  },
  "assistant_id": "550e8400...",
  "assistant_name": "Администратор"
}

Вопросы по функции

Когда вызывать?Как только собраны все нужные данные от клиента
Если webhook не отвечает?Добавьте в промпт инструкцию: «сообщи пользователю об ошибке и предложи перезвонить»
Можно несколько webhook?Да — вызывайте функцию несколько раз с разными URL и разными event

Функция: api_request

API

Выполняет GET/POST/PUT/DELETE запросы к любому REST API — CRM, склад, каталог товаров, базы данных. Позволяет ассистенту в реальном времени получать и отправлять данные.

Как указать авторизацию в промпте

Пример настройки
API URL: https://api.mycrm.com/v1
API Key: sk-abc123xyz
API Header: Authorization: Bearer eyJhbGc...

Промпт-пример — Проверка наличия товара

Системный промпт
Ты — консультант интернет-магазина электроники.
Когда клиент спрашивает о наличии товара — проверяй через API.

API URL: https://api.myshop.ru/v1
API Header: X-API-Key: secret123

Для проверки наличия вызови api_request:
- method: GET
- url: https://api.myshop.ru/v1/products?name=[название товара]

Если товар есть — назови цену и сроки доставки.
Если нет — предложи альтернативы или предложи уведомить о поступлении.

Промпт-пример — Создание заявки в CRM

Системный промпт
После разговора создавай контакт в CRM:
Вызови api_request:
- method: POST
- url: https://api.mycrm.com/v1/leads
- headers: { "Authorization": "Bearer sk-abc123" }
- body: { "name": "[имя клиента]", "phone": "[номер]", "source": "voicyfy" }

Функция: add_google_sheet_row

Интеграция

Добавляет строку в Google Таблицу. Идеально для сбора лидов, заявок, обратной связи без внешних сервисов.

Настройка таблицы

  1. Откройте Google Таблицу, в которую нужно записывать данные
  2. Нажмите «Настроить доступ» → «Все, у кого есть ссылка» → выберите роль Редактор
  3. Скопируйте ссылку на таблицу и вставьте в промпт

Промпт-пример — Сбор лидов

Системный промпт
Ты — менеджер по продажам. Записывай всех заинтересованных клиентов в таблицу.

Таблица: https://docs.google.com/spreadsheets/d/1ABC.../edit
Лист: Лиды

После сбора имени, телефона и вопроса клиента —
вызови add_google_sheet_row:
- url: https://docs.google.com/spreadsheets/d/1ABC.../edit
- sheet_name: "Лиды"
- row_to_append: "[Имя];;[Телефон];;[Вопрос];;[Дата]"

Формат данных

Разделитель между ячейками — ;; (двойная точка с запятой). Порядок данных должен совпадать с порядком колонок в таблице.

Пример строки
"Иван Петров;;+79991234567;;Интересует тариф Про;;2024-05-10"
Создайте заголовки колонок в первой строке таблицы вручную — функция добавляет строки начиная со второй.

Функция: read_google_doc

Интеграция

Читает текст из публичного Google Документа. Полезно для создания ассистента с базой знаний без Pinecone — достаточно поддерживать один документ.

Промпт-пример — Ассистент с базой знаний

Системный промпт
Ты — консультант по продуктам компании.
Когда клиент задаёт вопрос о продуктах, ценах или условиях —
сначала прочитай документацию через read_google_doc:

url: https://docs.google.com/document/d/1XYZ.../edit

Отвечай только на основе информации из документа.
Если информации нет — честно скажи: "К сожалению, у меня нет
данных по этому вопросу. Вы можете обратиться к менеджеру."
Ограничение: Функция читает только публичные документы с доступом «Все, у кого есть ссылка → Просмотр». Приватные документы недоступны.

Функция: write_google_doc

Интеграция

Добавляет текст в конец Google Документа. Может добавить заголовок перед текстом. Использует тот же сервисный аккаунт что и Google Таблицы — отдельной настройки API не требуется.

Настройка документа

  1. Откройте Google Документ, в который нужно записывать данные
  2. Нажмите «Настроить доступ» → добавьте email сервисного аккаунта с правами Редактор
  3. Email сервисного аккаунта указан в разделе «Интеграции» в настройках VoksiAI

Промпт-пример — Итоги звонка

Системный промпт
Ты — менеджер по продажам.
После каждого разговора записывай итоги в рабочий документ.

Документ итогов: https://docs.google.com/document/d/1ABC.../edit

По завершении звонка вызови write_google_doc:
- url: https://docs.google.com/document/d/1ABC.../edit
- heading: "Звонок [дата] — [имя клиента]"
- text: "Телефон: [номер]
Интерес: [что обсуждали]
Результат: [договорились о чём]
Следующий шаг: [действие]"

Промпт-пример — Лог заявок

Системный промпт
Ты — оператор горячей линии. Фиксируй каждую заявку в документе.

Документ: https://docs.google.com/document/d/1XYZ.../edit

После получения заявки вызови write_google_doc:
- url: https://docs.google.com/document/d/1XYZ.../edit
- heading: "[Время] Заявка от [имя]"
- text: "Контакт: [телефон]
Запрос: [суть]
Приоритет: [высокий/средний/низкий]"

Как выглядит результат в документе

Google Документ
## Звонок 10.05.2025 — Иван Петров
Телефон: +79991234567
Интерес: Тариф Про, 3 пользователя
Результат: Отправить КП на почту
Следующий шаг: Перезвонить в пятницу

## Звонок 10.05.2025 — Мария Сидорова
Телефон: +79161234567
Интерес: Демо-доступ
Результат: Создан тестовый аккаунт
Следующий шаг: Созвон через неделю

Вопросы по функции

Куда добавляется текст?Всегда в конец документа — существующий текст не затрагивается
Можно ли писать в середину?Нет, только append в конец. Для большинства задач (лог, заметки) этого достаточно
Отличие от Google Sheets?Docs — для свободного текста и заметок, Sheets — для структурированных данных с колонками

Функция: send_telegram_notification

API

Отправляет сообщение в Telegram-чат, группу или канал. Удобно для мгновенных уведомлений менеджерам о новых заявках.

Как настроить бота

  1. Создайте бота через @BotFather в Telegram — он выдаст токен вида 123456789:AAH...
  2. Узнайте chat_id: напишите боту /start, затем откройте https://api.telegram.org/bot<TOKEN>/getUpdates
  3. Для групп — добавьте бота в группу, напишите любое сообщение и повторите getUpdates

Промпт-пример — Уведомления менеджеру

Системный промпт
Ты — секретарь, принимаешь заявки по телефону.

Telegram Bot Token: 7123456789:AAHdq...
Чат менеджера: 123456789

После каждого успешного разговора отправляй уведомление.
Вызови send_telegram_notification с:
- chat_id: 123456789
- message: "🔔 Новая заявка!
Клиент: [имя]
Телефон: [номер]
Запрос: [суть вопроса]"

HTML-форматирование в сообщениях

HTML
<b>Жирный текст</b>
<i>Курсив</i>
<code>Моноширинный код</code>
<a href="https://example.com">Ссылка</a>

Функция: create_crm_voicyfy_task

CRM

Создаёт задачу на обратный звонок в CRM VoksiAI. Автоматически находит или создаёт контакт по номеру телефона и планирует исходящий звонок.

Промпт-пример — Перезвонить клиенту

Системный промпт
Ты — менеджер по продажам.
Если клиент просит перезвонить — создавай задачу.

ID ассистента для обратных звонков: 550e8400-e29b-41d4-a716-446655440000

Когда клиент говорит "перезвоните" или называет время —
вызови create_crm_voicyfy_task:
- phone: [номер клиента из caller_number]
- assistant_id: 550e8400-e29b-41d4-a716-446655440000
- scheduled_time: [время по МСК]
- title: "Обратный звонок по запросу клиента"
- custom_greeting: "Добрый день! Вы просили нас перезвонить."

Форматы времени (всё МСК)

ФорматПример
Относительный"через 2 часа"
Сегодня"сегодня в 18:00"
Завтра"завтра в 15:00"
Конкретная дата"08.12.2025 09:40"

Функция: search_contact_by_phone

CRM

Ищет контакт в CRM VoksiAI по номеру телефона. Позволяет ассистенту персонализировать разговор — обратиться по имени и использовать историю взаимодействий.

Промпт-пример — Персонализированный приём звонка

Системный промпт
Ты — оператор службы поддержки.

В начале каждого звонка:
1. Вызови search_contact_by_phone с phone = caller_number
2. Если контакт найден — обращайся по имени: "Добрый день, [имя]!"
3. Если не найден — уточни имя: "Как вас зовут?"

Используй данные из CRM для контекста разговора.
Переменная caller_number автоматически подставляется в промпт при входящем звонке через Voximplant и содержит номер звонящего.

Функция: hangup_call

Звонки

Завершает телефонный звонок программно. Позволяет ассистенту корректно завершить разговор после выполнения задачи.

⚠️ Только Voximplant — Функция работает исключительно при звонках через телефонию Voximplant. При веб-сессиях не применима.

Промпт-пример

Системный промпт
Ты — оператор горячей линии.

Завершай звонок когда:
- Клиент попрощался ("спасибо", "до свидания", "всё", "пока")
- Все вопросы решены и клиент подтвердил
- Клиент прямо просит завершить

Вызови hangup_call:
- reason: "conversation_completed"
- farewell_message: "Спасибо за обращение! Хорошего дня!"

НЕ завершай звонок если клиент задаёт новые вопросы.

Причины завершения

reasonКогда использовать
conversation_completed✅ Естественное завершение — всё обсудили
user_request👋 Клиент сам попросил завершить
time_limit_reached⏰ Превышен лимит времени разговора

Функция: send_sms

Звонки

Отправляет SMS клиенту во время звонка с номера Voximplant. Удобно для передачи адреса, ссылки, кода подтверждения.

⚠️ Только Voximplant — SMS отправляется через инфраструктуру Voximplant. Требует настроенного номера в аккаунте.

Переменные звонка

При звонке через Voximplant в промпт автоматически подставляются переменные:

ПеременнаяЗначениеПараметр SMS
caller_numberНомер звонящего клиента→ параметр to
called_numberНомер Voximplant (ваш)→ параметр from_number

Промпт-пример

Системный промпт
Ты — консультант офиса.
Когда клиент просит отправить адрес или информацию по SMS:

Вызови send_sms:
- to: [caller_number]
- from_number: [called_number]
- text: "Наш адрес: ул. Ленина 5, офис 301. Время работы: 9:00-18:00"

После отправки скажи: "Отправил вам SMS с адресом!"

Функция: show_image

Звонки

Показывает изображение на экране устройства клиента во время звонка. Поддерживается в приложениях с интеграцией Voximplant Video SDK.

⚠️ Только Voximplant — Функция работает только в звонках с видео-поддержкой через Voximplant SDK. При обычных голосовых звонках изображение не отображается.

Промпт-пример

Системный промпт
Ты — консультант по недвижимости.
Когда клиент интересуется конкретным объектом —
покажи фото через show_image:

- url: https://cdn.example.com/property/apt-123.jpg
- caption: "Квартира на ул. Садовой, 45м², 3 этаж"

После показа прокомментируй: "Вы можете видеть планировку квартиры..."

Функция: query_llm

AI

Отправляет запрос другой языковой модели и возвращает ответ. Позволяет использовать специализированную модель для отдельных задач: перевод, анализ тональности, классификация запросов.

Промпт-пример — Классификация запроса

Системный промпт
Ты — оператор первой линии поддержки.

Когда клиент описывает проблему:
1. Вызови query_llm для классификации:
   - prompt: "Классифицируй следующий запрос клиента в одну из категорий:
     [техническая проблема / вопрос по оплате / вопрос по тарифу / другое].
     Запрос: [текст клиента]"
2. На основе ответа переадресуй: техника → отдел техподдержки, оплата → финансы

Отвечай на языке клиента.

Функция: search_pinecone

AI

Семантический поиск по векторной базе данных Pinecone. Подходит для больших баз знаний (тысячи документов), где обычный поиск по ключевым словам неэффективен.

Промпт-пример — RAG ассистент

Укажите namespace — пространство имён вашей базы знаний в Pinecone.

Системный промпт
Ты — эксперт-консультант. Отвечай ТОЛЬКО на основе базы знаний.

Pinecone namespace: company_docs

При каждом вопросе клиента:
1. Вызови search_pinecone с query = вопрос клиента
2. Изучи результаты (поле metadata.text)
3. Ответь на основе найденной информации
4. Если ничего не найдено — скажи: "К сожалению, у меня нет
   информации по этому вопросу"

Никогда не придумывай факты самостоятельно.

Функция: query_orchestrator

AI

Запускает агентский режим для сложных многошаговых задач. Оркестратор разбивает цель на подзадачи и выполняет их последовательно, используя доступные инструменты.

Промпт-пример

Системный промпт
Ты — JARVIS, умный многофункциональный ассистент.

Для сложных задач, требующих нескольких шагов, используй агентский режим.
Когда задача требует: найти + проанализировать + записать:
Вызови query_orchestrator с подробным описанием задачи.

Примеры задач для оркестратора:
- "Найди информацию о клиенте в CRM и создай отчёт"
- "Проверь наличие товара через API и запиши заявку в таблицу"
- "Собери данные из нескольких источников и отправь уведомление"

Функция: get_current_time

Утилиты

Возвращает текущее время в указанном часовом поясе. Используйте для подтверждения записей, расчёта «через N часов», проверки рабочих часов.

Промпт-пример

Системный промпт
Ты — менеджер по записи. Работаешь в часовом поясе МСК.

Когда нужно знать текущее время (для записи, планирования):
Вызови get_current_time:
- timezone: "Europe/Moscow"
- format: "full"

Используй время для:
- Подтверждения записи с точной датой и временем
- Расчёта "через X часов" от текущего момента
- Проверки рабочих часов (9:00–18:00 МСК)

Поддерживаемые часовые пояса

timezoneГород
Europe/MoscowМосква (МСК, UTC+3)
Europe/LondonЛондон (GMT/BST)
America/New_YorkНью-Йорк (EST/EDT)
Asia/TokyoТокио (JST, UTC+9)
UTCUTC (без смещения)

Часто задаваемые вопросы

Ответы на самые частые вопросы о промптах и функциях.

Да. Функции включаются независимо в настройках ассистента. Ассистент сам решает, какую вызвать, исходя из контекста разговора. Чётко опишите в промпте когда использовать каждую: «Вызови send_webhook когда клиент оставил заявку, вызови hangup_call когда клиент попрощался».
При звонке через Voximplant в промпт автоматически подставляются переменные: caller_number (номер звонящего) и called_number (ваш номер Voximplant). Напишите в промпте: «используй caller_number как значение параметра phone».
Три основные причины: (1) не описан сценарий вызова в промпте — добавьте явную инструкцию «Вызови [функция] когда...»; (2) функция не включена в настройках ассистента — проверьте список активных функций; (3) отсутствует обязательный параметр — убедитесь что все required-поля заполняются данными из разговора.
Добавьте в промпт инструкцию по обработке ошибок: «Если функция вернула error — сообщи пользователю [текст сообщения] и предложи [альтернативное действие]». Например: «скажи "Произошла техническая ошибка, мы перезвоним вам" и вызови hangup_call».
Добавьте в промпт явный запрет: «Отвечай ТОЛЬКО на вопросы о [тема]. На все остальные вопросы отвечай: "Я специализируюсь только на [тема], по другим вопросам обратитесь к нужному специалисту."»
Нет. Таблица должна быть доступна «Всем по ссылке → Редактор» для функции add_google_sheet_row, или «Просмотр» для read_google_doc. Приватные документы с ограниченным доступом не поддерживаются.
Два способа: (1) Использовать функцию search_contact_by_phone в начале звонка — если контакт есть в CRM, ассистент обратится по имени. (2) Спросить самому — напишите в промпте: «В начале разговора уточни имя клиента: "Как вас зовут?"».

Оптимальная длина промпта

Длина промпта зависит от сложности ассистента. Слишком короткий промпт оставляет пробелы, слишком длинный — создаёт путаницу в приоритетах.

Рекомендации по длине

Тип ассистентаРекомендуемая длинаЧто включать
Простой FAQ-бот200–400 словРоль + правила + данные
Запись / продажи400–800 слов+ сценарии + обработка возражений
Сложный агент800–1500 слов+ все сценарии + обработка ошибок + примеры диалогов
Совет: Используйте заглавные заголовки разделов (ЗАДАЧА:, ПРАВИЛА:, ДАННЫЕ:) — это помогает модели структурировать понимание и быстрее находить нужный контекст.

Статьи не найдены. Попробуйте другой поисковый запрос.