AACWorkflow Docs

Интеграции с чатами (каналы)

Как AACWorkflow подключает агентов к чат-платформам — единый движок каналов и адаптеры под каждую платформу для Lark (飞书) и Slack — включая входной конвейер, сессии и авторизацию.

Канал подключает агента AACWorkflow к чат-платформе, чтобы ваша команда могла работать с ним там, где уже общается. Сегодня есть два канала — Lark (飞书) и Slack — и оба работают на одном движке: платформо-независимое ядро плюс тонкий адаптер под каждую платформу. Добавить платформу — значит «реализовать адаптер», а не «перестроить конвейер».

Установка (installation) — это единица, которая всё связывает: один бот, привязанный к одной паре (workspace, agent). Входящие сообщения направляются в установку, а затем проходят через общий конвейер; ответ агента отправляется обратно в тот же чат.

Архитектура

Rendering diagram…

Входной конвейер (общий)

Каждое входящее сообщение — из Lark или Slack — проходит через одну и ту же упорядоченную последовательность шагов в Router движка. Адаптер платформы поставляет только специфичные для платформы части (ResolverSet); сама логика (policy) живёт в движке.

  1. Маршрутизация в установку — сопоставить событие с channel_installation (→ workspace + agent). Lark маршрутизирует по app_id; Slack — по app id, который несёт событие.
  2. Фильтр адресации — в группе/канале дальше проходят только сообщения, которые @-упоминают бота; праздная болтовня в группе отбрасывается (не читается).
  3. Дедупликация — двухфазный захват (installation, message_id) гарантирует обработку ровно один раз, даже между репликами сервера.
  4. Идентификация + авторизация — сопоставить платформенный user id отправителя с пользователем AACWorkflow (привязка аккаунта), затем повторно проверить членство в рабочем пространстве. Непривязанные отправители получают приглашение «привяжите аккаунт»; не-участники отбрасываются.
  5. Сессия — найти или создать чат-сессию для этого разговора и добавить сообщение (см. Сессии).
  6. Запуск — поставить в очередь задачу агента; демон выполняет агента, и ответ отправляется обратно в чат.

Сессии и контекст

Контекст агента — это транскрипт чат-сессии: сообщения, которые со временем были поглощены (ingested) в эту сессию. Модель транскрипта универсальна (используется каждым каналом). Что различается для каждой платформы — так это ключ изоляции сессии, который составляет адаптер:

ПлатформаКлюч изоляцииЭффект
Lark / 飞书id чатаОдна сессия на чат/группу — последовательные реплики в одном чате накапливаются в один транскрипт (многоходовая память).
SlackЛС: канал; канал: channel + thread rootКаждое ЛС — одна сессия; каждый тред с @bot — своя сессия, поэтому два треда в одном канале не смешиваются.

В группе поглощаются только сообщения, которые @-упоминают бота. Ни один канал сегодня не читает прочие (без @) сообщения канала или историю прокрутки, поэтому агент не увидит сообщений, в которых к нему не обращались. Получение окружающей истории в качестве контекста — запланированное улучшение.

Авторизация

Два независимых барьера защищают бота в общей группе — оба применяются в движке для каждого сообщения, одинаково для Lark и Slack:

  • Привязка аккаунта (аутентификация) — платформенный user id отправителя должен быть связан с пользователем AACWorkflow. При первом обращении к боту человек получает одноразовую ссылку, чтобы привязать свою личность к своему собственному аккаунту AACWorkflow; до этого агент не запускается.
  • Членство в рабочем пространстве (авторизация) — привязанный пользователь AACWorkflow должен быть участником рабочего пространства установки, что проверяется при каждом сообщении. Не-участники молча отбрасываются.

Поэтому добавлять бота в публичный канал безопасно: управлять агентом могут только участники рабочего пространства, привязавшие свою личность, и каждый отправитель проверяется независимо. Пользовательские подсказки смотрите на страницах отдельных платформ.

Два канала

Lark (飞书) — установка по сканированию. Администратор рабочего пространства привязывает агента, сканируя QR-код приложением Lark; без шагов в консоли разработчика. Один Bot на агента. См. Интеграция с Lark Bot.

Slack — принесите своё приложение. Администратор рабочего пространства создаёт Slack app, устанавливает его в свой Slack workspace и вставляет его bot token + app-level token в AACWorkflow. Каждый агент получает собственное Slack app, поэтому несколько агентов могут иметь по отдельному боту в одном Slack workspace. Манифест и пошаговую настройку смотрите в Интеграция с Slack Bot.

В AACWorkflow Cloud шифрование токенов в состоянии покоя для обоих каналов уже настроено — с этой стороны вам ничего не нужно настраивать.

Далее