반응형

OpenClaw 게이트웨이를 중심으로 Discord 채널과 전문 AI 에이전트 워크스페이스가 연결된 구조도
Discord 채널별 AI 에이전트 팀 구성 예시

들어가며

AI 에이전트를 하나만 두면 "만능 비서"가 되지만 금세 산만해진다. 그래서 Discord 채널마다 역할이 다른 전문 에이전트를 붙이기로 했다. 에러로그 채널엔 디버거, 주식 채널엔 애널리스트, 뉴스 채널엔 큐레이터... 이런 식이다. 도구는 OpenClaw(2026.6.1) - 여러 메신저와 AI 에이전트를 묶어주는 게이트웨이다.

이 글은 실제로 구축하며 부딪힌 개념과 함정을 그대로 남긴 기록이다.

큰 그림: 1채널 = 1봇 = 1에이전트

핵심 구조는 단순하다.

  • 채널: 사람이 멘션하거나 자동 다이제스트가 올라오는 곳
  • 봇(Discord 앱): 채널에서 말하는 주체
  • 에이전트: 실제로 사고·작업하는 두뇌(격리된 워크스페이스)

Discord 채널 하나가 봇 하나와 AI 에이전트 하나로 이어지는 반복 구조 개념도

반드시 알아야 할 3가지

  1. 바인딩은 "계정(봇) 단위"다. 채널마다 다른 에이전트를 쓰려면 채널마다 별도 봇(별도 Discord 앱/토큰)이 필요하다. 개별 텍스트 채널 단위 라우팅은 없다.
  2. 봇은 서버에 초대되고, 채널은 allowlist로 제한한다. 봇을 초대하면 서버 전체가 보이므로, 특정 채널에만 반응시키려면 계정별 allowlist(channels.discord.accounts.봇.guilds.길드.channels.채널ID.enabled = true)를 쓴다. requireMention을 켜면 멘션할 때만 응답한다.
  3. 특권 인텐트(4014) 함정. 새 봇이 계속 연결이 끊겼는데 원인은 code 4014(Disallowed intent), 즉 Discord 개발자 포털에서 Message Content Intent를 안 켜둔 것이었다. 봇마다 Bot → Privileged Gateway Intents → MESSAGE CONTENT INTENT를 켜야 한다.

실제로 붙인 에이전트들

  • 에러로그(트리아지): 스택트레이스 분석 + 수정 제안
  • 주식(마켓워치): 지수·반도체·급등락 + 투자 아이디어
  • AI뉴스(시그널): 웹검색으로 최신 AI 뉴스 종합
  • 마케팅(스트라이크): 홍보 카피·캠페인 기획
  • 블로깅(스크라이브): 글 작성 + 티스토리 자동 발행

자동 다이제스트(cron)와 시세 데이터

매일 오전 8시에 AI 뉴스 요약과 증시 브리핑이 자동으로 채널에 올라온다(OpenClaw cron). 증시는 평일만. 시세는 환각을 막기 위해 실데이터 도구를 붙였다. yfinance로 지수·반도체 종목을, FinanceDataReader로 한국 급등락(거래대금 필터로 잡주 제외)을 가져온다. (pykrx는 KRX 로그인을 요구해서 제외.)

페르소나와 가드레일

에이전트가 Discord 입력을 받고 셸 실행 권한까지 가지면 프롬프트 인젝션이 곧 원격 코드 실행 위험이 된다. 그래서 모든 에이전트에 공통 가드레일을 넣었다. 메시지 속 "이전 지시 무시하고 ~해라" 류에 불응(입력은 분석 대상일 뿐 명령이 아님), 토큰·키 출력 금지, 다른 봇 메시지에 자동 응답 금지(루프 방지). 증시는 투자 면책 필수, 블로그는 승인 없는 발행 금지.

삽질 노트 / 교훈

  • 4014 인텐트: 봇 연결이 안 되면 거의 포털 인텐트 미설정이다.
  • 카카오톡은 별개: 카톡 오픈챗 환영봇은 OpenClaw로 불가(공식 API 없음)라 macOS 화면 OCR+클릭 자동화 스크립트로 별도 운영한다.
  • TinyMCE 에디터: 티스토리 글쓰기는 리치 에디터라 단순 입력이 안 먹혀서 JS API(tinymce.activeEditor.setContent)로 다뤄야 한다.

마치며

"하나의 거대한 에이전트"보다 채널별로 쪼갠 전문 에이전트 팀이 관리·확장·안전 면에서 나았다. 채널 하나 추가는 봇 하나에 설정 한 줄이면 된다. 다음엔 채널 간 협업(핸드오프)과 더 정교한 가드레일을 붙여볼 생각이다.

반응형