«운영 04»에서 텔레그램으로 AI 에이전트를 폰에 붙였습니다. 그런데 회사 일은 텔레그램에서 돌지 않습니다. 업무는 이미 슬랙에서 돌고 있습니다. 이 자료는 그 슬랙 안으로 에이전트를 들여놓습니다. 봇 DM에 «이거 해줘» 한 줄을 쓰면 PC의 어사이드가 실제로 일하고, 결과가 같은 대화창으로 돌아옵니다. 대화가 슬랙에 남으니 나중에 검색도 됩니다.
필요한 것은 어사이드가 깔린 PC 한 대와 앱을 만들 수 있는 슬랙 워크스페이스뿐입니다. 아직 어사이드가 없으시면 «설치 03»를, 폰에서 쓰는 텔레그램 쪽이 먼저 궁금하시면 «운영 04»를 보십시오.
이 글의 화면은 2026년 9월 21일에 실제로 연결한 워크스페이스에서 캡처했습니다. 봇 토큰·앱 ID·계정 이름 등 민감한 부분은 가렸습니다.
둘 다 «문자 보내듯 시킨다»는 점은 같습니다. 다른 것은 그 대화가 어디에 남느냐입니다. 텔레그램은 개인 기기이고, 슬랙은 업무 기록이 남는 회사 공간입니다.
| 텔레그램 («운영 04») | 슬랙 (이 자료) | |
|---|---|---|
| 있는 곳 | 내 폰 | 이미 열어둔 업무 창 |
| 기록 | 개인 대화 | 워크스페이스에 검색 가능하게 남음 |
| 확장 | 나 혼자 | 채널로 넓혀 팀 공용도 가능 |
| 통신 방식 | 롱 폴링 | Web API 3초 폴링 |
| 인바운드 포트 | 없음 | 없음 |
| 쓰기 좋은 때 | 이동 중, 퇴근 후 | 업무 시간, 책상 앞 |
«지난달 과정 만족도 평균 뽑아줘»를 업무 창을 떠나지 않고 시킬 수 있습니다. 더 큰 값어치는 기록입니다. 무엇을 시켰고 어떤 결과가 나왔는지가 슬랙 검색에 걸립니다. 반년 뒤 «그때 그 자료 어떻게 만들었지»를 되짚을 수 있습니다.
슬랙과 어사이드는 서로를 모릅니다. 그 사이에 작은 중계 프로그램 하나를 세웁니다. 슬랙을 계속 들여다보다가 새 메시지가 오면 어사이드를 돌리고, 답을 다시 슬랙으로 돌려보내는 역할입니다.
슬랙 <--HTTPS 폴링(3초)--> 브리지 프로그램 <--aside CLI--> 어사이드 에이전트
| 항목 | 내용 |
|---|---|
| 인바운드 포트 | 열지 않습니다. 브리지가 밖으로 나가서 물어보기만 합니다 |
| 외부 라이브러리 | 없습니다. 파이썬 표준 라이브러리만 씁니다 |
| 세션 | 대화 하나를 계속 이어 씁니다. 어제 한 이야기를 오늘도 기억합니다 |
| 답 읽는 곳 | 명령 출력이 아니라 어사이드 세션 기록 파일에서 본문만 뽑습니다 |
| 긴 답 | 3,500자를 넘으면 여러 말풍선으로 잘라 보냅니다 |
텔레그램 쪽(«운영 04»)은 공개된 MIT 오픈소스를 썼습니다. 슬랙용은 공개 프로젝트가 없어서 어사이드에게 시켜서 만들었습니다. «텔레그램 브리지와 같은 구조로 슬랙용을 만들어»라고 지시했고, 파이썬 파일 한 개와 실행 스크립트 몇 개가 나왔습니다. 이것이 «응용 07»에서 말한 에이전트의 실제 쓸모입니다. 따라 하실 때도 이 글의 설계 표를 그대로 에이전트에게 읽히면 각자 환경에 맞는 브리지를 만들어 줍니다.
내 워크스페이스에 전용 봇 하나를 만드는 과정입니다. 코드는 없고 화면에서 몇 번 누르면 끝납니다.
JJ Aside
이미 쓰고 있는 사내 봇에 브리지를 얹으면 같은 DM에 두 종류의 메시지가 섞입니다. 브리지는 «내가 봇에게 보낸 모든 말»을 어사이드로 넘기기 때문에, 다른 용도의 대화까지 작업 지시로 들어갑니다. 반드시 브리지 전용 앱을 따로 만드십시오. 실제로 이 구성도 비서실 앱과 브리지 앱을 별개로 두고 있습니다.
슬랙은 «범위(Scope)»라는 이름으로 권한을 하나씩 켭니다. 브리지에 필요한 것은 아래 아홉 개입니다. OAuth & Permissions 화면에서 봇 토큰 범위에 추가합니다.
| 범위 | 왜 필요한가 |
|---|---|
im:history | DM에서 내가 쓴 말을 읽습니다. 이게 없으면 지시가 안 들어옵니다 |
im:read | DM 채널의 기본 정보를 봅니다 |
im:write | DM을 먼저 열 수 있게 합니다 |
chat:write | 답을 씁니다. 결과 말풍선이 여기서 나갑니다 |
app_mentions:read | 채널에서 @봇으로 불렀을 때 알아듣습니다 |
channels:history · channels:read | 나중에 공개 채널로 넓힐 때 씁니다 |
groups:history · groups:read | 나중에 비공개 채널로 넓힐 때 씁니다 |
im:*, chat:write)만으로도 돕니다. 나머지는 나중에 채널로 넓힐 때 필요합니다.xoxb-로 시작하는 긴 문자열입니다.config.json에 넣습니다.
이 문자열 하나면 누구든 내 봇으로 워크스페이스에 글을 쓸 수 있습니다. 메신저·메일·문서에 붙여 넣지 마십시오. 설정 파일은 깃 저장소에서 제외하고, 노출됐다면 같은 화면에서 즉시 폐기(Revoke) 후 재설치하십시오.
토큰까지 다 받고도 봇 DM 입력창이 잠겨 있는 경우가 많습니다. 슬랙은 기본값이 «이 앱에는 말을 걸 수 없음»이기 때문입니다.
설정을 고친 직후에는 기기마다 반영 시점이 다릅니다. 데스크톱에서만 입력창이 열리고 폰에서는 잠겨 보이는 일이 흔합니다. 폰 앱을 완전히 종료했다 다시 켜면 풀립니다. 그래도 안 되면 재설치(Reinstall to Workspace)를 한 번 해 주십시오.
프로그램 자체는 파일 몇 개입니다. 중요한 것은 PC를 켤 때마다 알아서 살아 있게 만드는 일입니다.
| 파일 | 역할 |
|---|---|
slack_bridge.py | 본체. 슬랙을 폴링하고 어사이드를 돌립니다 |
config.json | 봇 토큰·내 사용자 ID·폴링 주기. 공유 금지 |
state.json | 마지막으로 읽은 시각, DM 채널, 현재 세션 ID |
install-task.cmd | 더블클릭 한 번으로 자동 실행 등록 + 즉시 기동 |
run-bridge.cmd | 로그를 화면으로 보며 돌릴 때(디버그용) |
| 감시 스크립트 | 5분마다 살아 있는지 보고 죽었으면 되살립니다 |
내 PC의 어사이드 에이전트를 슬랙 DM으로 부리는 브리지를 만들어 주십시오. 요구사항 1) 파이썬 표준 라이브러리만 쓰고, 외부 패키지 설치가 없어야 합니다. 2) 슬랙 Web API conversations.history 를 3초마다 폴링해 마지막으로 읽은 시각 이후의 내 메시지만 고릅니다. 3) 첫 턴은 어사이드 CLI 로 새 세션을 만들고, 이후에는 같은 세션을 이어서 실행합니다. 4) 답은 CLI 표준출력이 아니라 세션 기록 파일에서 본문만 뽑아 슬랙에 씁니다. 5) 3500자를 넘으면 잘라서 여러 메시지로 보냅니다. 6) 작업 중에 들어온 메시지는 큐에 쌓았다가 다음 턴으로 넘깁니다. 7) 명령어 세 개를 지원합니다. 새 세션, 상태 확인, 도움말. 8) 로그온 시 자동 실행과 5분마다 살아있는지 점검하는 감시 기능을 함께 등록해 주십시오. 9) 봇 토큰은 설정 파일에 두고 저장소 제외 처리하십시오. 내 운영체제와 어사이드 설치 경로를 먼저 확인한 뒤 그 환경에 맞게 작성해 주십시오.
어사이드 작업 셸은 샌드박스 안에서 돕니다. 그래서 에이전트가 파일은 만들어도 자동 실행 등록과 프로세스 기동은 하지 못합니다. 만들어 준 install-task.cmd를 사용자가 직접 더블클릭해야 합니다. 이 글도 그 순간에 브리지가 붙어서 이어 쓴 것입니다.
슬랙 말풍선은 마크다운 제목과 표가 깨져 보입니다. 그리고 PC 화면에서만 답할 수 있는 확인창에 세션이 걸리면 슬랙에서는 되살릴 방법이 없습니다. 그래서 첫 메시지로 규칙을 못박아 둡니다.
지금부터 이 대화는 내 상시 업무 스레드입니다. 아래 규칙을 지켜 주십시오. 1) 슬랙 말풍선에 맞게 짧고 평범한 문장으로 쓰십시오. 마크다운 제목, 표, 긴 코드블록을 쓰지 마십시오. 2) 긴 답은 빈 줄로 문단을 나누십시오. 이모지와 긴 줄표는 쓰지 마십시오. 3) 데스크톱에서만 답할 수 있는 네이티브 질문 도구를 절대 쓰지 마십시오. 그 프롬프트에 걸리면 이 대화에서는 되살릴 수 없습니다. 4) 확인이 필요하면 승인 요청 블록으로 쓰고 턴을 끝내십시오. 5) 선택지가 있으면 질문 블록으로 묻고 턴을 끝내십시오. 6) 되돌릴 수 없거나 외부로 나가는 행동(메일 발송, 글 게시, 결제, 삭제)은 먼저 실행하지 말고 승인부터 받으십시오. 7) 작업이 끝나면 무엇을 했는지 한두 문단으로 보고하십시오. 8) 토큰이나 비밀번호는 이 대화에 절대 쓰지 마십시오.
기준은 하나입니다. 업무 창을 떠나야만 할 수 있던 일을 그대로 던지십시오.
| 명령 | 하는 일 |
|---|---|
!new | 새 세션으로 시작합니다. 규칙이 꼬였거나 주제가 완전히 바뀔 때 |
!status | 현재 세션 ID, 폴링 주기, 사용 중인 경로 |
!help | 명령어 안내 |
한 번에 턴 하나만 돕니다. 진행 중인 일을 도중에 바꾸지는 못하고, 보낸 메시지는 다음 차례로 실행됩니다. 방향을 틀고 싶으면 !new로 새로 시작하는 편이 빠릅니다.
편한 만큼 위험도 같이 옵니다. 실제로 겪은 것만 적습니다.
| 항목 | 내용 | 대응 |
|---|---|---|
| 권한이 셉니다 | 브리지가 만드는 세션은 도구를 전부 쓸 수 있는 상태로 돕니다. 사람이 안 보는 사이 실제로 일을 하라는 설계입니다 | 6단계 규칙 6번을 반드시 심으십시오. 설정에서 확인 필요 모드로 낮출 수도 있습니다 |
| 봇 토큰 | 워크스페이스에 글을 쓸 수 있는 비밀번호입니다 | 설정 파일은 저장소 제외. 노출 시 즉시 폐기 후 재설치 |
| 남이 말을 걸면 | 내 사용자 ID만 허용하도록 잠급니다 | 다른 사람 메시지는 무시하게 설정하십시오 |
| 대화가 회사에 남습니다 | 슬랙 기록은 워크스페이스 관리자가 정책에 따라 볼 수 있습니다 | 개인적인 지시는 개인 메신저로. 업무 지시만 여기로 |
| PC가 꺼지면 | 일하는 주체가 PC라 PC가 꺼지면 멈춥니다 | 켜둘 노트북을 따로 두십시오 — «운영 01» |
| 도중에 못 바꿉니다 | 작업 중 보낸 메시지는 다음 차례로 갑니다 | !new로 새로 시작하십시오 |
| 회사 자료 | 에이전트가 내 PC 파일과 로그인 세션에 접근합니다 | 기밀 폴더가 걸린 작업은 사내 규정을 먼저 확인하십시오 |
가장 흔한 사고는 해킹이 아니라 내가 대충 시킨 것입니다. 메신저에서는 문장이 짧아지고 확인이 느슨해집니다. 외부로 나가는 일은 반드시 초안까지만 시키고, 승인은 눈으로 보고 하는 습관을 들이십시오.
| 증상 | 확인할 것 |
|---|---|
| 봇 DM 입력창이 잠겨 있음 | 4단계 — App Home의 메시지 탭과 아래 체크박스 |
| 데스크톱은 되는데 폰만 잠김 | 폰 슬랙 앱 완전 종료 후 재실행. 그래도 안 되면 앱 재설치 |
| 글은 보내지는데 답이 없음 | PC가 켜져 있는지, 브리지가 돌고 있는지 — 브리지 로그 확인 |
| 답에 별표·샵 기호가 그대로 보임 | 규칙이 안 심긴 세션 — !new 후 6단계 문장 재전송 |
| 보냈는데 아무 반응 없이 멈춤 | PC에서만 답할 수 있는 확인창에 걸린 경우 — !new로 새 세션 |
| 내 말이 두 번 처리됨 | 같은 봇에 다른 용도 앱이 얹혀 있는지 — 전용 앱으로 분리 |
2026년 9월 21일에 실제로 연결한 슬랙 워크스페이스에서 화면을 캡처했습니다. 브리지 프로그램도 그날 어사이드에게 시켜 만든 것이고, 이 글 자체도 그 슬랙 대화창에서 지시해 작성·게시했습니다. 봇 토큰·앱 ID·PC 사용자 이름·개인 대화 목록은 캡처 단계에서 가렸습니다. 슬랙 설정 화면은 버전에 따라 이름이 조금씩 달라질 수 있습니다.