Переменные и контекст
Синтаксис
| Синтаксис | Поддерживается | Где работает | Пример |
|---|---|---|---|
{var} | да | текстах и полях, поддерживающих подстановку | Привет, {first_name} |
{{var}} | нет | не использовать как шаблон Bot Builder | {{name}} останется обычным текстом |
${var} | нет | не использовать как шаблон Bot Builder | ${name} не подставляется |
Обычные фигурные скобки без имени переменной не являются способом экранирования; если текст должен содержать буквальные скобки, проверь конкретное поле и форматирование схемы. Не вставляй неизвестные синтаксисы «на пробу».
Жизненный цикл
Имя в поле сохранения указывается без скобок: answer. В сообщении используется {answer}. input, code, set_variable, bot_table, http_request и некоторые специализированные ноды создают или изменяют пользовательские значения. Подстановка выполняется runtime в момент обработки поля, перед отправкой сообщения или выполнением операции. Если переменная неизвестна или ещё не создана, безопасное значение зависит от конкретного рендера; это не следует считать пустой строкой без проверки логов.
Пользовательский контекст связан с пользователем и доступен следующим нодам его сценария. user session — краткоживущие данные текущего диалога/FSM, user data — пользовательские значения, runtime context — текущие технические объекты события (user_id, callback, state и т.п.), global state — данные процесса/проекта, не предназначенные для изоляции между пользователями. Точные правила сохранения между перезапусками задаёт конкретная нода и её схема; не обещай постоянство без явного хранилища.
Текущий runtime-контекст конкретного пользователя отдельным MCP-инструментом не просматривается. Для диагностики используй логи бота, временную диагностическую message или безопасное присваивание в code; секреты в сообщения не выводи.
Ограничения
Имена должны соответствовать ограничениям схемы проекта: используй короткие имена без скобок и пробелов, предпочтительно snake_case. Тип значения должен соответствовать потребителю: строку не передавай в числовую проверку без преобразования. Постоянное хранение требует bot_table, SQL или другой явно поддержанной ноды.
Проверка
Если значение не раскрылось, проверь имя, ноду записи, порядок переходов, пользователя и поле, поддерживающее подстановку. После изменений вызови validate_node и validate_bot_project; затем проверь фактический runtime-лог.