Заметка в трассировке
Узел, который пишет в трассировку выполнения вашу строку с подставленными значениями из выполнения.
3 мин чтения
Заметка в трассировке оставляет заметку в трассировке выполнения. Заметка — строка, которую пишете вы, со значениями из выполнения внутри, и флоу идёт дальше.
- Узел
- Заметка в трассировке
- Тип
log- Категория
- Решение
- Порты
- По умолчанию
defaultподключение обязательно
- По умолчанию
- Завершает путь
- Нет
Что делает узел
Когда выполнение доходит до узла, узел заполняет подстановки своего сообщения, пишет заметку в трассировку со своим уровнем и выходит через По умолчанию.
Подстановка — путь в двойных фигурных скобках: {{ input.plan }}, {{ nodes.check.output.met }}. На её место встаёт значение по этому пути.
Число и текст пишутся как есть. Флаг пишется как
1дляtrueи никак дляfalse.Подстановка, путь которой ничего не находит или находит список, объект или
null, остаётся в заметке такой, какой она набрана.
Заметка — часть трассировки, и ничего больше: это не запись журнала аудита, она не поднимает оповещений и не шлёт вебхуков. Она хранится столько же, сколько трассировка, — по умолчанию 30 дней.
Когда использовать
Увидеть значение из выполнения. Выходы узлов в трассировке не хранятся, поэтому заметка — способ их туда записать.
Отметить словами для человека, по какой ветке пошло выполнение.
Не пишите в заметку то, что нельзя хранить: значение входа, записанное в сообщение, хранится в трассировке открытым текстом.
Настройки
| Настройка | Для чего она |
|---|---|
message | Строка, которая пишется в трассировку, не длиннее 500 символов. Путь в двойных фигурных скобках заменяется значением из выполнения по этому пути. |
level | info, warning или error — как строка помечена в трассировке. Больше от него ничего не зависит. Узел без уровня пишет info. |
В конструкторе настройки — Сообщение и Уровень. У нового узла заметка пустая, с уровнем Информация.
Порты
У узла один порт, По умолчанию, и он обязателен. Флоу, в котором он никуда не ведёт, не публикуется.
Выход
{ "message": "Plan: pro" }Выход — заметка в том виде, в каком она записана в трассировку. Следующий узел читает её как nodes.<key>.output.message.
Ошибки
Ошибок узел не выбрасывает. Подстановку, которую он не смог заполнить, называет событие warning сразу после заметки: unknown_path, когда путь ничего не находит, type_mismatch, когда он находит значение, которое строка текста не может показать.
[
{ "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