AACWorkflow Docs

Slack Bot 연동

AACWorkflow 에이전트를 자체 Slack 앱에 연결하세요 — 매니페스트로 앱을 만들고, 설치한 다음, bot + app-level 토큰을 붙여넣고, Slack 안에서 @로 멘션하거나 DM하거나 /issue를 입력하세요.

아무 에이전트나 Slack 봇에 연결하면, 팀이 Slack 안에서 바로 그 에이전트와 함께 일할 수 있습니다 — 봇에게 DM을 보내거나, 채널에서 @로 멘션하거나, /issue를 입력해 앱을 열지 않고도 AACWorkflow 이슈를 생성하세요.

Slack은 자체 앱 사용(BYO) 모델을 따릅니다: 워크스페이스 admin이 Slack 앱을 만들고, 자신의 Slack 워크스페이스에 설치한 다음, 토큰을 AACWorkflow에 붙여넣습니다. 각 에이전트가 자체 Slack 앱을 갖습니다 — 그래서 하나의 Slack 워크스페이스 안에서 여러 에이전트가 각각 별개로 @로 멘션할 수 있는 봇을 가질 수 있습니다. (바인딩이 스캔하여 설치하는 방식인 Lark와는 다릅니다.)

전체 설정은 아래에 있으며 약 5분이 걸립니다. 마지막에는 AACWorkflow에 붙여넣을 두 개의 토큰을 얻게 됩니다:

  • Bot tokenxoxb-로 시작
  • App-level tokenxapp-로 시작

Slack 앱 설정하기

1. 매니페스트로 앱 만들기

  1. https://api.slack.com/apps로 이동해 Create New App을 클릭합니다.
  2. From a manifest를 선택합니다.
  3. 앱을 설치할 Slack 워크스페이스를 고릅니다.
  4. 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멤버가 봇을 열어 DM할 수 있게 합니다. 이것이 없으면 봇에게 직접 메시지를 보낼 수 없습니다.
bot_user@로 멘션되고 답변을 게시하는 봇 신원을 생성합니다.
chat:write에이전트의 답변을 Slack으로 다시 게시합니다.
reactions:write에이전트가 처리하는 동안 메시지에 👀 반응을 추가하고, 답변하면 제거합니다. 이 스코프가 없으면 표시가 조용히 건너뛰어집니다 — 나머지 기능은 모두 정상 동작합니다.
app_mentions:read + app_mention 이벤트채널에서 @-멘션을 받습니다.
im:history + message.im봇에게 보내는 DM을 받습니다(모든 DM 메시지를 읽습니다).
channels:history / groups:history / mpim:history + 대응하는 message.* 이벤트공개 채널, 비공개 채널, 그룹 DM의 메시지를 받습니다. 이런 곳에서 봇은 자신을 @로 멘션한 메시지에만 반응합니다.
users:readAACWorkflow가 두 토큰이 같은 앱에 속하는지 (bots.info를 통해) 확인하는 데 필요합니다.
commands/issue 슬래시 명령을 활성화하는 bot 스코프입니다(features.slash_commands와 짝을 이룹니다). 이것이 없으면 매니페스트를 업데이트하고 재설치해도 명령이 부여되지 않습니다.
socket_mode_enabled: true봇이 Socket Mode로 밖으로 연결합니다 — 공개 URL / request URL이 필요 없습니다.
interactivity.is_enabled: falseAACWorkflow의 안내는 버튼이 아니라 일반 링크라서, interactivity가 필요 없습니다.
slash_commands(/issue)/issue 슬래시 명령을 등록해, 누구나 메시지 입력창에서 AACWorkflow 이슈를 생성할 수 있게 합니다. Socket Mode로 전달되며 요청 URL이 필요 없습니다.

OAuth redirect URL은 없습니다. BYO는 OAuth를 사용하지 않기 때문입니다.

Slack에서 특정 이름을 쓰고 싶나요? 생성하기 전에 display_information.namefeatures.bot_user.display_name을 (예: 에이전트 이름으로) 변경하거나, 나중에 App Home에서 편집하세요. Slack은 봇을 bot display name으로 표시하며, 이는 앱 이름과 다를 수 있습니다.

2. 앱 설치하고 Bot token 복사하기

  1. 앱의 왼쪽 내비게이션에서 Install App(또는 OAuth & Permissions)을 엽니다.
  2. Install to Workspace를 클릭하고 승인합니다.
  3. Bot User OAuth Token을 복사합니다 — xoxb-로 시작합니다. 이것이 당신의 Bot token입니다.

3. App-level token 생성하기

app-level token은 Socket Mode 연결을 인가합니다. 콘솔에서만 생성할 수 있습니다(OAuth의 일부가 아닙니다).

  1. Basic Information → App-Level Tokens를 열고 Generate Token and Scopes를 클릭합니다.
  2. 아무 이름이나 지정합니다.
  3. Add Scope를 클릭하고 목록에서 **connections:write**를 고릅니다(선택기이므로 — 입력하지 말고 선택하세요).
  4. Generate를 클릭한 다음 토큰을 복사합니다 — xapp-로 시작합니다. 이것이 당신의 App-level token입니다.

4. AACWorkflow에서 연결하기

  1. Agents → 당신의 에이전트Integrations 탭(또는 왼쪽 사이드바의 Integrations 섹션)에서 에이전트를 엽니다.
  2. Connect Slack을 클릭합니다.
  3. Bot token(xoxb-)과 App-level token(xapp-)을 붙여넣은 다음 Connect를 클릭합니다.
  4. 에이전트에 Connected to Slack이 표시됩니다. 봇은 이제 자체 Socket Mode 연결로 수신 대기합니다.

두 토큰은 같은 Slack 앱에서 와야 하며, 그 앱은 정확히 하나의 에이전트에 매핑됩니다. 이미 다른 에이전트나 워크스페이스에 연결된 앱을 연결하는 것은 거부됩니다. 앱을 다른 에이전트로 옮기려면 먼저 연결을 해제하세요. 앱으로 에이전트를 다시 연결하면 그 에이전트의 봇이 그 자리에서 갱신됩니다.

여러 에이전트에 설정하나요? 에이전트당 전체 과정을 한 번씩 반복하세요 — 각 에이전트가 자체 Slack 앱과 자체 토큰 한 쌍을 가지며, Slack 워크스페이스에 별개의 봇으로 나타납니다.

연동이 하는 일

위치동작
Agent → Integrationsowner와 admin에게는 Connect Slack이 보이며, 연결되면 Connected to Slack 배지와 Disconnect 컨트롤로 바뀝니다.
봇에게 DM워크스페이스 멤버가 봇에게 직접 메시지를 보냅니다. 그 대화는 에이전트와의 AACWorkflow chat 세션이 되며, 모든 DM 메시지를 읽습니다.
채널에서 @-멘션봇을 초대(/invite @your-bot)하고 @로 멘션하세요. 멘션한 메시지만 읽으며, 봇이 채널 전체를 듣지는 않습니다. 각 @bot 스레드가 자체 세션입니다.
/issue 슬래시 명령/issue <설명>을(채널이나 DM에서) 입력하면 에이전트가 당신의 자연어 설명을 잘 정리된 AACWorkflow 이슈로 만들어 당신 이름으로 등록합니다. 먼저 본인에게만 접수 확인을 비공개로 답하고, 이슈가 준비되면 AACWorkflow 알림을 받습니다 — @ 멘션이 필요 없습니다.
답변에이전트의 답변은 같은 DM 또는 스레드로 다시 게시됩니다.

봇 사용하기 (멤버)

첫 메시지: 계정 연결하기

봇을 처음 @로 멘션하거나 DM하면, 계정을 연결하라는 안내로 답합니다. 링크를 탭하고 AACWorkflow에 로그인하면, 당신의 Slack 신원이 AACWorkflow 멤버십에 바인딩됩니다 — 바로 이 단계가 에이전트로 하여금 당신을 대신해 행동하게 합니다(예: /issue는 당신 이름으로 이슈를 생성합니다). 이 링크는 일회용이며 약 15분 후에 만료됩니다. 새 링크가 필요하면 봇에게 다시 메시지를 보내세요.

연결은 Slack 워크스페이스당 한 번만 하면 됩니다. 같은 AACWorkflow 워크스페이스가 하나의 Slack 워크스페이스에서 여러 봇을 운영하는 경우(에이전트마다 앱 하나), 첫 봇에서 연결을 마치면 나머지는 그 연결을 자동으로 재사용하므로 다시 안내가 뜨지 않습니다. (다시 연결해야 하는 경우는 다른 Slack 워크스페이스에 있는 봇이거나, 다른 AACWorkflow 워크스페이스에 연결된 봇일 때뿐입니다.)

워크스페이스 멤버만 봇을 사용할 수 있습니다. 멤버가 아니거나 신원 연결을 건너뛰면 봇은 실행되지 않으며, 메시지는 폐기됩니다(감사 목적으로 기록되며, 내용은 저장하지 않습니다).

대화와 /issue

  • 채널에서 — 봇은 자동으로 참여하지 않습니다. /invite @your-bot을 한 번 실행한 다음 @your-bot <당신의 메시지>로 보내세요. 후속 메시지마다 다시 멘션하세요(봇은 자신을 멘션한 메시지만 읽습니다).
  • DM에서 — Slack 사이드바의 Apps 섹션에서 봇을 열고 직접 메시지를 보내세요. 멘션이 필요 없습니다.
  • 이슈 생성/issue 슬래시 명령을 사용하세요(예: /issue 로그인 리디렉트가 Safari에서 깨져요). 자연어로 설명하면 에이전트가 제목과 구조화된 설명을 작성해 이슈를 등록해 줍니다. 채널이나 DM에서 모두 쓸 수 있고(@ 멘션 불필요), 먼저 본인에게만 접수 확인을 비공개로 답하고, 이슈가 생성되면 AACWorkflow 알림을 받습니다. 처음 사용하는 사람은 먼저 일회용 계정 연결 링크를 받습니다.

관리 및 연결 해제

워크스페이스 전체 관리는 Settings → Integrations에 있습니다:

  • Connected bots는 워크스페이스 내 모든 봇과 각 봇이 바인딩된 에이전트를 나열합니다(모든 멤버에게 보입니다).
  • Disconnectowner / admin 전용입니다. 봇이 Slack 메시지 수신을 멈추고 연결이 해체됩니다. 설치 기록은 감사용으로 유지되며, 이후 다시 연결할 수 있습니다.

권한

  • 연결 / 연결 해제에는 워크스페이스 owner 또는 admin이 필요합니다.
  • 봇과 대화하기에는 Slack 신원이 연결된 워크스페이스 멤버여야 합니다. 그 외의 사람은 모두 폐기됩니다.
  • 폐기된 메시지의 본문은 절대 저장되지 않으며 — 감사용 폐기 사유만 기록됩니다.

다음