> For the complete documentation index, see [llms.txt](https://chatme-ai-4.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](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).

# Создание и сохранение переменных контекста | Слот 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>
