temporality
ENИзменить страницу↗
Автоматизация

Входящие и каналы

Подключаем Matrix, Telegram, Slack, Mattermost и вебхуки — агент получает задачи из чата вашей команды.

Temporality умеет принимать задачи из мессенджеров: вы пишете в командный чат — intake-конвейер разбирает сообщение и заводит работу нужному агенту. Страницы: Входящие (/inbound) — конвейер и статусы; Каналы (Настройки → Каналы доставки) — транспорты.

#Каналы доставки

Вопросы агента (ask_human) доставляются получателю в его предпочтительный канал; настраиваются в профиле пользователя. Встроенный канал — почта вопросов в приложении (Runs → вопросы). Внешние транспорты:

Канал Направление Настройка
Matrix доставка вопроса homeserver + токен бота; адрес — ID комнаты
Telegram доставка вопроса токен бота; адрес — chat ID
Mattermost доставка + входящие (WebSocket) base URL + токен бота
Slack доставка + входящие (Events API) bot token + signing secret
Webhook входящие секрет подписи

Каналы редактируются в UI без перезапуска (значения из БД перекрывают env); секреты обратно не возвращаются — только признак «установлен». Доставка не блокирует ран: сбой транспорта фиксируется событием, вопрос остаётся в UI. Ответы на ask_human можно давать прямо в чате: реплай в двустороннем канале (Matrix, Mattermost, Slack) маршрутизируется в ждущий ран; для командных вопросов побеждает первый ответ. Решения по подтверждениям операций — в интерфейсе.

#Intake-конвейер

Сообщение пользователя по собственной инициативе проходит классификацию:

Класс Что происходит
task Новая задача: резолв проекта (по упоминанию, search_projects, уточняющий вопрос) → start_task
amendment Поправка: run_status показывает ваши прошлые раны, интейк уточняет, к какому относить, и запускает продолжение
status Вопрос о прогрессе — отвечается по данным без запуска работы
cancel Отмена ранее запущенного рана отправителя
chatter Без работы — вежливый ответ
reply Ответ на вопрос агента — доставляется в ждущий ран

Конвейер включается по проекту тумблером «Принимать задачи из каналов» и ограничен политиками оргструктуры, лимитом отправителя (KERNEL_INTAKE_MAX_PER_HOUR) и сроком хранения тел (KERNEL_INTAKE_RETENTION_DAYS). Аудит цепочки «сообщение → intake-ран → ран задачи» — без тел сообщений.

#Файлы и альбомы

Сообщение с несколькими вложениями доходит как одна задача со всеми файлами, а не россыпь отдельных ранов. В Matrix несколько файлов плюс текст — это несколько независимых событий протокола: клиент шлёт каждое после загрузки своего файла, поэтому они приходят разными порциями. Конвейер собирает сообщения одного отправителя в комнате за короткое окно (пара секунд тишины) и склеивает вложения с текстом; в Telegram альбом («media group») собирается целиком тем же способом. Из-за этого окна входящее сообщение получает задержку в пару секунд — это цена одной задачи вместо трёх. Файлы, отправленные вдогонку работающей задаче, попадают в её рабочий каталог и доносятся агенту как заметка — отдельный ран не создаётся.

#Что видит пользователь

В разделе Входящие — все сообщения со статусами (получено → классифицировано → уточняется → направлено → ответлено в чат) и результатом. Ответ intake-агента доставляется в тот же чат, откуда пришло сообщение: куда легла задача, какое уточнение нужно, статус по запросу или вежливое закрытие без работы.