# Создание и сохранение переменных контекста | Слот Memory

## Назначение и общая информация

Слот Memory — Слот, позволяющий записывать данные в Пользовательские контекстные переменные, а также создавать новые Пользовательские контекстные переменные путем записи значения в несуществующую ранее переменную.Изменять Системная контекстная переменная в слоте Memory запрещено, за исключением client\_message.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-w2sCR3vVp6/089312aa012e4796137896a45bfdfd46071043adab0ce6bde8cb3a54637e94ba2c03b987ed24ef621027679a9ecbd746661ca4ec1e5c37b74b0dc3d47e43a65d4545c0a0b41fe48a30a2043b7fe9fe26bb1b5c9bccb5f4288f92a86309a93d1bd73650bd)

## Создание и настройки слота Memory

### Атрибуты слота

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Fn0N4SDwgN/ae1bd59541fcb0eda022c3d142cab209a6ef8cc2b24e482499ab2089600e3a0ded884913deec8e654985359b14b7cf95f23c45b491243921a7cc19a4d61ad21d6c6f7de95d720f987ceb94ec2b5502600a095c30ea2b206a853e81110c01420cd0d39b8f)

1. Name\*ー название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов.
2. FIELDS\*ー массив пар Key — Value.
3. > Важно:
4. > 1\. Обязательно должна быть минимум одна пара Key — Value
5. > 2\. Максимальное количество пар Key — Value не ограничено
6. 1. Key\* ー имя переменной, указанное в соответствии с требованиями к именам Пользовательские контекстные переменные. При неправильном указании переменной произойдет ошибка Валидация сценария.
   2. Value\* ー значение, которое будет записано в переменную:
   3. * точное значение (число, строка, булева)
      * результат операции
      * значение другой переменной
   4. 1. Обрезка пробелов: по нажатию кнопки CREATE (при создании слота) или SAVE (при редактировании слота) обрезаются пробелы и переносы строк в начале и в конце поля Value.
7. > Важно: при указании KEY обратите внимание на зависимость имени переменной от регистра (var и Varー разные переменные). Также, обратите внимание на требования к именам контекстных переменных.

### Использование синтаксиса в Слоте Memory

В Слоте Memory допустимо использование Выражение и Выражение с управляющей конструкцией в поле Value. Подробнее: [Синтаксис](/docs/proekty-na-platforme/proekt-i-ego-soderzhimoe/agenty-na-platforme/sintaksis.md)&#x20;

Если результатом вычисления шаблона является значение, которое можно привести к типу отличному от строки (число, логический тип, список, и т.п.), то сохраняемая Контекстная переменная будет иметь этот тип. Иначе Контекстная переменная будет сохранена как строка. Например, результатом вычисления шаблона:{% for i in range(1, 4) %}{{ i }}{% endfor %}будет строка “123”, которую можно привести к целочисленному типу, и в целевую Контекстная переменная будет сохранено целое число 123.

Пример:

* В Контекстная переменная numbers будет сохранено целое число 199;
* В Контекстная переменная random – псевдо-случайное число от 0 до 10 включительно;
* В Контекстная переменная string – строка из Контекстная переменная client\_message;
* В Контекстная переменная flag – значение логического типа True;
* В Контекстная переменная numbers – список (массив) \[1, 2, 3, 4, 5].

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-StIwldBBje/b5fed3bc0a8a9582a5c3ced4735671ef65314f204bb6b067d03cf908308f03b10a1a25a7e75a0796f4414c97e70f081aec735eee6f88021fd606a4872e20f07be1d27a13bcfdf9bca09a350e1f233b00697e17d9b422ab4f17a9bf1fa4fddee3dcd1d158)

## Работа слота

> Важно: При попытке записи в VALUE операции, которая не соответствует описанным в данной статье правилам, произойдет ошибка. Системная контекстная переменная error примет значение Failed to process the data!

Для того, чтобы записать значение в Контекстная переменная используя слот Memory необходимо указать в поле KEY название переменной, а в поле VALUE нужное значение.

> Важно: Все переменные записываются только булева, текстового, числового типа или типа “Дата”. Число записанное в одинарных кавычках (’45’) является строкой и не может участвовать в арифметических операциях

### <br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://chatme-ai-4.gitbook.io/docs/proekty-na-platforme/proekt-i-ego-soderzhimoe/agenty-na-platforme/kak-postroit-scenarii-agenta/kak-sozdavat-i-nastraivat-sloty/sozdanie-i-sokhranenie-peremennykh-konteksta-or-slot-memory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
