Интеграции с чатами (каналы)
Как AACWorkflow подключает агентов к чат-платформам — единый движок каналов и адаптеры под каждую платформу для Lark (飞书) и Slack — включая входной конвейер, сессии и авторизацию.
Канал подключает агента AACWorkflow к чат-платформе, чтобы ваша команда могла работать с ним там, где уже общается. Сегодня есть два канала — Lark (飞书) и Slack — и оба работают на одном движке: платформо-независимое ядро плюс тонкий адаптер под каждую платформу. Добавить платформу — значит «реализовать адаптер», а не «перестроить конвейер».
Установка (installation) — это единица, которая всё связывает: один бот, привязанный к одной паре (workspace, agent). Входящие сообщения направляются в установку, а затем проходят через общий конвейер; ответ агента отправляется обратно в тот же чат.
Архитектура
Входной конвейер (общий)
Каждое входящее сообщение — из Lark или Slack — проходит через одну и ту же упорядоченную последовательность шагов в Router движка. Адаптер платформы поставляет только специфичные для платформы части (ResolverSet); сама логика (policy) живёт в движке.
- Маршрутизация в установку — сопоставить событие с
channel_installation(→ workspace + agent). Lark маршрутизирует поapp_id; Slack — по app id, который несёт событие. - Фильтр адресации — в группе/канале дальше проходят только сообщения, которые @-упоминают бота; праздная болтовня в группе отбрасывается (не читается).
- Дедупликация — двухфазный захват
(installation, message_id)гарантирует обработку ровно один раз, даже между репликами сервера. - Идентификация + авторизация — сопоставить платформенный user id отправителя с пользователем AACWorkflow (привязка аккаунта), затем повторно проверить членство в рабочем пространстве. Непривязанные отправители получают приглашение «привяжите аккаунт»; не-участники отбрасываются.
- Сессия — найти или создать чат-сессию для этого разговора и добавить сообщение (см. Сессии).
- Запуск — поставить в очередь задачу агента; демон выполняет агента, и ответ отправляется обратно в чат.
Сессии и контекст
Контекст агента — это транскрипт чат-сессии: сообщения, которые со временем были поглощены (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 шифрование токенов в состоянии покоя для обоих каналов уже настроено — с этой стороны вам ничего не нужно настраивать.
Далее
- Интеграция с Lark Bot — установка по сканированию, ЛС / @-упоминание /
/issue - Интеграция с Slack Bot — настройка своего приложения (манифест + токены), боты для каждого агента
- Агенты · Чат · Задачи
Входящие и подписки
Когда AACWorkflow вас уведомляет и как отключить уведомления по задачам, которые вам не важны.
Интеграция с GitHub
Подключите GitHub App один раз, и PR, содержащие идентификатор задачи в ветке, заголовке или теле, автоматически привяжутся к задаче — а при вливании PR задача перейдёт в «Готово».