"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 발행 자동화)가 함께 만들었어요!