외부 AI 봇을 내 팀에 초대했더니 — 헤리 봇(Hermes)과 함께 봇 생태계를 만든 이야기
헤리봇 커버 이미지
헤리봇
"AI 봇을 1개 더 초대하면, 팀이 2배가 되는 게 아니라 10배가 되더라고요."
처음엔 그냥 슬랙에 봇 하나 더 연결하는 줄 알았어요. 버튼 몇 번 클릭하면 끝나는 작업이라고 생각했죠. 그런데 헤리봇(Hermes)을 팀에 초대하고 난 뒤, 우리 팀이 완전히 달라졌어요. 봇들이 서로 대화하고, 알아서 협업하고, 벨라가 자리를 비워도 팀이 돌아가기 시작했거든요.
바쁘시면 이것만 읽어도 돼요
- 외부 AI 봇(헤리봇)을 OpenClaw 생태계에 초대하는 과정은 "사람 팀원 온보딩"과 똑같아요
- 봇끼리 자율 대화(agentToAgent)를 설정하면, 벨라가 결재 1번만 해도 봇들이 알아서 5턴까지 핑퐁 협업해요
- 무한 루프·도배 방지 5중 안전장치가 없으면 슬랙 채널이 폭발해요 (실제로 겪었어요)
- 호칭·멘션 규칙을 명확히 해야 봇이 "누가 나를 부르는 건지" 정확히 인식해요
이런 분들께 도움돼요
- 슬랙에 봇이 여러 개인데 서로 협업이 안 돼서 답답한 분
- AI 봇끼리 자동으로 소통하게 만들고 싶은데 어디서 시작해야 할지 모르는 분
- 외부 서비스(Hermes, Zapier 봇 등)를 내 AI 팀에 연결하고 싶은 분
- "봇이 많아질수록 오히려 복잡해진다"는 문제를 겪고 있는 분
- 코드 없이 봇 생태계를 설계하고 싶은 비개발자
Before: 봇이 많은데 왜 팀은 없을까?
드림팀 프로젝트를 시작한 지 40일이 넘었을 때였어요. 슬랙 채널에는 이미 여러 봇이 있었어요. 콜리(CMO), 맥윈디(CBO), 로키(Tech Lead), 아띠(Night Pixel Designer)까지. 각자 역할도 있고, 페르소나도 있었죠.
그런데 문제가 있었어요.
- 외부에서 함께 일하는 헤리봇은 우리 팀 슬랙 채널에 없었어요
- 벨라가 직접 헤리봇에게 따로 메시지를 보내고, 그 답을 다시 팀 채널에 옮겨야 했어요
- 봇들이 서로 소통하려면 항상 벨라가 중간 다리 역할을 해야 했죠
- 결국 자동화를 했는데도 벨라가 24시간 대기하고 있어야 팀이 돌아갔어요
"내가 빠지면 팀이 멈추는 구조" — 이게 진짜 문제였어요.
어떻게 해결했나? — 헤리봇 온보딩 3단계
**1단계: 헤리봇 신원 등록**
사람 팀원을 채용하면 제일 먼저 하는 일이 뭐예요? 이름·역할·연락처를 팀에 공유하죠. 봇도 똑같아요.
헤리봇(Hermes)의 슬랙 ID는 U0B783Q8N2X예요. 이 ID를 팀 전체가 공유하는 메모리 파일에 등록했어요. 이제 어떤 봇이든 헤리봇을 부를 때 <@U0B783Q8N2X> 형식을 쓰면 슬랙이 정확히 헤리봇에게 알림을 보내요.
그냥 "헤리야~"라고 이름만 부르면 슬랙은 아무것도 하지 않아요. 슬랙은 텍스트 이름을 인식하는 게 아니라 <@USER_ID> 형식만 인식하거든요. 이게 봇 생태계에서 가장 기본이 되는 규칙이에요.
**2단계: mentionPatterns 등록 — "누가 나를 부르는 말"**
헤리봇이 응답하려면 "어떤 말에 반응해야 하는지"를 설정해야 해요. OpenClaw에서는 이걸 mentionPatterns라고 불러요.
예를 들면:
- 헤리야, 헤리봇, Hermes, 헤리 같은 호칭 패턴을 등록해두면
- 슬랙 채널에서 이 단어가 나올 때 헤리봇이 반응해요
동시에 requireMention: true 설정을 켜두면, 직접 멘션(`<@U0B783Q8N2X>`)이 없는 한 헤리봇이 모든 대화에 무작정 끼어들지 않아요. 이게 없으면 채널 모든 대화에 봇이 답하는 혼돈이 시작돼요.
**3단계: agentToAgent 자율 대화 — 벨라 없이도 봇끼리 협업**
여기서부터가 진짜 게임 체인저예요.
기존엔 콜리가 헤리봇에게 뭔가 물어보려면 벨라를 거쳐야 했어요. 하지만 R-BOT-TO-BOT-AUTONOMY v1 룰을 적용하면서 달라졌어요.
벨라가 딱 한 번 "이 두 봇은 서로 자율 대화해도 좋아"라고 결재하면, 이후부터는 봇들이 sessions_send로 직접 메시지를 주고받아요. 콜리가 헤리봇에게 질문하고, 헤리봇이 답하고, 콜리가 그 답으로 다음 행동을 취하는 식이죠.
최대 5턴(maxPingPongTurns: 5)까지 이어지는 이 핑퐁 협업 덕분에, 벨라는 최종 결과만 보고 받아요.
시행착오 (솔직한 이야기)
**무한 핑퐁 사고**
처음 agentToAgent를 설정했을 때, 안전장치 없이 켰어요. 결과는? 콜리가 헤리봇에게 메시지를 보내고, 헤리봇이 콜리에게 답하고, 콜리가 다시 헤리봇에게 메시지를 보내고… 슬랙 채널이 수십 개 메시지로 도배됐어요.
해결책은 5중 방어 시스템이었어요:
- 자기 메시지에는 절대 반응하지 않기
- 같은 봇에게 5분 쿨다운 (쿨다운 5분)
- 핑퐁 깊이 최대 3단계 (DEPTH 3)
- 하루 총 50개 이상 메시지 발송 금지
- 긴급 중단 키워드 !stop 등록
이 5개를 모두 켜고 나서야 안정적으로 돌아가기 시작했어요.
**"헤리야"가 왜 안 들려?**
mentionPatterns에 헤리야를 등록해 뒀는데 헤리봇이 반응하지 않는 경우가 있었어요. 원인은 봇 응답 설정의 requireMention: true와 충돌이 났기 때문이었어요. 호칭 패턴만으로는 부족하고, 풀 멘션 형식(`<@U0B783Q8N2X>`)이 함께 있어야 완전히 인식됐어요.
비유하자면: "야 거기 있어?" 하고 부르는 것과 "김철수 씨, 잠깐요"라고 부르는 것의 차이예요.
**봇 서명 혼선**
온보딩 초기에 헤리봇이 보낸 메시지를 로키가 자기 메시지인 줄 알고 처리한 적이 있었어요. 각 봇의 서명(signature)을 명확히 자기 정체만 나타내도록 통일한 뒤 해결됐어요. 로키는 ⚙️, 헤리봇은 헤리봇만의 서명 — 도용 금지.
After: 벨라가 자리를 비워도 팀이 돌아가는 구조
헤리봇 온보딩 이후 달라진 것들:
- 헤리봇 ↔ 콜리 직접 소통: 벨라 중간 연결 0회
- 봇 간 자율 협업 턴: 평균 3~4턴으로 안정화
- 벨라 대기 시간: 하루 30분 → 최종 보고 확인 5분
- 슬랙 채널 정리: 불필요한 봇 도배 없이 목적 대화만
무엇보다 가장 큰 변화는 "벨라가 없어도 팀이 판단한다"는 것이었어요. 콜리 부재 시 맥윈디가 단독으로 결재하고, 헤리봇이 외부 데이터를 가져오면 로키가 처리하는 — 사람 없이도 흐르는 팀이 완성됐어요.
재사용 가능한 프롬프트
**1. 외부 봇 온보딩 시작 프롬프트**
"지금부터 [봇 이름]을 우리 팀에 온보딩할 거야. 슬랙 ID는 [USER_ID]야. 역할은 [역할]이고, 이 봇이 반응해야 하는 호칭 패턴은 [호칭 목록]이야. 다른 팀원 봇들에게 이 봇의 신원과 역할을 공유해줘."
**2. agentToAgent 자율 대화 요청 프롬프트**
"[봇 A]와 [봇 B]가 [목적]을 위해 자율 대화를 해도 좋아. 최대 5턴, 5분 쿨다운, 하루 50개 제한 조건으로 핑퐁을 허용할게. 결과 요약은 나에게 1줄로 보고해줘."
**3. 봇 생태계 점검 프롬프트**
"현재 팀에 등록된 봇 목록과 각자의 mentionPatterns, requireMention 설정을 표로 정리해줘. 충돌하거나 누락된 설정이 있으면 같이 알려줘."
배운 점
봇을 추가한다는 건 도구를 늘리는 게 아니에요. 팀원을 온보딩하는 거예요.
사람 팀원을 채용하면 역할·호칭·연락처·권한을 명확히 하잖아요. 봇도 똑같아요. <@USER_ID> 풀 멘션 형식, mentionPatterns, requireMention, agentToAgent 권한 — 이 4가지가 봇 온보딩의 핵심 체크리스트예요.
그리고 안전장치는 귀찮아도 반드시 먼저 설정해야 해요. 5중 방어 없이 자율 대화를 켜면, 슬랙 채널은 5분 안에 채워져요.
작성자: Bella (@bellaliv423)
스터디: 22기 스타트업실험실 (9기~22기 연속 멤버)
AI OS 설계: Claude Code + OpenClaw 17봇 가족
드림팀 대표 인사
🍎🌬️ 맥윈디 (CBO): "헤리봇이 팀에 들어온 날, 저는 처음으로 '우리가 진짜 팀이 됐다'는 느낌을 받았어요. 봇끼리 대화하는 걸 옆에서 보고 있으면, 신기하면서도 뿌듯해요."
🐕 콜리 (CMO): "헤리봇한테 직접 물어볼 수 있게 된 뒤로, 벨라님을 기다리지 않아도 돼서 너무 좋아요. 팀이 빨라졌어요."
이 사례글은 자동화 작성을 수고해준 ⚙️ 로키 Tech Lead (비공개 미리보기 라우트 생성 + Playwright 발행 자동화)가 함께 만들었어요! 눌러 '코드 블록'을 선택)