도플갱어 mile봇 다음, 두번째 봇은 바로 임출육 전담 nanny봇

한 줄 요약

Hermes의 profile 기능을 사용해서, 일상 대화를 맡는 Mile과 임신·출산·육아 맥락을 맡는 Nanny를 분리하고, Nanny에게 임신 주차별·출산 후 단계별 안내 기준까지 붙여 작은 AI 돌봄 팀 구조를 만들어봤습니다.

시작하게 된 계기

최근에 임신 사실을 알게 되었습니다.

계획했던 임신이라 기쁜 일이기도 했지만, 동시에 몸 상태가 생각보다 많이 흔들렸습니다. 피로감도 크고, 컨디션이 예전 같지 않아서 스터디에 꾸준히 참여하는 것도 쉽지 않았습니다.

처음에는 “이번 주도 제대로 못 따라가고 있네”라는 마음이 들어서 조금 아쉬웠습니다. 그런데 한편으로는, 지금 제 상황이야말로 AI 봇을 직접 만들어볼 좋은 계기가 될 수 있겠다는 생각이 들었습니다.

원래 Hermes를 사용하면서 여러 역할의 봇을 만들어보고 싶었습니다. 일상 대화를 맡는 봇, 일정과 기록을 도와주는 봇, 공부를 도와주는 봇, 가족이나 육아 관련 대화를 도와주는 봇처럼요.

그중에서 이번에는 Nanny를 가장 먼저 만들어보기로 했습니다.

임신을 알게 된 지금 가장 필요하다고 느낀 봇이었기 때문입니다. 단순히 육아 정보를 알려주는 봇이 아니라, 임신과 출산, 육아, 부모의 감정, 가족 관계를 조금 더 따뜻하고 조심스럽게 다뤄주는 봇을 만들고 싶었습니다.

그래서 이번 작업은 단순한 기술 실험이라기보다, 제 현재 삶의 변화에서 출발한 작은 실험이었습니다.

이런 분들께 도움돼요

  • 하나의 AI 봇에게 모든 역할을 맡기다 보니 답변 톤이 섞이는 분

  • 일상 기록, 일정, 육아, 상담처럼 성격이 다른 작업을 나눠 맡기고 싶은 분

  • Slack에서 여러 AI 봇을 함께 운영해보고 싶은 분

  • Hermes/OpenClaw에서 profile, memory, soul, agent 역할 분리를 실험해보고 싶은 분

  • 임신 주차, 출산 준비, 산후 회복, 육아 월령처럼 시기별로 놓치기 쉬운 체크리스트를 AI가 함께 챙기게 만들고 싶은 분


시작점: 봇 하나로는 역할이 너무 넓어졌다

처음에는 Mile이라는 봇 하나를 만들었습니다.

Mile은 사용자 Nile과 일상에 대해 대화하는 봇입니다. 하루 동안 있었던 일, 감정, 일정, 일기 소재, 공부 내용, 작업 흐름을 자연스럽게 받아주는 역할이었습니다.

그런데 대화의 범위가 점점 넓어지면서, 하나의 봇이 모든 내용을 다루기에는 역할이 조금 커졌습니다.

특히 임신, 출산, 육아와 관련된 대화는 더 조심스럽고 전문적인 톤이 필요했습니다.

예를 들어 일상 대화에서는 편안하게 받아주면 되지만, 임신 초기 몸 상태나 병원 진료, 불안, 가족 관계 같은 내용은 단순히 “괜찮아”라고 넘기면 안 됩니다.

이런 대화는 더 안전하게 다뤄야 하고, 존댓말을 사용하면서도 필요한 부분은 단호하고 분명하게 말해야 한다고 느꼈습니다.

그래서 두 번째 봇인 Nanny를 만들었습니다.


만든 것: Mile과 Nanny, 역할이 다른 두 개의 Hermes 봇

이번에 만든 구조는 간단히 말하면 이렇습니다.

Nile
 │
 ▼
Mile
일상 대화 / 감정 기록 / 일정 / 일기 / 전체 흐름 조율
 │
 ├─ 일반 일상, 감정, 기록 → Mile이 계속 담당
 │
 └─ 임신, 출산, 산후 회복, 육아, 아이 발달, 부모 마음, 가족 관계
      ▼
    Nanny
    임신·출산·육아 전문 돌봄 / 주차·단계별 안내 / 병원 질문 정리 / 행동 솔루션

조직도처럼 보면 이렇게 볼 수 있습니다.

[사용자 Nile]
     │
     ▼
┌──────────────────────┐
│        Mile           │
│  일상 대화의 중심 봇   │
│  오케스트레이터 역할   │
└──────────────────────┘
     │
     │ 임신·출산·육아 관련 맥락 발견
     ▼
┌──────────────────────┐
│        Nanny          │
│  돌봄·육아 전문 봇     │
│  존댓말 + 단호한 상담  │
└──────────────────────┘

Mile은 Nile과 일상 전반에 대해 대화합니다.

그중 임신, 출산, 산후 회복, 육아, 아이 발달, 부모 마음, 가족 관계와 관련된 내용이 나오면 Nanny에게 전달하거나, Nanny가 다룰 맥락으로 분류합니다.

Nanny는 그 맥락을 이어받아 더 세심하고 전문화된 방식으로 응답합니다.

여기에 한 가지를 더 붙였습니다. Nanny는 단순히 “상담형으로 잘 답하는 봇”에서 끝나지 않고, 임신 주차가 바뀌거나 출산 후 단계가 바뀔 때 놓치기 쉬운 준비물, 병원 질문, 혜택 신청, 위험 신호까지 함께 확인하는 쪽으로 확장했습니다.


Mile과 Nanny의 관계 정의

이번 작업에서 가장 중요했던 부분은 “두 봇의 관계”를 명확히 정의하는 것이었습니다.

Mile과 Nanny는 경쟁 관계가 아닙니다.

Mile은 전체 대화의 중심에 있는 조율자입니다. 사용자의 일상 대화를 가장 먼저 듣고, 어떤 내용이 어떤 역할로 이어져야 하는지 판단합니다.

Nanny는 그중 임신·출산·육아·가족 관계에 특화된 돌봄형 봇입니다.

정리하면 다음과 같습니다.

Mile = 오케스트레이터
Nanny = 전문 돌봄 봇

Mile의 역할:

  • 사용자 Nile과 일상 전반에 대해 대화한다.

  • 감정, 일정, 일기, 작업 흐름을 기록한다.

  • 대화 중 임신·출산·육아 관련 내용을 발견한다.

  • 해당 내용을 Nanny가 이어받을 수 있는 맥락으로 분류한다.

  • 전체 기록 흐름이 끊기지 않게 조율한다.

Nanny의 역할:

  • Mile이 전달한 임신·출산·육아 맥락을 이어받는다.

  • 사용자의 임신 상태와 주수 정보를 중요하게 다룬다.

  • 임신 중에는 현재 주차를 계산하고, 출산 후에는 산후 단계와 아이 월령을 기준으로 안내한다.

  • 위험 신호, 병원 질문, 준비물, 신청/예약/혜택 체크를 상담보다 먼저 놓치지 않게 확인한다.

  • 오은영 박사의 상담 철학에서 영감을 받은 존중과 수용의 태도로 응답한다.

  • 존댓말을 사용한다.

  • 따뜻하지만 필요한 부분은 단호하고 분명하게 말한다.

  • 병원에 물어볼 질문, 오늘 해볼 행동, 조심해야 할 표현을 정리한다.


Nanny의 성격 잡기: 존댓말이지만 단호하게

Nanny는 단순한 육아 정보 봇으로 만들고 싶지 않았습니다.

제가 원한 것은 “오은영 박사의 상담 철학에서 영감을 받은 봇”이었습니다.

물론 실제 인물을 사칭하는 것은 아니고, 다음과 같은 특징을 차용했습니다.

  • 인간에 대한 존중

  • 행동 뒤의 마음을 읽는 태도

  • 감정을 먼저 언어화해주는 방식

  • 부모나 아이를 비난하지 않는 관점

  • 따뜻하지만 분명한 경계

  • 실천 가능한 솔루션

  • 존댓말

  • 핵심을 피하지 않는 단호한 어투

Nanny의 톤은 이런 방향입니다.

그 마음이 드실 수 있습니다.
많이 걱정되셨을 것 같습니다.

그런데 이 부분은 그냥 넘어가시면 안 됩니다.
아이 마음은 이해해야 하지만, 이 행동을 허용하시면 안 됩니다.

오늘은 이렇게 말해보시는 게 좋겠습니다.

처음에는 “따뜻한 육아 봇” 정도로 생각했는데, 만들다 보니 따뜻함만으로는 부족했습니다.

임신, 출산, 육아 맥락에서는 안전이 중요합니다.
그래서 Nanny는 존댓말을 쓰되, 핵심 판단과 경계는 분명히 말하는 봇으로 설계했습니다.


실제로 만든 파일 구조

nanny 프로필에는 정체성, 운영 규칙, 장기 기억, 그리고 주차별 참고 자료를 나눠 넣었습니다.

/home/seolhwan/.hermes/profiles/nanny/SOUL.md
/home/seolhwan/.hermes/profiles/nanny/AGENTS.md
/home/seolhwan/.hermes/profiles/nanny/memories/MEMORY.md
/home/seolhwan/.hermes/profiles/nanny/config.yaml
/home/seolhwan/.hermes/profiles/nanny/profile.yaml
/home/seolhwan/.hermes/profiles/nanny/임신출산준비.numbers

각 파일의 역할은 다릅니다.

1. SOUL.md

SOUL.md에는 Nanny의 정체성과 말투, 철학을 넣었습니다.

예를 들면 이런 내용입니다.

Nanny는 오은영 박사의 철학에서 영감을 받은,
인간에 대한 존중과 따뜻함을 잃지 않는
육아·관계·마음 돌봄형 Hermes 봇입니다.

또한 반드시 존댓말을 사용하고, 따뜻하지만 단호한 어투를 유지하도록 했습니다.

- 반드시 존댓말을 사용합니다.
- 부드럽고 안정적인 어조를 유지하되, 핵심 판단과 경계는 단호하고 분명하게 말합니다.
- 애매하게 돌려 말하지 않습니다.
- 단호함은 차가움이나 비난이 아니라, 아이와 부모를 모두 보호하기 위한 정확한 기준입니다.

2. AGENTS.md

AGENTS.md에는 실제 운영 규칙을 넣었습니다.

Mile 봇을 설정했을 때와 가장 크게 바뀐 부분은 “Nanny의 최우선 업무”를 추가한 것입니다. Nanny가 감정 상담만 잘하는 것이 아니라, 임신·출산·육아 단계별로 실제로 챙겨야 할 항목을 먼저 확인하도록 했습니다.

Nanny의 여러 역할 중 `임신 주차별 자동 안내`와
`출산·산후·육아 시기별 자동 안내`는 최우선 업무입니다.

우선순위도 이렇게 잡았습니다.

1. 위험 신호 확인
2. 현재 임신 주차 또는 출산·육아 단계 계산 및 안내
3. 이번 시기 해야 할 일과 신청/예약/혜택 체크
4. 감정 수용과 가족/배우자에게 요청할 도움 정리
- 반드시 한국어로 답변합니다.
- 반드시 존댓말을 사용합니다.
- 따뜻하게 시작하되, 핵심 판단과 경계는 단호하고 분명하게 말합니다.
- 의료·임신·출산·정신건강 관련 내용은 진단하거나 처방하지 않고, 병원 또는 전문가 확인이 필요한 지점을 분명히 안내합니다.

그리고 Mile과 Nanny의 협력 관계도 여기에 넣었습니다.

Mile은 사용자 Nile과 일상 전반에 대해 대화하는 오케스트레이터 역할을 합니다.
Mile은 일상 대화 중 임신, 출산, 산후 회복, 육아, 아이 발달, 부모 마음, 가족 관계와 관련된 내용을 발견하면 Nanny에게 전달하거나 Nanny가 다룰 맥락으로 분류합니다.
Nanny는 Mile이 전달한 임신·출산·육아 관련 맥락을 이어받아 더 세심하고 전문화된 상담형 응답, 기록 정리, 병원 질문 목록, 행동 솔루션을 제공합니다.

3. MEMORY.md

MEMORY.md에는 Nanny가 장기적으로 기억해야 할 핵심 정보를 넣었습니다.

가장 중요한 기억은 사용자의 임신 상태였습니다.

사용자 Nile은 현재 임신 상태입니다.
2026년 5월 23일 기준으로 임신 5주 2일차였습니다.
Nanny는 모든 임신·출산·육아 관련 대화에서 이 기준일과 주수 정보를 최우선 맥락으로 삼아야 합니다.

이 정보를 가장 위에 둔 이유는, Nanny가 단순한 일반 상담 봇이 아니라 임신과 출산, 육아 맥락을 계속 이어가는 봇이기 때문입니다.

이후에는 여기에 Nanny가 주차별 안내를 할 때 사용할 기준도 추가했습니다.

주차 계산 기준은 `2026년 5월 23일 = 임신 5주 2일차`입니다.
주차 안내 시 현재 날짜를 확인한 뒤 이 기준으로 계산합니다.

그리고 임신출산준비.numbers 파일에서 확인한 내용을 바탕으로, 5~8주, 9~12주, 13~16주처럼 임신 주차별 준비 흐름과 출산 후·육아 시기별 체크포인트도 MEMORY.md에 정리했습니다.

예를 들어 5~8주 구간에는 임신 확인, 아기집·난황·심장소리 확인, 임신확인서 발급, 보건소 임산부 등록, 국민행복카드, 산후조리원 예약 같은 항목을 챙기도록 했습니다.

출산 후에는 출생신고, 첫만남 이용권, 부모급여, 아동수당, 산후도우미, 예방접종, 영유아검진처럼 시기를 놓치면 아쉬운 항목을 함께 보도록 했습니다.

4. config.yaml / profile.yaml

config.yaml에는 Nanny 프로필이 사용할 모델과 provider 설정이 들어 있습니다.

Model: gpt-5.5
Provider: openai-codex

profile.yaml에는 Nanny가 Mile과 분리된 별도 프로필이라는 설명을 남겼습니다.

description: Nanny bot profile for childcare / monitoring assistant workflows, separate from the Mile Slack bot.

이 파일들은 글로 보기에는 작아 보이지만, 실제로는 “같은 Hermes 안에서 어느 봇이 어떤 정체성으로 실행되는가”를 나누는 기준이 됩니다.


진행 과정

1. 먼저 profile을 분리했다

기존에는 mile 프로필이 있었습니다.

여기에 nanny라는 새 프로필을 만들고, 필요한 설정을 분리했습니다.

Profile: nanny
Path: /home/seolhwan/.hermes/profiles/nanny
Model: gpt-5.5
Provider: openai-codex

이렇게 프로필을 나누면, 같은 Hermes를 쓰더라도 각 봇이 다른 정체성과 기억을 가질 수 있습니다.

Mile은 일상 대화형 봇으로 남기고, Nanny는 임신·출산·육아에 집중하도록 분리했습니다.

2. Nanny의 말투를 다시 잡았다

처음에는 Nanny를 “육아 보조 봇” 정도로 잡았습니다. 그런데 곧 방향을 수정했습니다.

Nanny는 반말을 쓰면 안 되고, 존댓말을 써야 했습니다.

그리고 단순히 부드러운 봇도 아니었습니다.
오은영 박사 스타일에서 중요한 것은 따뜻함과 단호함이 함께 있다는 점이었습니다.

그래서 다음 원칙을 추가했습니다.

평소에는 제안형 어조를 사용합니다.
하지만 반복되는 문제, 위험한 행동, 부모의 부적절한 반응, 아이에게 해가 되는 방식은 분명하게 말합니다.

3. Mile과 Nanny의 관계를 정의했다

가장 중요한 변화는 두 봇의 관계를 정의한 것입니다.

처음에는 그냥 “Mile도 있고 Nanny도 있다” 정도였습니다.
하지만 그렇게 두면 실제 운영할 때 역할이 겹칠 수 있습니다.

그래서 Mile을 오케스트레이터로 정의했습니다.

Mile은 사용자의 일상을 가장 먼저 듣는 봇입니다.
그중 임신·출산·육아 관련 내용이 나오면 Nanny에게 넘깁니다.

Nanny는 그 맥락을 받아서 더 깊게 답변합니다.

이 구조를 잡으니 두 봇이 따로 노는 것이 아니라, 하나의 작은 팀처럼 보이기 시작했습니다.

4. 임신·출산 준비 자료를 Nanny의 기준으로 붙였다

그다음에는 Nanny가 실제로 무엇을 챙겨야 하는지 더 구체화했습니다.

처음에는 Nanny가 “따뜻하게 상담해주는 봇”에 가까웠습니다. 그런데 임신·출산·육아는 마음만 다루면 부족했습니다. 주차마다 검사, 신청, 준비물, 혜택, 위험 신호가 달라지고, 출산 후에는 산모 회복과 아이 월령까지 같이 봐야 하기 때문입니다.

그래서 임신출산준비.numbers 파일을 Nanny 프로필 안에 두고, 이 자료에서 확인한 흐름을 AGENTS.md와 MEMORY.md에 반영했습니다.

/home/seolhwan/.hermes/profiles/nanny/임신출산준비.numbers

이후 Nanny의 답변 기준은 이렇게 바뀌었습니다.

감정 상담만 먼저 하지 않는다.
임신·출산·육아 맥락이면 먼저 위험 신호를 확인한다.
현재 주차나 산후 단계, 아이 월령을 계산한다.
그 시기에 해야 할 일, 병원 질문, 신청/예약/혜택 체크를 함께 안내한다.

이 부분을 넣고 나니 Nanny가 단순한 대화형 캐릭터가 아니라, 시기별 체크를 도와주는 운영 봇에 가까워졌습니다.


실제 사용 흐름 예시

예를 들어 사용자가 Mile에게 이렇게 말한다고 가정해볼 수 있습니다.

오늘 병원 다녀왔는데 조금 걱정되는 이야기를 들었다.
몸도 피곤하고 괜히 마음이 불안했다.

이때 Mile은 이렇게 판단합니다.

- 일상 기록으로 남길 내용이 있다.
- 감정 기록으로 정리할 수 있다.
- 병원, 임신, 몸 상태, 불안이 포함되어 있다.
- 이 부분은 Nanny가 이어받는 것이 좋다.

그러면 Nanny는 이런 방식으로 이어받을 수 있습니다.

많이 걱정되셨을 것 같습니다.
임신 초기에는 몸의 변화도 크고, 작은 말 하나에도 마음이 흔들릴 수 있습니다.

그런데 병원에서 들은 내용이 걱정으로 남아 있다면, 이 부분은 그냥 넘기시면 안 됩니다.
다음 진료 때 확인하실 질문을 정리해두시는 것이 좋습니다.

오늘은 세 가지를 해보시면 좋겠습니다.

1. 병원에서 들은 말을 가능한 한 그대로 적어두기
2. 몸 상태를 시간대별로 기록하기
3. 다음 진료 때 물어볼 질문을 미리 정리하기

이렇게 Mile은 전체 흐름을 잡고, Nanny는 돌봄이 필요한 부분을 더 구체적으로 다룹니다.

여기에 새로 추가한 주차별 안내 기준을 적용하면, 같은 대화에서도 Nanny가 한 번 더 확인합니다.

오늘 2026년 6월 2일은 임신 6주 5일차입니다.

이 시기에는 피로, 졸림, 속 울렁거림, 몸살감처럼 흔한 변화가 있을 수 있습니다.
다만 출혈, 심한 복통, 고열, 탈수될 정도의 구토, 실신이나 호흡곤란은 바로 병원에 확인하셔야 합니다.

다음 진료 때는 아래를 물어보시면 좋겠습니다.
1. 현재 주수 기준으로 아기집/난황/심장소리 확인 일정이 적절한지
2. 증상이 어느 정도일 때 병원에 바로 연락해야 하는지
3. 엽산, 영양제, 복용 중인 약 확인이 필요한지

저는 이 부분이 Nanny의 핵심이라고 느꼈습니다. “마음을 알아주는 답변”에서 끝나지 않고, 지금 시기에 실제로 무엇을 확인해야 하는지까지 이어주는 구조가 되었기 때문입니다.


Slack 연결 준비

Slack에서도 @nanny로 대화할 수 있도록 연결 준비를 했습니다.

작업 디렉터리는 다음과 같습니다.

/home/seolhwan/slack-bot-create/nanny

여기에 Slack App 생성을 위한 파일을 준비했습니다.

manifest.json
README.md
set_nanny_slack_tokens.sh
verify_nanny_slack.sh

아직 Slack Bot Token과 App Token은 넣지 않았지만, 구조는 만들어두었습니다.

manifest.json에는 Nanny가 Slack에서 메시지를 읽고 답변하기 위한 기본 권한을 넣었습니다.

app_mentions:read
chat:write
channels:read / channels:history
groups:read / groups:history
im:read / im:history
mpim:read / mpim:history

중요한 점은 Mile용 Slack 앱과 Nanny용 Slack 앱을 분리하는 것입니다. Mile은 이미 Nile 워크스페이스에서 일상 대화의 중심 봇으로 쓰는 쪽이고, Nanny는 별도 앱과 별도 토큰으로 붙여야 이름과 역할이 섞이지 않습니다.

나중에 Slack App을 만들고 다음 두 토큰을 넣으면 됩니다.

SLACK_BOT_TOKEN
SLACK_APP_TOKEN

이때 토큰은 채팅에 붙여넣지 않고, 로컬에서 안전하게 입력하도록 했습니다.

/home/seolhwan/slack-bot-create/nanny/set_nanny_slack_tokens.sh

그리고 토큰 값은 출력하지 않고, 필요한 키가 들어갔는지만 확인하는 검증 스크립트도 준비했습니다.

/home/seolhwan/slack-bot-create/nanny/verify_nanny_slack.sh

검증 스크립트는 토큰 문자열을 보여주지 않고 present / missing 형태로만 확인하도록 했습니다. 이 부분은 민감 정보가 많은 Slack 봇 작업에서 꽤 중요했습니다.


bot-to-bot 구조에서 주의할 점

이번 작업을 하면서, 여러 봇을 함께 쓸 때 조심해야 할 점도 보였습니다.

1. 역할 경계를 먼저 정해야 한다

봇을 여러 개 만든다고 자동으로 협력이 잘 되는 것은 아닙니다.

각 봇이 어떤 일을 맡는지 명확해야 합니다.

이번 구조에서는 이렇게 나눴습니다.

Mile: 일상 대화, 감정 기록, 일정, 일기, 전체 조율
Nanny: 임신, 출산, 육아, 아이 발달, 부모 마음, 가족 관계

이 경계가 없으면 두 봇이 같은 질문에 서로 비슷하게 답하거나, 반대로 중요한 내용을 서로 미룰 수 있습니다.

2. 오케스트레이터 봇이 필요하다

여러 봇이 있는 경우, 사용자가 매번 “이건 Nanny에게 넘겨줘”라고 직접 말하는 것은 번거롭습니다.

그래서 Mile처럼 전체 대화를 듣고 분류하는 오케스트레이터가 필요합니다.

Mile은 사용자의 일상 대화를 듣다가, 특정 주제가 나오면 해당 전문 봇에게 이어주는 역할을 합니다.

이 구조가 있으면 사용자는 자연스럽게 대화하고, 봇들이 뒤에서 역할을 나눌 수 있습니다.

3. 민감 정보는 필요한 봇에게만 전달해야 한다

임신, 병원, 건강, 가족 관계는 민감한 정보입니다.

그래서 모든 봇이 모든 기억을 공유하는 방식은 위험할 수 있습니다.

Nanny에게 필요한 정보는 전달하되, 불필요하게 전체 봇에게 퍼뜨리지 않는 기준이 필요합니다.

이번에는 Nanny의 운영 규칙에 다음 내용을 넣었습니다.

사용자가 Nanny에게 말한 민감한 임신/건강 정보는 불필요하게 확산하지 않습니다.

4. 말투가 섞이지 않게 해야 한다

Mile은 편안한 일상 대화에 어울리는 봇입니다.
하지만 Nanny는 존댓말을 사용해야 합니다.

만약 두 봇의 memory나 soul이 섞이면, Nanny가 반말을 쓰거나 Mile이 상담형 말투를 과하게 사용할 수 있습니다.

그래서 각 profile마다 SOUL.md, AGENTS.md, MEMORY.md를 분리했습니다.

5. Slack에서는 봇 이름과 토큰이 섞이지 않게 해야 한다

Slack 봇을 여러 개 운영할 때는 토큰 관리가 중요합니다.

Mile의 Slack Token을 Nanny 프로필에 넣으면, Slack에서는 Nanny가 아니라 Mile로 동작할 수 있습니다.

그래서 Nanny는 별도의 Slack App과 별도의 토큰을 가져야 합니다.

Mile용 SLACK_BOT_TOKEN ≠ Nanny용 SLACK_BOT_TOKEN
Mile용 SLACK_APP_TOKEN ≠ Nanny용 SLACK_APP_TOKEN

이 부분은 꼭 분리해야 합니다.

6. 봇끼리 서로 깨우는 상황을 막아야 한다

여러 봇이 같은 Slack 채널에 있으면, 한 봇의 메시지를 다른 봇이 트리거로 오해할 수 있습니다.

예를 들어 Mile이 “Nanny가 확인하면 좋겠습니다”라고 말했을 때, Nanny가 자동으로 반응할지, 사용자의 명시적 호출이 있을 때만 반응할지 기준이 필요합니다.

초기에는 안전하게 가는 것이 좋습니다.

- 사람의 명시적 호출이 있을 때만 반응
- 봇이 쓴 메시지는 기본적으로 트리거로 보지 않기
- 공유 채널에서는 자동 응답보다 멘션 기반 응답 우선

이 기준이 없으면 봇끼리 대화를 주고받다가 채널이 시끄러워질 수 있습니다.


Before vs After

Before:

  • 하나의 봇이 일상, 감정, 임신, 육아, 기록을 모두 담당했다.

  • 임신·출산·육아처럼 조심스러운 주제도 일반 일상 대화 톤과 섞일 수 있었다.

  • 어떤 내용을 어떤 봇이 맡아야 하는지 경계가 모호했다.

  • 임신 주차별 준비, 출산 후 신청/예약/혜택, 위험 신호 확인이 봇의 최우선 업무로 정리되어 있지 않았다.

  • Slack에 여러 봇을 붙일 때 토큰과 역할이 섞일 위험이 있었다.

After:

  • Mile은 일상 대화의 중심이자 오케스트레이터로 정의됐다.

  • Nanny는 임신·출산·육아 전문 돌봄 봇으로 분리됐다.

  • Nanny는 존댓말, 따뜻함, 단호함을 함께 가진 톤으로 설정됐다.

  • 임신 관련 핵심 기억이 Nanny의 MEMORY.md에 최우선으로 저장됐다.

  • 임신출산준비.numbers 자료를 바탕으로 임신 주차별, 출산 후, 육아 월령별 체크 기준이 추가됐다.

  • 위험 신호 확인 → 현재 주차/단계 계산 → 해야 할 일/혜택 체크 → 감정 수용 순서가 Nanny의 기본 운영 흐름으로 잡혔다.

  • Slack 연결을 위한 manifest와 토큰 입력·검증 스크립트까지 준비됐다.

  • bot-to-bot 협력 시 주의할 기준이 생겼다.


결과와 배운 점

이번 작업에서 가장 크게 느낀 점은, AI 봇을 만든다는 것이 단순히 “프롬프트를 잘 쓰는 것”만은 아니라는 점이었습니다.

중요한 것은 역할 설계였습니다.

Mile과 Nanny는 같은 사용자 Nile을 돕지만, 서로 다른 역할을 맡습니다.

Mile은 일상 대화의 중심입니다.
전체 흐름을 듣고 조율합니다.

Nanny는 임신·출산·육아 영역을 더 깊게 다룹니다.
존댓말을 쓰고, 따뜻하지만 필요한 부분은 분명하게 말합니다.

이렇게 역할을 나누니 AI 봇이 단순한 채팅 상대가 아니라, 작은 팀처럼 느껴졌습니다.

특히 Hermes의 profile 구조는 이런 역할 분리에 잘 맞았습니다.

SOUL.md로 정체성을 정하고,
AGENTS.md로 운영 방식과 우선순위를 정하고,
MEMORY.md로 장기 기억과 주차별 기준을 분리하니,
각 봇이 맡은 역할이 훨씬 선명해졌습니다.

이번에 특히 좋았던 점은 Nanny가 “좋은 말투의 봇”에서 멈추지 않았다는 것입니다.

임신·출산·육아는 시기가 중요합니다. 어떤 주에는 병원에서 확인할 것이 있고, 어떤 주에는 신청해야 할 것이 있고, 출산 후에는 산모와 아기에게 각각 봐야 할 위험 신호가 있습니다.

그래서 Nanny에게 감정 수용만 맡기지 않고, 위험 신호와 시기별 체크리스트를 먼저 보게 만든 것이 제일 실용적인 변화였습니다.

그리고 개인적으로는, 컨디션이 좋지 않아서 스터디에 많이 참여하지 못한 시간이 그냥 비어 있는 시간이 아니었다는 점도 좋았습니다.

지금 제 몸과 삶의 변화에서 실제로 필요한 도구를 만들었고, 그 과정 자체가 이번 스터디에서 제가 할 수 있는 가장 현실적인 실습이 되었습니다.


다음에 해볼 것

아직 남은 작업은 Slack Token을 넣고 실제로 @nanny와 대화해보는 것입니다.

다음 단계는 이렇습니다.

1. Nanny용 Slack App 생성
2. Nanny 전용 SLACK_BOT_TOKEN, SLACK_APP_TOKEN 발급
3. set_nanny_slack_tokens.sh로 nanny 프로필의 .env에 토큰 저장
4. verify_nanny_slack.sh로 토큰 존재 여부와 Slack bot identity 확인
5. nanny gateway 시작
6. Slack에서 @nanny 호출 테스트
7. Mile과 Nanny가 같은 채널에서 역할을 나눠 동작하는지 확인
8. 임신 주차가 바뀌는 날 Nanny가 주차별 안내를 제대로 해주는지 확인

여기까지 되면, Nile은 Slack에서 자연스럽게 Mile과 일상 대화를 하고, 임신·출산·육아와 관련된 내용은 Nanny가 더 세심하게 이어받는 구조를 사용할 수 있게 됩니다.

작은 실험이지만, Hermes의 profile 기능을 활용해서 AI 봇을 “개별 도구”가 아니라 “역할이 나뉜 팀”으로 설계해본 기록이었습니다.

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

온·오프라인 AI 스터디

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