Справочник нод
Все 128 нод палитры. Группировка та же, что в редакторе: домен → группа → нода. Как читать страницу ноды.
Input / Output
Boundaries
ВходНачало сценария. Два ВЫХОДА (сырой envelope не пробрасывает): output — для chat/telegram это СТРОКА-сообщение, а при custom inputs (ручной/API/editor запуск с объектом без ключа message) это ВЕСЬ входной объект целиком → inputs.input.<field> напрямую; data — контекст триггера (trigger, chat.session_id, telegram.*; структурный payload вебхука в data.webhook.payload). Историю чата берите нодами chat_history. Должна быть ровно одна. Входа выполнения нет.
entryВыходКонец сценария. Принимает финальный результат и возвращает его пользователю (или как ответ API). Опц. вход files (одна или несколько файловых ссылок) отдаёт файлы вместе с ответом: внешние/webdav-ссылки скачиваются в системный стор, уже-наши файлы пробрасываются без перезаписи, и в чате показываются (картинка/аудио/вложение). Должна быть хотя бы одна. Поддерживает стриминг ответа. Выхода выполнения нет.exitUI Output
AI
LLM
JSON: схема ответаИнструмент-расширение для агента: принуждает LLM отвечать в формате JSON по схеме. Встраивает схему в системный промпт и разбирает ответ. Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента».
json_parserLLMКонфигурация языковой модели (провайдер + модель + температура). Не выполняется сама по себе — подключается к ИИ-агенту, LLM Response или Structured Output LLM на входе «Модель». В цепочку выполнения не встаёт.llmОтвет LLMОтправляет сообщение в LLM и стримит ответ. Проще, чем ИИ-агент: без инструментов, один вызов. Модель приходит на вход «Модель». История беседы — это массив сообщений на входе «Сообщение»: подайте туда выход ноды «История чата» — модель получит все сообщения целиком, последнее из них — текущее.llm_responseСообщениеСобирает каноническое сообщение (role + текст + вложения) из входов text и files. Используется, когда нужно передать сообщение с файлами в LLM-ноду, под-workflow или память.messageСообщенияСобирает массив сообщений из нескольких входов. В настройках задаётся только количество входных портов. Значение на любом входе превращается в сообщение от пользователя; если пришёл готовый массив сообщений — он распаковывается и встаёт на своё место. Нода ждёт входы, которые её запускают; значение со входа, по которому приходят только данные, берётся, только если его источник уже отработал — порядок задайте связью от выхода «Успех» источника. История из «Истории чата» уже содержит текущее сообщение: добавлять к ней сообщение от «Входа» не нужно.messagesLLM с JSON-ответомВызывает LLM и возвращает ответ строго в формате JSON по заданной схеме (structured output). Используется когда нужен типизированный вывод, а не свободный текст. Модель приходит на вход «Модель». Массив сообщений на входе «Сообщение» (например, от «Истории чата») уходит модели целиком.structured_output_llmAgents
План агентаTodo-список для агента: планирование и отметка задач через инструменты. Стрим в панель Extra — «Stream to Extra panel»; порт stream по умолчанию скрыт, включите «Explicit Extra stream port» для ребра к Extra Section.
agent_planИИ-агентАвтономный агент с поддержкой инструментов. Получает сообщение, вызывает подключённые инструменты и возвращает ответ. Модель приходит на вход «Модель». Опционально: memory (история диалога), skills/extensions (инструменты).ai_agentНабор инструментовОбъединяет несколько инструментов (extension-нод) в один выход для подключения к ИИ-агенту. Удобно когда нужно сгруппировать много инструментов и подключить через один порт агента.toolsetСвой инструментОбёртка подграфа как инструмент агента. Агент вызывает его по имени, выполняется цепочка нод внутри (выход «Аргументы инструмента» → … → вход «Ответ инструмента»), результат возвращается агенту. Позволяет создавать переиспользуемые инструменты из нод.wf_toolИнструменты виджетаРасширение агента: отдаёт LLM все JS-функции, объявленные в коде встраивания виджета (iternaWidget.defineFunction), как инструменты. Когда модель вызывает инструмент — браузер посетителя выполняет привязанный JS и возвращает результат. Работает только в режиме виджета.widget_toolsAgent State
Память агентаДолгосрочная структурированная память агента: хранит key-value данные между вызовами. Агент может читать, изменять и удалять значения через встроенные инструменты. Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента».
agent_memoryНавыки агентаНабор навыков (skills) для агента: каждый навык — набор инструкций в системном промпте. Агент может активировать/деактивировать навыки динамически. Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента».agent_skillsConversation Memory
Вся история диалогаКопит историю диалога из СОБСТВЕННЫХ прошлых прогонов этого сценария: на первом ходу пуста и заполняется по мере переписки. Если нужны сообщения, уже написанные в чате до этого сценария, читай их нодой «История чата». Подключается ко входу «Память» ИИ-агента. У LLM Response входа памяти нет — историю беседы ему подают нодой «История чата» на вход «Сообщение». Область хранения: thread (между сообщениями), session (в рамках выполнения) или call (разово).
buffer_memoryИстория чатаЧитает переписку ЭТОГО чата как массив Messages — включая сообщения, написанные до того, как сценарий был собран: источник это сохранённые сообщения чата по (workflow_id, session), которые пишет сама платформа. Основной способ дать боту память о прошлых ходах; ноды памяти (Buffer/Window/Summary Memory), в отличие от неё, копят только собственные прогоны и на первом ходу пусты. Последнее сообщение массива — текущее: платформа записывает реплику до запуска сценария. Подайте выход на вход «Сообщение» у LLM Response (модель получит всю беседу) или прочитайте его в шаблоне. Нода, которая берёт этот выход, должна запускаться после «Истории чата»: либо этот выход — единственное, что к ней подключено, либо проведите к ней связь от выхода «Успех». Ограничение по количеству — limit. Работает и для веб-чата, и для Telegram (ходы бота зеркалятся в ту же таблицу). По умолчанию читает текущий тред; можно переопределить session_id.chat_historyИстория чата (инструмент)Инструмент для ИИ-агента: по вызову возвращает недавнюю историю диалога (транскрипт role: text), с ограничением по количеству сообщений. Источник тот же, что у ноды «История чата» — сохранённые сообщения чата (веб-чат и Telegram). Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента».chat_history_toolПамять со сжатиемХранит историю СОБСТВЕННЫХ прошлых прогонов этого сценария, сжимая старые сообщения с помощью LLM; на первом ходу пуста — переписку, написанную до сборки, читает нода «История чата». Модель берётся у подключённого ИИ-агента либо приходит на вход «Модель».summary_memoryПоследние сообщенияХранит последние N сообщений из СОБСТВЕННЫХ прошлых прогонов этого сценария (скользящее окно); на первом ходу пуста — переписку, написанную до сборки, читает нода «История чата». Настраивается через window_size.window_memoryRAG
Эмбеддинг текстаВычисляет вектор-эмбеддинг для входного текста. Модель берётся из подключённой Embedding-ноды или из inline-настройки. Вектор можно подать в RAG Query (поиск по готовому вектору) или использовать в любом пайплайне.
embed_textМодель эмбеддинговКонфигурация модели эмбеддингов (аналог LLM-ноды). Подключается линком к Embed Text. Сама не выполняет вычислений.embeddingЗапись в базу знанийДобавляет текст в базу знаний: чанкинг → эмбеддинг → vector store. По умолчанию создаёт документ (виден в UI KB); опционально — raw-режим без записи документа.kb_writeБаза знанийНастройка базы знаний для поиска: выбирается уже созданная база. Подключается к порту «База знаний» у нод «RAG-запрос» и «Запись в базу знаний» и задаёт kb_id, top_k, порог и окно контекста (фильтры по метаданным объединяются с фильтрами ноды). Сама поиск не выполняет.rag_kbRAG-запросВыполняет семантический поиск по базе знаний и возвращает релевантный контекст. Принимает запрос через порт 'query' и KB через порт 'kb'. Результат передаётся в LLM для генерации ответа.rag_queryRAG-инструментПредоставляет базу знаний как инструмент для ИИ-агента. Агент сам решает, когда выполнять поиск. Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента». В отличие от «RAG-запроса» — вызывается агентом, а не детерминированно.rag_toolRerankПереранжирует список чанков по релевантности к запросу через cross-encoder reranker. Универсально: композируется с RAG Query, RRF Fusion или любым источником чанков.rerankМодель RerankКонфигурация reranker'а: модель и число оставляемых фрагментов. Подключается линком к Rerank-ноде. Сама не выполняет вычислений.rerank_configRRF-слияниеОбъединяет несколько ранжированных списков чанков по Reciprocal Rank Fusion (rank-only, не зависит от шкал score). Ждёт все входящие ветки, затем сливает. Основа hybrid search.rrf_fusionMedia (Speech / Image / Video)
Генерация изображенияГенерация изображения по тексту (text2img) или по тексту + входной картинке (img2img). Параметры (size/quality/n) зависят от выбранной модели.
image_generateРечь → ТекстРаспознаёт речь из аудиофайла и возвращает текст. Голосовое сообщение, которое запустило сценарий, приходит вложением на выход «Сообщение» ноды «Вход» — подключите этот выход прямо ко входу «Аудио». Модель и её параметры выбираются в настройках ноды.speech_to_textТекст → РечьСинтезирует речь (аудиофайл) из текста (TTS). Голос/формат — параметры выбранной модели из медиа-каталога.text_to_speechStream Observers
Перехват выводаПерехватывает текст ответа ИИ-агента (каждого раунда, включая промежуточные реплики между вызовами инструментов) и стримит его в доп. блок чата. Ход рассуждения показывает другая нода — «Перехват рассуждения». Порт стрима по умолчанию скрыт — включите «Явный порт стрима Extra».
catch_outputПерехват размышленийПерехватывает thinking-токены агента и стримит в панель Extra. По умолчанию без порта stream; для явного ребра к Extra Section включите «Explicit Extra stream port».catch_thinkingПерехват вызова инструментаПерехватывает вызовы инструментов агента в реальном времени и стримит в панель Extra. По умолчанию без порта stream; для явного ребра к Extra Section включите «Explicit Extra stream port».catch_tool_callLogic & Flow
Branching
Если / ИначеУсловное ветвление: вычисляет выражение и направляет выполнение в ветку 'true' или 'false'. Выражение поддерживает сравнения и обращения к данным нод: {{nodes.llm_1.output.score}} > 0.8.
ifSwitchМноговариантное ветвление: упорядоченный список условий ({{ }}), у каждого свой выход. Срабатывает первое истинное условие; если ни одно не истинно — ветка, названная в «Ветка по умолчанию» (по умолчанию 'default').switchIteration
ФильтрОбходит массив со входа «Массив». Для каждого элемента запускает тело; значение, пришедшее на вход «Оставить элемент?», должно быть строго да/нет. Да — элемент попадает в результат, нет — отбрасывается. Порядок сохраняется.
filterДля каждогоПоследовательно обходит массив со входа «Массив». Для каждого элемента запускает тело между выходом «Элемент» и входом «Конец прохода». Значение, пришедшее на «Конец прохода», не читается — нода удобна для действий, а не для сборки нового массива (для сборки есть Map).for_eachMapОбходит массив со входа «Массив». Для каждого элемента запускает тело и собирает значение со входа «Значение элемента» в новый массив того же порядка. Можно выполнять элементы параллельно — с ограничением одновременных запусков.mapЦикл WhileПовторяет тело, пока условие истинно. «Начало» и «Конец прохода» — только ход выполнения, значения по ним не идут. «Готово» отдаёт то, что пришло на вход, а не то, что посчитало тело: результат складывайте сами — в переменную или в базу. Необязательный выход «Причина остановки» говорит, чем кончился цикл: условие стало ложным или упёрлись в предел проходов.while_loopSynchronization
ОбъединениеОбъединяет отдельные вход выполнения и вход значения в один выход, который и запускает следующий шаг, и приносит ему значение. Срабатывает по приходу хода и берёт последнее значение со входа значения.
mergeРазделениеРазделяет вход, который одновременно запускает шаг и приносит значение, на два выхода: очередь выполнения и само значение. Делает разведение хода и данных явным элементом сценария.splitДождаться всехЖдёт завершения активных входящих веток и продолжает поток. Учитывает только реально исполняемые связи (skipped switch-ветки не блокируют). Агрегирует данные согласно merge_mode (first / last / merge). stream_through пробрасывает токены стримящих веток сразу в exit, не дожидаясь барьера (значение всё равно собирается по merge_mode).wait_allData
Values & State
ЗначениеСтатическое значение (строка, число, булево). Вычисляется один раз при старте сценария и передаёт значение другим нодам. В цепочку выполнения не встаёт.
constШаблонСтроит текст по шаблону с подстановкой значений из других нод: {{nodes.llm_1.output}}, {{inputs.message}}. Используется для формирования промптов, сообщений и строк из динамических данных.templateПеременнаяОбъявляет переменную с именем, типом и начальным значением. Переменная может быть сессионной (живёт в рамках выполнения) или thread-переменной (сохраняется в БД между сообщениями). Подключается к VarSet для записи.varЗадать переменнуюЗаписывает новое значение в переменную (Var-нода). Порт «Input» — триггер выполнения и данные для записи, «Var» — ссылка на Var-ноду.var_setOperators
ЛогикаЛогическая операция: сравнение (==, !=, >, <, >=, <=) или булева операция (and, or, not) над двумя значениями. Возвращает булев результат. Часто используется перед If-нодой.
logic_opМатематикаМатематическая операция над двумя значениями (A и B): сложение, вычитание, умножение, деление, остаток, степень. Значения приходят на порты «A» и «B».math_opОперация с текстомОперация над строками: склейка, поиск подстроки, верхний и нижний регистр, обрезка пробелов, длина, разбиение по разделителю. Основная строка приходит на порт «Вход», второй аргумент — на порт «B».string_opJSON
JSON: объединитьСливает два JSON-объекта: ключи из B перезаписывают ключи из A. Поддерживает deep merge (рекурсивный) и shallow merge. Удобен для объединения данных из разных нод.
json_mergeJSON: задать полеУстанавливает значение по точечному пути в объекте. Принимает исходный JSON (порт «JSON») и новое значение (порт «Значение»), возвращает изменённый объект. Путь формата user.name или $.user.name (ведущий $. необязателен). Индексы массивов НЕ поддерживаются — для $.items[0].x используйте code_javascript.json_setCode
DataFrame I/O
Конвертер форматовУниверсальный конвертер payload: json ↔ dataframe ↔ csv. Выберите исходный и целевой тип.
convertПрочитать CSVСчитывает CSV-файл из файлового хранилища пространства (или подключённого, например WebDAV) и преобразует его в DataFrame. Параметры: разделитель, кодировка, строка заголовка.df_read_csvПрочитать XLSXСчитывает лист Excel-файла (xlsx) из файлового хранилища пространства (или подключённого) в DataFrame. Поддерживает выбор листа по имени или индексу.df_read_xlsxЗаписать CSVЗаписывает DataFrame в CSV-файл в файловом хранилище пространства (или подключённом). Перезаписывает целевой файл при существовании.df_write_csvЗаписать XLSXЗаписывает DataFrame в Excel-файл (xlsx) в файловом хранилище пространства (или подключённом). Перезаписывает целевой файл при существовании.df_write_xlsxDataFrame Ops
Таблица: инструменты агентаПодключает к ИИ-агенту набор инструментов для работы с таблицами: загрузка CSV/XLSX, фильтрация, объединение, агрегация, сохранение. Файлы читает и пишет в хранилище пространства; порт «Хранилище файлов» нужен только для внешнего хранилища.
dataframe_toolТаблица: склеитьSQL UNION ALL / column-stack: склеивает два DataFrame по строкам или колонкам.df_concatТаблица: убрать дублиSQL SELECT DISTINCT: удаляет дубликаты по набору колонок.df_drop_duplicatesТаблица: сгруппироватьSQL GROUP BY + агрегации: задайте колонки группировки и список агрегатов (sum/mean/min/max/count/...).df_groupby_aggТаблица: соединитьSQL JOIN двух DataFrame: inner/left/right/outer/cross. Подключите левую таблицу к ``left``, правую — к ``right``.df_mergeТаблица: отобрать строкиSQL WHERE: фильтрует строки DataFrame по выражению (синтаксис ``DataFrame.query``). Пример: ``revenue > 1000 and country == 'DE'``.df_queryТаблица: выбрать столбцыSQL SELECT: выбирает/переименовывает/выкидывает колонки. Каждая строка списка задаёт source → alias или drop.df_selectТаблица: сортироватьSQL ORDER BY: сортировка по одному или нескольким столбцам.df_sortТаблица: изменить значенияSQL UPDATE: задаёт значения колонок строк, соответствующих предикату. Если предикат пуст — обновляются все строки.df_updateDatabase
Записи: посчитатьПодсчитывает количество документов, соответствующих фильтру.
db_countЗаписи: удалитьУдаляет документы по фильтру. multi=true удаляет все совпадения.db_deleteЗаписи: найтиПоиск документов по MongoDB-style фильтру с sort/limit/skip/projection. Возвращает объект {docs, count}: список найденных документов лежит в docs, поэтому цикл по результату строится по output.docs.db_findЗаписи: найти однуПервый документ, соответствующий фильтру. Возвращает объект {doc, found}: doc — документ или null, found — нашёлся ли он.db_find_oneЗаписи: добавитьВставка документа (или массива документов — тогда пакетная вставка) в коллекцию NoSQL-стора. Возвращает inserted_ids.db_insertЗаписи: изменитьОбновляет документы по фильтру MongoDB-style update-выражением ($set, $inc, $push, ...). Поддерживает upsert и multi.db_updateDiagnostics
Integrations
HTTP & Web
Загрузить веб-страницуИнструмент загрузки веб-страниц для ИИ-агента: читает контент URL и возвращает текст. Агент вызывает его для получения содержимого конкретных страниц. Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента».
fetch_webpageHTTP-запросВыполняет HTTP-запрос (GET/POST/PUT/PATCH/DELETE/HEAD) и возвращает статус, заголовки и тело ответа. Поддерживает JSON/text/form-тело, форму с файлами (multipart) и файл целиком, bearer/basic/custom-header авторизацию, шаблоны {{ }} в URL/headers/body. Ответ можно сохранить файлом в файлы пространства и передать дальше через порт «Файл». Защита от SSRF — запросы в приватные сети заблокированы.http_requestMCP-инструментИнструмент MCP через сохранённое подключение пространства (URL, auth, режим, tool).mcp_toolВеб-поискИщет в интернете и возвращает и ответ модели, и сами источники с выдержками текста. Работает и как обычная нода сценария (вход «Запрос»), и как инструмент ИИ-агента.websearchEmail: подключениеВыбор сохранённого email-подключения пространства. Учётные данные задаются в настройках пространства, не в сценарии.
email_configEmail: инструменты агентаПредоставляет email-операции (отправка, чтение, поиск) как инструменты для ИИ-агента. Подключение: нода «Email: подключение» в порт «Подключение Email» или сохранённое подключение, выбранное прямо в ноде (порт выигрывает). Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента».email_toolEmail: получить письмаПолучает письма из почтового ящика по критериям (UNSEEN, ALL, FROM ...). Возвращает список писем с заголовками и телом. Подключение: нода «Email: подключение» в порт «Подключение Email» или сохранённое подключение, выбранное прямо в ноде (порт выигрывает).fetch_emailsEmail: отправить письмоОтправляет email: получатель, тема, тело (plain text или HTML). Выполняется детерминированно (не как инструмент агента). Подключение: нода «Email: подключение» в порт «Подключение Email» или сохранённое подключение, выбранное прямо в ноде (порт выигрывает).send_emailCalendar
Календарь: подключение CalDAVВыбор сохранённого CalDAV-подключения пространства. Учётные данные в настройках пространства.
caldav_configКалендарь: удалить событиеDELETE ресурса календаря.calendar_delete_eventКалендарь: занятостьREPORT free-busy-query для заданных календарей.calendar_freebusyКалендарь: получить событиеGET одного ресурса календаря (iCalendar).calendar_get_eventКалендарь: все календариСписок коллекций календарей для подключённого аккаунта CalDAV.calendar_list_calendarsКалендарь: получить событияREPORT calendar-multiget для списка href.calendar_multigetКалендарь: изменить событиеПатч по схеме read-modify-write первого VEVENT в ресурсе.calendar_patch_eventКалендарь: создать или заменить событиеPUT ресурса iCalendar (создание без etag, обновление с If-Match).calendar_put_eventКалендарь: найти событияREPORT calendar-query для VEVENT или VTODO в диапазоне времени.calendar_queryКалендарь: приглашенияPUT планирующего сообщения (приглашение/ответ/отмена) в настроенный outbox.calendar_scheduleКалендарь: инструменты агентаИнструменты CalDAV для ИИ-агента. Подключение берётся из поля «Подключение CalDAV» на самой ноде или из ноды, подключённой к порту «Подключение CalDAV».calendar_toolFiles
Файлы: найти файлыВозвращает список файлов, подходящих под glob-шаблон, относительно корня настроенного хранилища.
file_globФайлы: прочитать файлЧитает текстовый файл из файлового хранилища.file_readФайлы: инструменты агентаДаёт ИИ-агенту файловые инструменты (fs_glob, fs_read, fs_write). По умолчанию работает с собственным хранилищем этого пространства; поставьте «Источник подключения» = «Внешнее подключение», чтобы указать на хранилище, подключённое к порту 'file_store'. По умолчанию только чтение — отметьте fs_write, чтобы разрешить модели создавать и перезаписывать файлы.file_toolФайлы: записать файлЗаписывает или заменяет строки в файле в файловом хранилище.file_writeФайлы: подключение WebDAVВыбирает сохранённое WebDAV-подключение этого пространства (Nextcloud, ownCloud, Yandex.Disk, …) как хранилище для File Glob/Read/Write/Tool. Учётные данные лежат в настройках пространства, а не на ноде.webdav_configФайлы: хранилище пространстваСобственное файловое хранилище текущего пространства — то же дерево, которое показывает вкладка Files. Подключайте его к File Glob/Read/Write/Tool; записанные туда файлы появятся во вкладке Files. Учётные данные не нужны.ws_store_configTelegram
Telegram: отправить сообщениеОтправляет сообщение в Telegram-чат. Использует бота, в которого задеплоен этот сценарий; поставьте «Источник подключения» = «Внешнее подключение», чтобы выбрать другого бота через порт «Подключение Telegram». Chat ID и текст задаются в конфиге (шаблоны поддерживаются); пустой Chat ID означает чат текущего Telegram-хода. Файлы, поданные на порт 'files', уходят после текста, каждый отдельным сообщением (документ/фото/аудио). Не отправить ни текста, ни файлов — ошибка, а не молчаливый no-op.
send_telegram_messageTelegram: реакцияСтавит (action=set) или снимает (action=clear) эмодзи-реакцию бота на сообщение в Telegram. Пустой Chat ID = чат текущего хода; шаблоны поддерживаются. Использует бота, в которого задеплоен этот сценарий; поставьте «Источник подключения» = «Внешнее подключение», чтобы выбрать другого бота через порт «Подключение Telegram».set_telegram_reactionTelegram: информация о чатеИнформация о чате и участниках. action: chat (метаданные), member_count (точное число участников), administrators (точный список админов), member (статус конкретного пользователя), known_members (ПРИБЛИЗИТЕЛЬНЫЙ список из записанных наблюдений — Bot API не умеет перечислять всех участников, поэтому молчуны в него не попадут), bot_rights (права самого бота: можно ли удалять сообщения и банить). Нужно подключение Telegram — кроме known_members: он отвечает из собственных таблиц платформы.telegram_chat_infoTelegram: управление чатомУправление чатом: название, описание, режим «только чтение» для всех (mute_everyone/unmute_everyone через setChatPermissions), создание и отзыв инвайт-ссылок, одобрение/отклонение заявок на вступление, индикатор «печатает…». Бот должен быть администратором. Есть dry_run. Использует бота, на которого опубликован сценарий; чтобы взять другого бота через порт «Подключение Telegram», переключите «Источник подключения» на «Внешнее подключение».telegram_chat_manageTelegram: подключениеВыбирает сохранённого Telegram-бота из пространства. Учётные данные лежат в настройках пространства, а не в сценарии — эта нода передаёт разрешённый токен нодам-действиям через их порт «Подключение Telegram».telegram_configTelegram: переслать сообщениеПересылает (forward — с плашкой «Переслано от») или копирует (copy — без указания источника, с возможностью заменить подпись) сообщение в другой чат. Типовой сценарий модерации: скопировать нарушение в лог-чат ДО удаления. Оба чата принимают числовой id или @channelusername; пустой «Откуда» — чат текущего хода. Использует бота, на которого опубликован сценарий; чтобы взять другого бота через порт «Подключение Telegram», переключите «Источник подключения» на «Внешнее подключение».telegram_forwardTelegram: получить файлСкачивает вложение Telegram по file_id и кладёт его в файловое хранилище файловой ссылкой — её можно подать в LLM/vision или в «Telegram: отправить сообщение». file_id берётся из записанной истории ({{ nodes.telegram_history_1.rows[0].media_file_id }}). Не для текущего сообщения: вложение сообщения, которое запустило сценарий, уже приходит на выход «Сообщение» ноды «Вход» — ведите его прямо в «Речь → Текст» или в модель. Bot API отдаёт файлы только до 20 МБ. Использует бота, на которого опубликован сценарий; чтобы взять другого бота через порт «Подключение Telegram», переключите «Источник подключения» на «Внешнее подключение».telegram_get_fileTelegram: история чатаЧитает записанную историю Telegram-чата: сообщения, которые бот наблюдал в группе/канале, включая те, что не запускали сценарий. Требует включённой галки «Записывать историю группы» в деплое И отключённого privacy mode у бота (или прав администратора) — иначе бот просто не видит сообщений. Chat ID пустой = чат текущего запуска. Выходы: Messages (для LLM), Records (сырые записи с message_id/file_id) и Transcript (текст). Это история группы, а не текущее сообщение: сообщение, которое запустило сценарий, — вместе с голосовым, фото или документом — приходит на выход «Сообщение» ноды «Вход»; ведите его прямо в «Речь → Текст» или в модель.telegram_historyTelegram: кнопкиОтправляет сообщение с inline-кнопками или прикрепляет кнопки к существующему сообщению. Кнопки несут command/args — при нажатии сценарий перезапускается с data.telegram.command/args/message_id. Использует бота, на которого опубликован сценарий; чтобы взять другого бота через порт «Подключение Telegram», переключите «Источник подключения» на «Внешнее подключение». Target 'reply_message' прикрепляет кнопки к ответу бота на этом ходе; он доставляется в конце хода.telegram_inline_keyboardTelegram: модерацияМодерация чата: удаление сообщений, бан/разбан, мьют/размьют, выдача и снятие админ-прав, закрепление. Бот должен быть администратором с соответствующим правом (can_delete_messages / can_restrict_members / can_pin_messages). Свои сообщения удаляются только младше 48 часов; delete_messages шлётся пачками по 100. Есть dry_run. Использует бота, на которого опубликован сценарий; чтобы взять другого бота через порт «Подключение Telegram», переключите «Источник подключения» на «Внешнее подключение».telegram_moderateTelegram: поиск по историиИщет по записанным сообщениям Telegram-чатов по целым словам, без словоформ. Ищет ТОЛЬКО по тому, что бот наблюдал — у Bot API нет поиска по истории. Область «Этот чат» использует Chat ID, а если он пуст — чат текущего хода; область «Все наблюдаемые чаты пространства» ищет по всему пространству и выбирается явно. Возвращает совпадения с message_id, автором и датой (самые свежие первыми).telegram_searchTelegram: инструменты агентаИнструмент для ИИ-агента: единый доступ к Telegram-чату — чтение (история/поиск/инфо), модерация (delete/ban/mute/pin) и управление (название/инвайты/заявки). Каждое действие включается отдельно в поле «Разрешённые действия»; список инструментов, который видит модель, фильтруется по типу текущего чата. Чат фиксируется конфигом или берётся из запуска — модель НЕ выбирает его. Есть dry_run и потолок длительности бана/мьюта. promote/demote недоступны принципиально. Использует бота, на которого опубликован сценарий; чтобы взять другого бота через порт «Подключение Telegram», переключите «Источник подключения» на «Внешнее подключение». Для модерации и управления боту нужны права администратора. Подключается ко входу «Расширения агента» ИИ-агента.telegram_toolsWidget
Bitrix24
Bitrix24: подключениеВыбор сохранённого подключения Bitrix24 (входящий вебхук) из пространства. Учётные данные задаются в настройках пространства, не в сценарии.
bitrix24_configBitrix24: REST-запросУниверсальный вызов метода Bitrix24 REST API (crm.lead.add, crm.deal.list, ...) через входящий вебхук. Подключение: нода «Bitrix24: подключение» в порт «Подключение Bitrix24» или сохранённое подключение, выбранное прямо в ноде (порт выигрывает). method и params (JSON-объект) поддерживают шаблоны {{ }}. Ошибка Bitrix24 роняет ноду — подключите выход «Ошибка», чтобы обработать её в сценарии.bitrix24_rest_callamoCRM
amoCRM: подключениеВыбор сохранённого amoCRM-подключения (поддомен + долгоживущий API-токен) из пространства. Учётные данные задаются в настройках пространства, не в сценарии.
amocrm_configamoCRM: REST-запросВыполняет произвольный REST-запрос к amoCRM API v4 (лиды/контакты/сделки/задачи — любой метод). Подключение: нода «amoCRM: подключение» в порт «Подключение amoCRM» или сохранённое подключение, выбранное прямо в ноде (порт выигрывает). Метод — выбор из списка; путь и тело поддерживают шаблоны. Ошибка amoCRM (401, 404, таймаут) роняет ноду — подключите выход «Ошибка», чтобы обработать её в сценарии.amocrm_rest_callVK
VK: информация о чатеСведения о беседе и её участниках. Действия: conversation (метаданные), members (точный список — требует у сообщества уровня «Администратор» в самой беседе), known_members (ПРИБЛИЗИТЕЛЬНЫЙ список из наших наблюдений: молчавших участников там нет — VK не отдаёт их сообществу). known_members отвечает из наших таблиц и подключения не требует.
vk_chat_infoVK: подключениеВыбор сохранённого VK-подключения (community/user access_token) из пространства. Учётные данные задаются в настройках пространства, не в сценарии.vk_configVK: переслать сообщениеПересылает сообщения в другой чат ВКонтакте. forward — с пометкой источника (снять её VK не позволяет). copy — пересобирает сообщение заново: текст и вложения уходят без указания, откуда они. Типичная форма модерации — «сначала в архив, потом удалить»: скопировать нарушающее сообщение в лог-беседу ДО удаления. Пустой From — чат текущего хода.vk_forwardVK: получить файлСкачивает вложение сообщения ВКонтакте и сохраняет его файловой ссылкой, пригодную для LLM/vision-ноды или для обратной отправки. Берёт conversation_message_id из записанной истории ({{ nodes.vk_history_1.rows[0].platform_message_ref }}): ссылки VK протухают, поэтому история хранит ссылку на вложение, а не URL, и сообщение перечитывается ради свежей ссылки.vk_get_fileVK: история чатаЧитает записанную историю чата ВКонтакте: сообщения, которые бот увидел в беседе или диалоге, включая те, что не запускали сценарий. Требует включённой записи истории в публикации И уровня доступа «Доступ ко всей переписке» у бота в самой беседе — иначе бот просто не видит сообщений. Пустой Peer ID — чат текущего хода. Выходы: Messages (для LLM), Records (сырые строки: platform_message_ref — номер сообщения в беседе, вложения) и Transcript (простой текст).vk_historyVK: кнопкиОтправляет сообщение с кнопками или прикрепляет кнопки к ответу бота за этот ход. Кнопка несёт command/args — нажатие перезапускает сценарий с trigger.vk.payload.command / args. Клиент VK сообщает в каждом ходе, умеет ли он рисовать кнопки: если не умеет, текст всё равно уходит, а в выводе будет keyboard_sent=false.vk_keyboardVK: модерацияДействия модерации в беседе ВКонтакте: удалить сообщения, исключить участника, закрепить или открепить. Бану и мьюту здесь неоткуда взяться — у VK нет таких методов для беседы. Требует прав администратора беседы у сообщества. Пустой Peer ID — чат текущего хода.vk_moderateVK: поиск по историиИщет по записанной истории ВКонтакте. Область: только текущий чат или все наблюдаемые чаты пространства. Ищет исключительно по тому, что бот успел записать — VK не опрашивается. Выходы: Matches (строки) и Transcript.vk_searchVK: отправить сообщениеОтправляет сообщение через VK API (messages.send). Подключение: нода «VK: подключение» в порт «Подключение VK» или сохранённое подключение, выбранное прямо в ноде (порт выигрывает). peer_id и текст задаются в конфиге (поддерживаются шаблоны). Ошибка VK роняет ноду — подключите выход «Ошибка», чтобы обработать её в сценарии.vk_send_messageVK: инструменты агентаИнструмент для ИИ-агента: одна ограниченная точка входа в чат ВКонтакте — чтение (история, поиск, беседа, участники) и модерация (удалить, исключить, закрепить, открепить). Каждое действие включается отдельно, а список инструментов дополнительно сужается типом текущего чата. Чат берётся из конфига или текущего хода — модель его НЕ выбирает. Есть dry_run. Бана, мьюта и назначения админов нет: у VK таких методов для беседы не существует. Модерация требует у сообщества прав администратора беседы. Подключается ко входу «Расширения агента» ИИ-агента выходом «Расширение агента».vk_tools