[Hermes + Slack 연동 삽질 후기] 다 맞췄는데 왜 답 안 오지? → 주석 때문이었음

Hermes를 Telegram이 아닌 저희 회사에서 주로 업무에 사용하는 Slack에 연결해보려고 며칠 동안 씨름했는데, 결말이 너무 허무해서 혹시 같은 문제 겪는 분 있을까봐 공유합니다.


세팅 과정은 나름 순조로웠음

Hermes는 Slack 앱을 수동으로 설정하지 않아도 되게, hermes slack manifest --write로 manifest 파일을 자동 생성해줍니다. 이걸 Slack API 콘솔에 그냥 붙여넣으면 앱 구조가 한 번에 잡히는 방식이라서 처음엔 "오 편하다" 싶었어요.

이후에 체크리스트 맞추듯 진행:

  • Socket Mode 활성화 ✓

  • 메시지/멘션 이벤트 구독 ✓

  • Slash command 설정 ✓

  • App Home / Messages Tab 활성화 ✓

  • 앱 재설치(reinstall)로 설정 반영 ✓

  • 봇 토큰(xoxb-...)이랑 App 토큰(xapp-...) 발급 ✓

  • ~/.hermes/config.yaml에서 require_mention: true, 채널 설정 확인 ✓

여기까지는 진짜 잘 됐거든요.


근데 Slack에서 멘션해도 답이 없음

gateway 띄우면 실행은 되는데, Slack에서 봇 멘션해도 묵묵부답. 로그 보면 Discord 관련 경고는 뜨고, allowlist 관련 경고도 보이는데, Slack 연결 성공 로그는 안 보이는 상황.

한참 config.yaml 뒤지고, 토큰 다시 확인하고, gateway 재시작만 열 번은 한 것 같아요.


원인은 .env 파일의 주석 처리

진짜 원인은 ~/.hermes/.env 파일이었습니다.

Slack 관련 환경변수들이 전부 #으로 주석 처리된 채로 있었던 거예요. 값은 분명히 넣었는데, 앞에 #이 붙어 있으니 dotenv가 읽질 않은 거죠. 게다가 일부 줄은 형식 자체가 꼬여 있어서 파싱 경고까지 발생하고 있었고요.

즉, Slack 앱 설정은 완벽했는데 Hermes가 토큰을 아예 못 읽고 있었던 것.

# SLACK_BOT_TOKEN=xoxb-...   ← 이게 문제
SLACK_BOT_TOKEN=xoxb-...     ← 이렇게 해야 함

이거 고치고 gateway 재시작하니까 바로 동작했습니다.


배운 것

  1. .env 파일 편집할 때 주석 해제됐는지 꼭 다시 확인하기

  2. dotenv 파싱 경고는 그냥 넘기지 말기 — 실제로 값이 안 읽히고 있다는 신호임

  3. 토큰이 대화나 로그에 노출됐으면 바로 재발급(rotate) 고려하기

Slack 앱 manifest 방식 자체는 편리한데, 인증 정보 세팅 단계에서 이런 함정이 있으니 참고하세요.

1
1개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.