Интеграция со Slack-ботом
Подключите агента AACWorkflow к собственному приложению Slack — создайте приложение из манифеста, установите его, вставьте bot- и app-level-токены, а затем @-упоминайте его, пишите ему в личку или вводите /issue прямо из Slack.
Подключите любого агента к Slack-боту, и ваша команда сможет работать с ним прямо из Slack — писать боту в личку, @-упоминать его в канале или вводить /issue, чтобы завести задачу AACWorkflow, не открывая приложение.
Slack использует модель собственного приложения (bring-your-own-app, BYO): администратор рабочего пространства создаёт приложение Slack, устанавливает его в своё рабочее пространство Slack и вставляет его токены в AACWorkflow. Каждый агент получает своё собственное приложение Slack — так что несколько агентов могут иметь по отдельному, независимо @-упоминаемому боту в одном и том же рабочем пространстве Slack. (Это отличается от Lark, где привязка происходит по сценарию «сканировать для установки».)
Вся настройка описана ниже и занимает около пяти минут. В итоге у вас будет два токена для вставки в AACWorkflow:
- Bot-токен — начинается с
xoxb- - App-level-токен — начинается с
xapp-
Настройте своё приложение Slack
1. Создайте приложение из манифеста
- Перейдите на https://api.slack.com/apps и нажмите Create New App.
- Выберите From a manifest.
- Выберите рабочее пространство Slack, в которое нужно установить приложение.
- Переключитесь на вкладку YAML, вставьте манифест ниже, проверьте и создайте приложение.
display_information:
name: AACWorkflow
features:
app_home:
home_tab_enabled: false
messages_tab_enabled: true
messages_tab_read_only_enabled: false
bot_user:
display_name: AACWorkflow
always_online: true
slash_commands:
- command: /issue
description: Create an AACWorkflow issue
usage_hint: "[title]"
oauth_config:
scopes:
bot:
- app_mentions:read
- channels:history
- groups:history
- im:history
- mpim:history
- chat:write
- reactions:write
- users:read
- commands
settings:
event_subscriptions:
bot_events:
- app_mention
- message.im
- message.channels
- message.groups
- message.mpim
interactivity:
is_enabled: false
org_deploy_enabled: false
socket_mode_enabled: true
token_rotation_enabled: falseЭтот манифест настраивает всё, что нужно AACWorkflow, так что вручную ничего задавать не придётся:
| Раздел | Зачем он нужен |
|---|---|
app_home.messages_tab_enabled: true | Позволяет участникам открывать бота и писать ему в личку. Без этого боту нельзя написать напрямую. |
bot_user | Создаёт идентичность бота, которого @-упоминают и который публикует ответы. |
chat:write | Публикует ответы агента обратно в Slack. |
reactions:write | Добавляет реакцию 👀 к вашему сообщению, пока агент работает, и убирает её, когда он отвечает. Без этого разрешения индикатор молча пропускается — всё остальное продолжает работать. |
app_mentions:read + событие app_mention | Получает @-упоминания в каналах. |
im:history + message.im | Получает личные сообщения боту (читается каждое сообщение в личке). |
channels:history / groups:history / mpim:history + соответствующие события message.* | Получает сообщения в публичных каналах, приватных каналах и групповых личках. В них бот реагирует только на сообщения, которые его @-упоминают. |
users:read | Требуется, чтобы AACWorkflow мог проверить (через bots.info), что оба ваших токена принадлежат одному и тому же приложению. |
commands | Разрешение бота, включающее slash-команду /issue (работает в паре с features.slash_commands). Без него обновление манифеста и переустановка не предоставят команду. |
socket_mode_enabled: true | Бот подключается наружу через Socket Mode — публичный URL / request URL не нужен. |
interactivity.is_enabled: false | Подсказки AACWorkflow — это обычные ссылки, а не кнопки, поэтому интерактивность не нужна. |
slash_commands (/issue) | Регистрирует slash-команду /issue, чтобы любой мог завести задачу AACWorkflow прямо из поля сообщения. Доставляется через Socket Mode — без request URL. |
OAuth redirect URL отсутствует, потому что BYO не использует OAuth.
Хотите конкретное имя в Slack? Измените display_information.name и features.bot_user.display_name (например, на имя вашего агента) до создания или отредактируйте их позже в разделе App Home. Slack показывает бота по его отображаемому имени бота, которое может отличаться от имени приложения.
2. Установите приложение и скопируйте Bot-токен
- В левой навигации приложения откройте Install App (или OAuth & Permissions).
- Нажмите Install to Workspace и подтвердите.
- Скопируйте Bot User OAuth Token — он начинается с
xoxb-. Это ваш Bot-токен.
3. Создайте App-level-токен
App-level-токен авторизует подключение через Socket Mode. Его можно создать только в консоли (он не является частью OAuth).
- Откройте Basic Information → App-Level Tokens и нажмите Generate Token and Scopes.
- Дайте ему любое имя.
- Нажмите Add Scope и выберите
connections:writeиз списка (это выбор из списка — выберите его, не вводите вручную). - Нажмите Generate, затем скопируйте токен — он начинается с
xapp-. Это ваш App-level-токен.
4. Подключите его в AACWorkflow
- Откройте агента в Agents → ваш агент → вкладка Integrations (или раздел Integrations в левой боковой панели).
- Нажмите Connect Slack.
- Вставьте Bot-токен (
xoxb-) и App-level-токен (xapp-), затем нажмите Connect. - У агента отобразится Connected to Slack. Теперь бот слушает через своё собственное подключение по Socket Mode.
Оба токена должны быть от одного и того же приложения Slack, и это приложение сопоставляется ровно с одним агентом. Подключение приложения, которое уже подключено к другому агенту или рабочему пространству, отклоняется. Чтобы перенести приложение на другого агента, сначала отключите его; повторное подключение агента с новым приложением обновляет бота этого агента на месте.
Настраиваете это для нескольких агентов? Повторите весь процесс по разу для каждого агента — каждый агент получает своё приложение Slack и свою пару токенов, и они отображаются как отдельные боты в вашем рабочем пространстве Slack.
Что делает интеграция
| Поверхность | Поведение |
|---|---|
| Агент → Integrations | Владельцы и администраторы видят Connect Slack; после подключения это меняется на бейдж Connected to Slack с элементом управления Disconnect. |
| Личка боту | Участник рабочего пространства пишет боту напрямую. Разговор становится сессией чата AACWorkflow с агентом; читается каждое сообщение в личке. |
| @-упоминание в канале | Пригласите бота (/invite @your-bot) и @-упомяните его. Читается только сообщение с упоминанием — бот не слушает весь канал. Каждый тред с @bot — это отдельная сессия. |
Slash-команда /issue | Введите /issue <описание> (в канале или в личке), и агент превращает ваше описание на обычном языке в правильно оформленную задачу AACWorkflow, атрибутированную вам. Он отвечает приватно для подтверждения — вы получите уведомление AACWorkflow, когда задача будет готова. @-упоминание не требуется. |
| Ответ | Ответ агента публикуется обратно в ту же личку или тред. |
Использование бота (участники)
Первое сообщение: привяжите свой аккаунт
Когда вы впервые @-упоминаете бота или пишете ему в личку, он отвечает подсказкой привязать ваш аккаунт. Нажмите на ссылку, войдите в AACWorkflow, и ваша идентичность в Slack привязывается к вашему членству в AACWorkflow — именно это позволяет агенту действовать от вашего имени (например, /issue заводит задачу под вашим именем). Ссылка одноразовая и истекает примерно через 15 минут; просто напишите боту снова, чтобы получить новую.
Привязка выполняется только один раз на рабочее пространство Slack. Если одно и то же рабочее пространство AACWorkflow запускает несколько ботов в одном рабочем пространстве Slack (одно приложение на агента), первый привязанный вами бот обучает остальных: при отправке сообщения второму боту эта привязка используется автоматически, без повторного запроса. (Привязка снова нужна только для бота в другом рабочем пространстве Slack или для бота, подключённого к другому рабочему пространству AACWorkflow.)
Использовать бота могут только участники рабочего пространства. Если вы не участник или пропустили привязку идентичности, бот не запустится — ваше сообщение отбрасывается (фиксируется для аудита, без его содержимого).
Чат и /issue
- В канале — бот не присоединяется автоматически. Один раз выполните
/invite @your-bot, затем@your-bot <ваше сообщение>. Упоминайте его заново для каждого следующего сообщения (бот читает только сообщения, которые его упоминают). - В личке — откройте бота из раздела Apps боковой панели Slack и пишите ему напрямую; упоминание не нужно.
- Завести задачу — используйте slash-команду
/issue, например/issue логин-редирект сломан в Safari. Опишите на обычном языке; агент напишет за вас правильный заголовок и структурированное описание и заведёт задачу. Это работает в канале или в личке (@-упоминание не нужно) и отвечает приватно для подтверждения — вы получите уведомление AACWorkflow, когда задача будет создана. Впервые обращающиеся пользователи получают одноразовую ссылку для подключения своего аккаунта.
Управление и отключение
Управление в масштабе рабочего пространства находится в Settings → Integrations:
- Connected bots перечисляет каждого бота в рабочем пространстве и агента, к которому привязан каждый из них (видно всем участникам).
- Disconnect доступно только владельцу / администратору. Оно останавливает получение ботом сообщений Slack и разрывает его подключение; запись об установке сохраняется для аудита, и позже вы можете подключиться снова.
Права доступа
- Подключение / отключение требуют прав владельца или администратора рабочего пространства.
- Общение с ботом требует быть участником рабочего пространства с привязанной идентичностью Slack. Все остальные отбрасываются.
- Тела отброшенных сообщений никогда не сохраняются — только причина отбрасывания, для аудита.
Далее
- Интеграции чата — как работают движок каналов, сессии и авторизация
- Агенты · Чат · Задачи
Интеграция с ботом Lark
Привяжите агента AACWorkflow к боту Lark (飞书), а затем общайтесь с ним из личного чата или группы Lark — упоминайте его через @, ведите обычную переписку или введите /issue, чтобы создать задачу AACWorkflow, не покидая Lark.
Устранение неполадок
Частые проблемы AACWorkflow Cloud и локального демона — симптомы, причины, исправление.