Перейти к содержимому

Подключите Slack к рабочему пространству

К концу этого учебника у вас будет:

  • приложение Slack, созданное для вашего рабочего пространства, с уже настроенными нужными разрешениями и событиями
  • живое соединение между Slack и Control Center
  • ваш собственный аккаунт Slack, привязанный к вашему пользователю Control Center
  • агент, который отвечает вам в треде Slack, и тикет, созданный из слэш-команды

Перед началом вам потребуется:

  • Ваше первое рабочее пространство и Запустите первого агента пройдены — рабочее пространство без агентов может получить сообщение из Slack, но отвечать на него некому
  • у агента CEO рабочего пространства заданы адаптер и модель в разделе Настройки → Рабочее пространство → Агенты. Мост будит CEO, а не агента, которого вы настроили в предыдущем учебнике, а агент без адаптера работает на встроенном цикле с моделью Anthropic по умолчанию.
  • роль owner или admin в рабочем пространстве Control Center (подключение чат-приложения действует от имени всего рабочего пространства)
  • право создавать и устанавливать приложения в вашем рабочем пространстве Slack

Ничего из перечисленного не требует публичного адреса, туннеля или входящего порта. Control Center устанавливает исходящее соединение со Slack по Socket Mode, поэтому всё это работает с ноутбука за NAT.

Шаг 1: Получите токен конфигурации приложения Slack

Заголовок раздела «Шаг 1: Получите токен конфигурации приложения Slack»

Это единственный секрет, который нужно добыть вручную. Он позволяет Control Center создать приложение, а затем изменять его за вас.

  1. Откройте api.slack.com/apps
  2. Прокрутите до раздела токенов конфигурации приложения внизу страницы
  3. Создайте пару токенов для своего рабочего пространства Slack
  4. Скопируйте токен обновления — он начинается с xoxe-
  1. В Control Center откройте раздел Настройки → Рабочее пространство → Основные и найдите карточку Чат-мосты
  2. В блоке Slack нажмите Создать приложение за меня
  3. Вставьте токен конфигурации приложения
  4. Проверьте, как будет выглядеть бот:
    • Имя приложения: как приложение отображается в Slack, например Control Center · Acme
    • Имя бота: то, что люди вводят после @, например control-center
    • Краткое описание и Что бот говорит о своих возможностях
    • Слэш-команда: по умолчанию cc, поэтому команда — /cc
    • Личные сообщения: оставьте включёнными, чтобы участники могли писать боту в личку
  5. Нажмите Создать приложение

Control Center собирает всё определение приложения — включённый Socket Mode, нужные боту разрешения и подписки на события, слэш-команду, вкладку Messages — и создаёт его в Slack.

Шаг 3: Завершите два шага, которые под силу только Slack

Заголовок раздела «Шаг 3: Завершите два шага, которые под силу только Slack»

У Slack нет API для создания токена уровня приложения или установки приложения, поэтому диалог выдаёт и то и другое в виде ссылок:

  1. Создать токен уровня приложения — открывает Basic Information → App-Level Tokens. Создайте токен с разрешением connections:write и скопируйте его. Он начинается с xapp-
  2. Установить приложение — открывает Install App. Установите его в своё рабочее пространство, затем скопируйте Bot User OAuth Token. Он начинается с xoxb-

Сохраните оба значения для следующего шага.

  1. Вернувшись в диалог, нажмите Вставить учётные данные
  2. Введите Токен бота (xoxb-…) и Токен приложения (xapp-…)
  3. Оставьте Токен конфигурации приложения пустым — тот, что из шага 1, уже сохранён (Slack обновил его, и Control Center сохранил новый)
  4. Нажмите Подключить

Control Center проверяет токен бота в Slack, прежде чем что-либо сохранить, а затем открывает сокет. Теперь в строке показаны имя бота и название вашего рабочего пространства Slack с меткой Онлайн.

Соединение делает бота доступным, а привязка делает узнаваемым вас. Пока ваша личность в Slack не привязана, бот не станет действовать по вашим сообщениям — он никогда не приписывает сообщение тому, кто установил приложение.

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

  1. Перейдите в раздел Настройки → Рабочее пространство → Профиль и идентичность и найдите карточку Привязанные аккаунты чата
  2. Нажмите Привязать мой аккаунт Slack
  3. Скопируйте показанную команду, например /cc link K7M2QP
  4. В Slack отправьте эту команду боту в личном сообщении
  5. Бот ответит «Привязано — вы …»

Код одноразовый и истекает через 15 минут. Если ваш адрес электронной почты в Slack совпадает с пользователем Control Center, который уже является участником этого рабочего пространства, мост привяжет вас автоматически при первом же обращении к нему, и этот шаг можно пропустить.

Если вы упомянете бота до этого, он откажет и объяснит причину. Все три отказа различаются, поэтому читайте, какой именно вы получили:

  • Непривязанный отправитель: бот рассказывает, как привязать аккаунт. Вернитесь к этому шагу.
  • Привязан, но не участник этого рабочего пространства: попросите администратора пригласить вас.
  • Участник с ролью только для чтения (viewer или guest): бот не начнёт работу от вашего имени.
  1. В Slack пригласите бота в канал: /invite @control-center

  2. Упомяните его с настоящим запросом:

    @control-center сделай сводку по открытым PR в репозитории api

Мост:

  1. Создаёт пространство Control Center для этого треда Slack, названное по каналу Slack и вашему запросу
  2. Будит агента на входе рабочего пространства (агента CEO, если он есть, иначе первого агента)
  3. Передаёт ответ агента потоком обратно в тред Slack по мере того, как он пишется

Отвечайте в том же треде Slack, чтобы продолжить, — новые упоминания не нужны, потому что тред Slack теперь связан с Control Center. Или напишите боту в личные сообщения вместо канала; каждый разговор в личке ведёт собственное пространство Control Center, с заголовком и строкой состояния «is thinking…», пока агент работает.

Потоковая передача требует API потоковой передачи Slack, который есть не во всех планах. Если вашему приложению в нём отказывают, мост перестаёт пытаться на всём соединении и вместо этого публикует каждый ответ одним сообщением, а карточка Чат-мосты показывает «Потоковая передача для этого приложения Slack выключена — ответы приходят одним сообщением». Всё остальное работает так же.

/cc ticket Fix the flaky login test | It fails on CI about once a day.

Бот отвечает ключом созданного тикета. Тикет — обычный локальный тикет Control Center, созданный вами, готовый к назначению агенту. /cc help перечисляет всё, что умеет команда.

Вы создали приложение Slack из Control Center, подключили его через исходящий сокет, привязали свою личность Slack к своему пользователю Control Center и управляли агентом из треда Slack. Всё, что происходило в Slack, есть и в Control Center: тред Slack — это пространство, ответ — транскрипт, тикет — тикет.

Далее: Настроить интеграцию Slack описывает ручной путь, ротацию токенов и устранение неполадок. А о модели, лежащей в основе, читайте в разделе Чат-мосты.