Заметка в трассировке

Узел, который пишет в трассировку выполнения вашу строку с подставленными значениями из выполнения.

3 мин чтения

Заметка в трассировке оставляет заметку в трассировке выполнения. Заметка — строка, которую пишете вы, со значениями из выполнения внутри, и флоу идёт дальше.

Узел
Заметка в трассировке
Тип
log
Категория
Решение
Порты
  • По умолчанию default подключение обязательно
Завершает путь
Нет

Что делает узел

Когда выполнение доходит до узла, узел заполняет подстановки своего сообщения, пишет заметку в трассировку со своим уровнем и выходит через По умолчанию.

Подстановка — путь в двойных фигурных скобках: {{ input.plan }}, {{ nodes.check.output.met }}. На её место встаёт значение по этому пути.

  • Число и текст пишутся как есть. Флаг пишется как 1 для true и никак для false.

  • Подстановка, путь которой ничего не находит или находит список, объект или null, остаётся в заметке такой, какой она набрана.

Заметка — часть трассировки, и ничего больше: это не запись журнала аудита, она не поднимает оповещений и не шлёт вебхуков. Она хранится столько же, сколько трассировка, — по умолчанию 30 дней.

Когда использовать

  • Увидеть значение из выполнения. Выходы узлов в трассировке не хранятся, поэтому заметка — способ их туда записать.

  • Отметить словами для человека, по какой ветке пошло выполнение.

Не пишите в заметку то, что нельзя хранить: значение входа, записанное в сообщение, хранится в трассировке открытым текстом.

Настройки

НастройкаДля чего она
messageСтрока, которая пишется в трассировку, не длиннее 500 символов. Путь в двойных фигурных скобках заменяется значением из выполнения по этому пути.
levelinfo, warning или error — как строка помечена в трассировке. Больше от него ничего не зависит. Узел без уровня пишет info.

В конструкторе настройки — Сообщение и Уровень. У нового узла заметка пустая, с уровнем Информация.

Порты

У узла один порт, По умолчанию, и он обязателен. Флоу, в котором он никуда не ведёт, не публикуется.

Выход

JSON
{ "message": "Plan: pro" }

Выход — заметка в том виде, в каком она записана в трассировку. Следующий узел читает её как nodes.<key>.output.message.

Ошибки

Ошибок узел не выбрасывает. Подстановку, которую он не смог заполнить, называет событие warning сразу после заметки: unknown_path, когда путь ничего не находит, type_mismatch, когда он находит значение, которое строка текста не может показать.

JSON
[
  { "type": "warning", "node_key": "note", "payload": { "reason": "unknown_path", "paths": ["context.region"] } },
  { "type": "warning", "node_key": "note", "payload": { "reason": "type_mismatch", "paths": ["input.messages"] } }
]

Настройки проверяются при проверке флоу и при его публикации.

В API запись issues называет такую проверку в params.detail; её code — invalid_node_config.

ПроверкаСообщение в конструкторе
log_unsupported_level«{node}» использует уровень, которого не существует.
log_invalid_messageСообщение «{node}» должно быть текстом не длиннее {max} символов.

Пример

  • Запрос — По умолчанию → Условие
  • Условие — Выполнено → Заметка в трассировке
  • Заметка в трассировке — По умолчанию → AI-модель
  • Условие — Не выполнено → Отклонить запрос
  • AI-модель — Успех → Вернуть ответ

Заметка ниже стоит на ветке, которая вызывает модель. В трассировке каждого выполнения, прошедшего по этой ветке, она читается как «Plan: pro».

Plan: {{ context.plan }}

Собрано из openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d