# Системные контекстные переменные

Системная контекстная переменная — переменные, создаваемые в Чате Платформа для служебных целей и обеспечения работы Сценарий агента. Системная контекстная переменная недоступны для редактирования пользователем, но доступны для просмотра и использовании в Сценарий агента.В данной таблице перечислены все Системная контекстная переменная Платформа и их характеристики.

<table><thead><tr><th>Переменная</th><th>Смысл</th><th>Скрыта от пользователя</th><th>Использование</th><th>Переменная всегда в контексте</th><th>Переменная всегда не пустая</th><th>Формат</th><th>Пример</th><th>Создание в Контексте Чата</th><th>Источник данных при создании</th><th>Изменение системой после создания</th><th>Изменение пользователем через слоты</th></tr></thead><tbody><tr><td>agent_id</td><td>Уникальный идентификатор Агента в Платформа</td><td>нет</td><td>идентификация текущего агента в данном чате</td><td>да</td><td>да</td><td>число</td><td>1772</td><td>При создании Чата</td><td>Параметры Агента</td><td>Невозможно</td><td>Невозможно</td></tr><tr><td>chat_id</td><td>Уникальный идентификатор Чата в Платформа</td><td>нет</td><td><ul><li>Идентификация Чата в Платформа</li><li>Идентификация Чата во Входящий запрос</li></ul></td><td>да</td><td>да</td><td>40 символов: латинские буквы и цифры</td><td>1fab819e20c1e939ed14d7024d17653fb07a77dd</td><td>При создании Чата</td><td><ul><li>генерация по формуле</li></ul><p>chat_id={channel_name}:{channel_chat_id}гдеchannel_name = {token}:{connector_id}:{agent_id}</p><ul><li>переменная закодирована после генерации</li></ul></td><td>Невозможно</td><td>Невозможно</td></tr><tr><td>channel_chat_id</td><td>идентификатор Собеседника в Конечный канал - синтетическая переменная, правила ее формирования задаются в настройках Коннектора к данному каналу</td><td>нет</td><td><ul><li>Идентификация Чата и\или Собеседника в Конечный канал</li><li>Генерация chat_id</li></ul><p><br></p></td><td>да</td><td>да</td><td>&#x3C;id чата\собеседника>|&#x3C;название коннектора></td><td>192929922|telegram</td><td>При создании Чат  в платформе</td><td>генерация по формулесhannel_chat_id = {id_from_channel|connector_name}гдеid_from_channel - идентификатор чата\собеседника\визитера из Конечный каналconnector_name - название Коннектор для Конечный канал, в котором происходит Общение</td><td>Невозможно</td><td>Невозможно</td></tr><tr><td>channel_id</td><td>Уникальный идентификатор объекта платформы Канал Проекта.  </td><td>нет</td><td><ul><li>Уникальный идентификатор объекта платформы Канал Проекта в котором происходит общение в данном Чате</li></ul></td><td>да</td><td>да</td><td>число</td><td>28844</td><td>При создании Чата в платформе</td><td>параметры Конечный канал Агента</td><td>Невозможно</td><td>Невозможно</td></tr><tr><td>client_message</td><td>Текст последнего сообщения, которое пришло от Собеседник  в Чат</td><td>нет</td><td><ul><li>движение бота по  Сценарий агента</li><li>в  Сценарий агента  по желанию дизайнера</li><li>в слоте NLU, как объект для распознавания</li><li>в слоте Regular Expression, как объект для проверки на соответствие регулярному выражению</li></ul></td><td>да</td><td>нет</td><td>текст, формируется в конечном канале</td><td>Привет!</td><td>При поступлении первого сообщения от Собеседника  в Чате</td><td>Конечный канал</td><td><ul><li>сообщение собеседника в конечном канале</li><li>команда start в телеграм боте</li><li>техническое сообщение от конечного канала в зависимости от коннектора</li></ul></td><td>Возможно</td></tr><tr><td>date</td><td>Время получения последнего сообщения от Собеседник  = время получения последнего значения client_message, но именно из Канал Проекта (а не в слоте Memory)</td><td>нет</td><td><ul><li>в Сценарий агента  по желанию ДД</li><li>в целях исполнения Сценарий агента</li></ul></td><td>да</td><td>да</td><td>дата<br>часовой пояс(UTC)</td><td>2020-12-17 13:29:19</td><td>При создании Чат в платформе</td><td>Время получения последнего сообщения</td><td>При получении нового сообщения от Собеседник</td><td>Невозможно</td></tr><tr><td>dialog_id</td><td>Идентификатор диалога</td><td>нет</td><td><ul><li>в системных целях</li><li>Идентификация нового диалога</li></ul></td><td>да</td><td>да</td><td>строка</td><td>1fab819e20c1e939ed14d7024d17653fb07a77dd</td><td>При создании Чата в платформе</td><td>рандомайзер+хэш</td><td>При старте нового Диалога в Чате</td><td>Невозможно</td></tr><tr><td>modified_at</td><td>Время последней модификации Контекст Чата</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>да</td><td>да</td><td>дата<br>часовой пояс(UTC)</td><td>12/17/2020 10:46:25</td><td>При создании Чата в платформе</td><td>Время создания Чата</td><td>При изменении Контекст Чата</td><td>Невозможно</td></tr><tr><td>slot_id</td><td>Уникальный для платформы идентификатор последнего "выполненного" Слота в Сценарий агента</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>да</td><td>да</td><td>число</td><td>1</td><td>При создании Чата  в платформе</td><td>Начальная позиция в Сценарий агента  - 1</td><td>При переходе к ноде соответствующей следующему Слот</td><td>Невозможно</td></tr><tr><td>strategy_modified_at</td><td>Время создания Обученная модель агента (время последнего переобучения)</td><td>нет</td><td>в Сценарий агента  по желанию ДД, также используется для сброса состояния Чата при переобучении</td><td>да</td><td>да</td><td>дата</td><td>12/17/2020 10:46:25</td><td>При создании Чата в платформе</td><td>База данных платформы: обученная модель Сценарий агента Агента</td><td>При последующем сообщении от Собеседника после Обучение/переобучения</td><td>Невозможно</td></tr><tr><td>confidence</td><td>Процент уверенности модели NLU  при распознавании Реплика Интентом</td><td>нет</td><td>при переходе по Сценарий агента  после слота NLU</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>Число с плавающей точкой</td><td>0.4812345</td><td>При прохождении слота NLU</td><td>Результат работы NLU</td><td>При прохождении слота NLU. Если при следующем прохождении NLU Интент  не распознается, то переменная будет удалена из Контекст Чата</td><td>Невозможно</td></tr><tr><td>error</td><td>Текст ошибки, полученный в результате выполнения слотов NLU/ Regular Expression  / Memory  </td><td>нет</td><td>при переходе по Сценарий агента  после СлотовNLU/ Regular Expression  / Memory  </td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>Строка</td><td>no intent!</td><td>При прохождении Слотов NLU/ Regular Expression  / Memory  </td><td>Результат выполнения операций NLU/ Regular Expression  / Memory  </td><td>При прохождении Слотов NLU/ Regular Expression  / Memory  </td><td>Невозможно</td></tr><tr><td>incoming_request_id</td><td>Уникальный для платформы идентификатор (токен) Входящий запрос</td><td>нет</td><td>испольуется для инициализации прохождения по Ветка сценария слота  Incoming Request</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>Строка</td><td>5944::80nyRRRjWAjQGfHkQJyJu6VWT8ToMpw79wi3m4e-x0g</td><td>Записывается в контекст в момент получения запроса на исполнение слота Incoming Request</td><td>Данные сценания - слота IR</td><td>Удаляется после прохождения слота Incoming Request — переменная будет удалена из Контекст Чата после достижения следующего после слота Incoming Request   слотов Wait For Reaction / Change Chat Mode</td><td>Невозможно</td></tr><tr><td>intent</td><td>Уникальный для платформы идентификатор распознанного Интента</td><td>нет</td><td>при переходе по Сценарий агента  после слота NLU</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>Число</td><td>1</td><td>При прохождении слота NLU</td><td>Результат работы NLU</td><td>При прохождении слота NLU. Если при следующем прохождении слота NLU intent  не распознается, то переменная будет удалена из Контекст Чата</td><td>Невозможно</td></tr><tr><td>request_success</td><td>Флаг, показывает успех последнего выполненного Внешний запрос в Сценарий агента</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>нет</td><td>Да, когда присутствует в контексте</td><td>строка</td><td>True или False</td><td>При получении ответа на Внешний запрос</td><td>Результат выполнения слота External Request</td><td>При получении ответа на Внешний запрос  . False - любые ошибки в процессе подготовки или обработки запроса, в т.ч. ответы с сервера с кодами 4хх и 5хх<br></td><td>Возможно</td></tr><tr><td>response_status_code</td><td>Код ответа сервера на выполненный Внешний запрос</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>нет</td><td>Да, когда присутствует в контексте</td><td>число</td><td>от 100 до 599</td><td>При получении ответа на Внешний запрос</td><td>Результат выполнения слота External Request</td><td>При получении ответа на External Request</td><td>Возможно</td></tr><tr><td>parse_result</td><td>Строка - часть client_message, соответствующую регулярному выражению в слоте Regular Expression, полученная после успешной проверки client_message в  данном слоте</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>нет</td><td>Да, когда присутствует в контексте</td><td>строка</td><td>слово</td><td>При прохождении слота Regular Expression</td><td>Результат выполнения слота Regular Expression</td><td>При прохождении слота Regular Expression</td><td>Возможно</td></tr><tr><td>IR_url</td><td>Адрес активного вебхука Входящий запрос (слот Incoming Request) в данной Обученная модель агента</td><td>нет</td><td>Для отправки запроса из внешних систем Агенту</td><td>нет</td><td>Да, когда присутствует в контексте</td><td>url</td><td>https://admin.chatme.ai/api/incoming_request/29614::XnLlRoKPAnwLKNoFHUWPmzYkE1fT9pi-10ZkjcmDRBc</td><td>При прохождении слота Incoming Request</td><td>Данные поля WEBHOOK слота Incoming Request</td><td>Невозможно</td><td>Невозможно</td></tr><tr><td>node_id</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>savepoint_node_id</td><td>Идентификатор последнего достигнутого в Общение Слота с установленной точкой сохранения</td><td>нет</td><td>в Слоте Jump для перехода в соответствующий Слот через опцию “get slot id from context”</td><td>нет</td><td>да</td><td>число</td><td>1</td><td>При прохождении слота с установленной Точка сохранения  - содержащего /s в поле Name</td><td>Обученная модель агента</td><td>Каждый раз прохождении слота с установленной Точка сохранения  - содержащего /s в поле Name</td><td>Возможно</td></tr><tr><td>raw_response</td><td>Переменная содержит ответ внешней системы на Внешний запрос</td><td>нет</td><td>Для дебага Агента; для редактирования External Request (узнать, что приходит в ответ и что можно парсить)</td><td>нет</td><td>нет</td><td>строка</td><td><p>Успешный запрос:</p><pre><code>{"success":true,"temperature":"-5.3","feels_like":"-12.18"}
</code></pre><p>Неуспешный запрос:</p><pre><code>{"success":false,"message":"empty city provided"}
</code></pre></td><td>При прохождении слота External Request</td><td>Внешняя система, к которой обращается External Request</td><td>Каждый раз при следующем прохождении этого же или другого слота External Request</td><td>Возможно</td></tr><tr><td>response_headers</td><td>Содержимое переменной: массив заголовков и их значений из полученного ответа на Внешний запрос и системная информация.</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>нет</td><td>нет</td><td>строка</td><td>Успешный запрос:{'Server': 'nginx/1.14.0 (Ubuntu)', 'Date': 'Thu, 28 Apr 2022 12:09:42 GMT', 'Content-Type': 'application/json', 'Content-Length': '59', 'Connection': 'keep-alive'}При неуспешном запросе: если запрос дошёл до сервера, то заголовки формируются, если нет, то переменная чистится</td><td>При прохождении слота External Request</td><td>Внешняя система, которая отвечает на External Request</td><td>Каждый раз при следующем прохождении этого же или другого слота External Request</td><td>Возможно</td></tr><tr><td>notification_count</td><td>Счетчик рассылок  в конкретном Чате</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>число</td><td>123</td><td>При прохождении слота Notification</td><td>Генерируется системой</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Невозможно</td></tr><tr><td>notification_task_id</td><td>Принимает значение равное Идентификатор задачи на рассылку,который система отправила в ответе (response) на Запрос на рассылку  от внешней системе</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>строка (UUID)</td><td>123e4567-e89b-12d3-a456-426655440000</td><td>При прохождении слота Notification</td><td>Конечный канал, к которому обращается Notification</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Невозможно</td></tr><tr><td>notification_init_time</td><td>Датавремя начала выполнения Слота Notification по UTC</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>датавремя</td><td></td><td>При прохождении слота Notification</td><td>Генерируется системой</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Невозможно</td></tr><tr><td>notification_message_id</td><td>Когда рассылка отправляется, Конечный канал возвращает id сообщения</td><td>нет</td><td>движение Агента по Сценарий агента</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>строка</td><td>любая строка в зависимости от мессенджера</td><td>При прохождении слота Notification</td><td>Конечный канал, к которому обращается Notification</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Невозможно</td></tr><tr><td>notification_id</td><td>id рассылки, на данный момент = id Слота Notification  </td><td>нет</td><td>движение Агента по Сценарий агента</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>число</td><td>123</td><td>При прохождении слота Notification</td><td>Данные сценария</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Невозможно</td></tr><tr><td>notification_raw_status</td><td>json-объект, запрос, который отправляет Конечный канал в ответ на рассылку, описание статуса</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>json-объект</td><td>{‘description’:’failed to build request’}{‘description’:’no account on &#x3C;номер телефона\ключевой идентификатор собеседника>’,<br>‘channel_response’: тело ответа от канала as is (объект)<br>}</td><td>При прохождении слота Notification</td><td>часть ‘description’ создается платформой, часть ‘channel_response’— Конечный канал, к которому обращается Notification</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Возможно</td></tr><tr><td>notification_status</td><td>Технический статус рассылкиВозможные значения: ‘no_account’, ‘failed’, ‘sent’, ‘delivered’, ‘read’</td><td>нет</td><td>движение Агента по Сценарий агента</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>строка</td><td>'sent''delivered'‘failed’‘no_account’.</td><td>При прохождении слота Notification</td><td>Конечный канал, к которому обращается Notification</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Невозможно</td></tr><tr><td>notification_raw_request</td><td>Запрос, который Платформа отправляет в мессенджер для запуска рассылки</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>json-объект</td><td>{ "to": "9601103070", "type": "template", "template": {   "namespace": "2a958ec8_9602_4cc0_aea4_73006715d273",   "name": "mailing_02",   "components": [     {       "type": "body",       "parameters": [         {           "type": "text",           "text": "\u044d\u043d\u0434\u043e\u043a\u0440\u0438\u043d\u043e\u043b\u043e\u0433"         } }</td><td>При прохождении слота Notification</td><td>Генерируется Слотом Notification</td><td>Каждый раз при следующем прохождении этого же или другого слота Notification</td><td>Возможно</td></tr><tr><td>intent_name</td><td>В переменной хранится название последнего пройденного интента</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>строка</td><td>smalltalk_hello</td><td>При прохождении подслота intent</td><td><p>берется из поля Name ИнтентаВажно:</p><ol><li>Если название Интента было изменено в Ресурс компании и Агент был переобучен, то в переменную записывается то название, которое было актуально на момент прохождения слота с этим Интентом.</li><li>Если название Интента было изменено в Ресурс компании, но Агент не был переобучен, то в переменную записывается старое название Интента.</li></ol></td><td>каждый раз при прохождении этого же или другого подслота intent</td><td>Возможно</td></tr><tr><td>nlu_result</td><td>В переменной хранится информация о топ-5 распознанных интентов в порядке убывания конфиденса</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td><p>json-объект;может содержать разное количество пар ключ-значение:</p><ol><li>5 пар — если Слот NLU имеет 5 или более Подслотов intent;</li><li>2-4 пары — если Слот NLU имеет от 2 до 4 Подслотов intent (количество пар будет соответствовать количеству Подслотов intent);</li><li>1 пару — если Реплика Собеседника является точным совпадением Обучающая фраза одного из Интентов</li></ol></td><td>[{'intent_name': 'size', 'confidence': 0.9993743300437927}, {'intent_name': 'product_in_stock', 'confidence': 0.00019508253899402916}, {'intent_name': 'model_price', 'confidence': 0.00012844608863815665}, {'intent_name': 'address', 'confidence': 0.00010525238758418709}]</td><td>при прохождении Слота NLU  </td><td>поле Name распознанных Интентов или Интента и ихconfidence</td><td>каждый раз при прохождении этого же или другого Слота NLU  </td><td>Возможно</td></tr><tr><td>platform_chat_id</td><td>"Промежуточная версия” идентификатора Чата, предназначенная для  сопоставления старых идентификаторов чатов с новыми идентификаторами</td><td>нет</td><td>Служебная переменная, пока не используется</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>40 символов: латинские буквы и цифры</td><td>1fab819e20c1e939ed14d7024d17653fb07a77dd</td><td>при создании нового Чата</td><td>Генерируется системой</td><td>нет</td><td>Невозможно</td></tr><tr><td>chat_language</td><td>В переменной хранится распознанный язык</td><td>нет</td><td>в Сценарий агента  по желанию ДД</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>строка</td><td>Russian</td><td>при прохождении слота Language</td><td>Генерируется системой</td><td>каждый раз при прохождении этого же или другого Слота Language</td><td>Невозможно</td></tr><tr><td>channel_raw_response</td><td>json-объект, запрос, который отправляет Конечный канал  в ответ на перевод на оператора/группу операторов</td><td>нет</td><td>при переходе по Сценарий агента после слота Change Chat Mode</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>json-объект, состоящий из ключа code и объекта body</td><td><pre><code>{    "code": 200,    "body": {        "result": "ok"    }}
</code></pre></td><td>при прохождении слота Change Chat Mode</td><td>Конечный канал, к которому обращается Change Chat Mode</td><td>каждый раз при прохождении этого же или другого Слота Change Chat Mode</td><td>Невозможно</td></tr><tr><td>repeat_index</td><td>переменная используется для отражения номера текущей итерации цикла, нумерация итераций начинается с 0</td><td>нет</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>Невозможно</td></tr><tr><td>email_status</td><td>Результ отправки письма</td><td>нет</td><td>движение Агента по Сценарий агента</td><td>Нет</td><td>Да, когда присутствует в контексте</td><td>json-объект, состоящий из ключа task_id или error</td><td>{ "task_id": &#x3C;идентификатор задачи> }</td><td>При прохождении слота Email</td><td></td><td>Каждый раз при следующем прохождении этого же или другого слота Email</td><td>Невозможно</td></tr></tbody></table>

\
