카카오톡 연결 경험을 또깡이(Hermes Agent) 운영 스킬로 만든 방법
Telegram에서 개인 AI 비서 또깡이(Hermes Agent)를 사용하고 있는대 뽀짝이나 다른 스터디방에서
봇을 사용하는걸 보고 카카오톡으로도 헤르메스와 소통하게 만들고 싶었습니다.
그리고 가족이나 지인과 자주 소통하는 채널이 카카오톡이라 Telegram에서만 쓰던 에이전트를
카카오톡에서도 사용할 수 있게 만들고 싶었습니다.
목표는 단순한 자동응답이 아니었습니다.
카카오톡에서도 “또깡아”라고 부르면 필요한 정보를 안내하기
Telegram에서 작성한 공지를 카카오톡 지정 방으로 전달하기
모든 대화를 무작정 읽거나 장기 기억으로 저장하지 않기
정해 둔 채팅방과 호출어에만 반응하기
개인 정보나 중요한 실행 요청은 소유자만 처리하기
즉, Telegram은 또깡이를 제어하는 개인 채널, 카카오톡은 생활 안내와 공지를 전달하는 채널로 역할을 나눴습니다.
이 작업의 진짜 목표는 브리지를 한 번 연결하는 데 그치지 않는 것이었습니다. 인증이 만료됐을 때, 새 채팅방을 추가할 때, Telegram에서 카카오톡으로 공지를 보낼 때마다 같은 판단을 반복하지 않도록, 검증한 운영 절차를 재사용 가능한 Hermes 스킬로 남기는 것이 목표였습니다.
이 사례에서 만든 스킬은 무엇인가?
personal-hermes-operations — 에이전트와 대화하며 만든 운영 스킬
이 스킬은 이 개인 Hermes 환경을 운영하며 축적한 방법을 묶어 둔 커스텀 스킬입니다.
스킬 파일의 메타데이터에도 author: agent, created_by: agent로 기록돼 있습니다.
카카오톡 연결만 따로 떼어 적지 않고, 아래처럼 반복되는 개인 에이전트 운영 문제를 담았습니다.
개인 Hermes 운영
├─ 프로필·SOUL.md·메모리 경계
├─ Telegram Gateway와 개인 제어 채널
├─ 전용 카카오 계정과 안전한 브리지 운영
├─ Mac mini 상시 실행·장애 확인
├─ 모델/공급자 전환
└─ 반복되는 설정·검증 절차
스킬을 만든 이유는 “어떤 명령을 실행했는가”보다 “어떤 상황에서 무엇을 확인하고,
어디까지 자동화해도 안전한가”를 다음에도 똑같이 적용하기 위해서입니다.
함께 참고·활용한 기존 스킬
아래 두 개는 이번 사례를 위해 새로 만든 스킬이 아니라, 이미 있던 브리지 운영 스킬입니다. personal-hermes-operations에 사용자 환경의 실제 운영 규칙을 넣고, 이 두 스킬에는 일반화 가능한 브리지 원칙을 참고하는 구조입니다.
스킬
구분
이 사례에서 맡은 역할
kakaotalk-agent-bridge
기존 스킬
카카오 Listener → Node 브리지 → Hermes → 카카오 응답의 구조, chat ID 허용 목록, 발송 검증
chat-bridge-operations
기존 스킬
호출어, 중복 방지, 그룹 안전 경계, “그대로 보내기”와 read-back 검증
personal-hermes-operations
직접 만든 커스텀 스킬
내 Hermes 환경의 전용 계정·Telegram 제어 채널·Mac mini 운영·브리지 정책을 재사용 가능하게 정리
스킬 연결 관계
kakaotalk-agent-bridge
└─ 카카오톡 전송·수신 구조와 검증 원칙
chat-bridge-operations
└─ 호출어·허용 방·중복 방지·그룹 안전 경계
personal-hermes-operations
└─ 위 원칙을 내 Hermes 환경에 맞춰
Telegram 제어 채널 + 전용 계정 + Mac mini 운영으로 결합
왜 personal-hermes-operations를 만들었나
카카오톡 연결에는 인증, 전용 계정, 채팅방 허용 목록, Telegram 공지, Mac mini 상시 실행, 세션 만료 대응처럼 서로 연결된 결정이 많았습니다. 이 내용을 대화 기록이나 메모리에 흩어 두면 다음번 장애·설정 변경 때 다시 찾아야 합니다.
그래서 개인 Hermes 환경에서 반복해서 쓰는 운영 지식만 스킬로 만들었습니다. 일반적인 Hermes 명령의 정확한 문법은 공식 hermes-agent 스킬과 문서를 우선하고, personal-hermes-operations는 “내 환경에서는 무엇을 어떤 순서와 경계로 운영하는가”를 담당합니다.
스킬이 담고 있는 기능
기능 영역
스킬이 제공하는 운영 지침
카카오톡 사례에서의 연결
프로필·정체성
기본/전문 프로필 구분, SOUL.md·메모리의 역할 분리
어떤 또깡이 프로필이 답할지 혼동하지 않음
Telegram 제어 채널
개인 요청·승인·예약 알림의 기준 채널 운영
Telegram에서 카카오톡 공지·예약을 제어
카카오 브리지
전용 계정, 허용 방, 호출어, 발송 전후 검증
허용된 방에서만 응답하고 지정 방에만 발송
개인정보 경계
비소유자는 공개 정보만, 민감 실행은 소유자 승인
단체방에서 개인 기록·기기·계정 정보가 노출되지 않음
Mac mini 상시 운영
Gateway·브리지·예약 작업의 상태 확인과 재시작 원칙
연결이 끊기거나 재부팅된 뒤에도 점검 경로가 명확함
모델·도구 운영
공급자 전환, 스킬 설치·갱신, 인증된 도구의 점검
특정 도구 오류를 일반 대화 오류와 구분해 처리
공개 사례 작성
이름·장소·방명·식별값 익명화, 산출물 검증
이 글과 이미지에서 실제 정보를 제거
실제로 어떻게 동작하는가
이 스킬은 카카오톡 메시지를 직접 보내는 프로그램이나 상시 실행 서버가 아닙니다. 또깡이가 관련 요청을 받았을 때 먼저 읽는 운영 매뉴얼입니다.
1. 사용자가 “카카오톡 연결/전송/브리지/상시 운영”을 요청
2. 또깡이가 personal-hermes-operations 스킬을 불러옴
3. 현재 프로필·서비스·인증 상태·허용 범위를 실제 도구로 확인
4. 카카오 특화 작업이면 kakaotalk-agent-bridge도 함께 참고
5. 필요한 경우에만 agent-kakaotalk CLI 또는 브리지 스크립트 실행
6. 발송·설정 변경 같은 외부 작업은 대상과 범위를 확인
7. 결과를 실제 로그·조회 결과로 검증해 보고
즉, 역할을 나누면 다음과 같습니다.
personal-hermes-operations = 내 환경의 운영 판단과 체크리스트
kakaotalk-agent-bridge = 카카오 브리지의 일반 안전 설계
agent-kakaotalk = 카카오톡에 실제로 로그인·조회·전송하는 CLI
kakao-bridge.mjs = 수신 메시지와 Hermes를 연결하는 실행 코드
이 구분이 중요한 이유는, 스킬 문서만으로 카카오톡이 자동 연결되는 것은 아니기 때문입니다. 스킬은 안전하고 재현 가능한 작업 순서, CLI와 브리지는 실제 실행을 맡습니다.
진행 방법
1. 또깡이용 카카오톡 계정을 따로 만들기
어떻게 카카오톡으로 연결할 수 있을까 ? 카카오톡으로 연결하면 불안정하다고 하던대 라는 후기들이 있어서
이것저것 찾아보다가 agent-kakaotalk 을 알게 되었습니다.
카카오톡에서 Hermes Agent와 대화하려면 기존 개인 카카오톡 계정이 아니라 또깡이 전용 카카오톡 계정이 필요했습니다. 개인 계정을 연결하면 개인 대화와 AI 에이전트의 활동 범위가 섞일 수 있기 때문입니다.
그래서 먼저 필요한 조건을 정리했습니다.
- 별도 전화번호
- 새 카카오톡 계정
- 최초 가입과 기기 인증을 할 수 있는 스마트폰 또는 태블릿
- Hermes와 연결할 Mac mini
마침 데이터 함께쓰기 유심을 사용할 수 있는 태블릿이 있었고, 태블릿에서 카카오톡을 새로 가입하고, 프로필을 설정했습니다. 이 계정은 필요한 채팅방에 초대하는 전용 에이전트 계정으로만 사용했습니다.
[태블릿 + 데이터 함께쓰기 유심]
│ 새 카카오톡 계정 가입 · 최초 인증
▼
[또깡이 카카오톡 전용 계정]
│
▼
[Mac mini의 Agent Messenger]
│
▼
[또깡이(Hermes Agent)]
태블릿은 계정 가입과 최초 인증을 처리하는 역할입니다. 실제 메시지 수신·답변 생성·전송은 Mac mini Hermes Agent가 맡습니다. 비밀번호나 인증번호를 AI에게 알려주는 방식이 아니라, 계정 인증은 태블릿에서 직접 처리했습니다.
2. 사용한 도구
구분
이름
역할
AI 에이전트
또깡이(Hermes Agent)
자연어 요청을 이해하고 답변·알림·공지 생성
제어 채널
Telegram
개인 요청, 승인, 결과 확인
카카오 연결
Agent Messenger / agent-kakaotalk
카카오톡 전용 계정 로그인, 메시지 조회·전송
실행 환경
Mac mini
Hermes와 카카오 브리지를 계속 실행
연결 코드
Node.js 브리지
카카오톡 메시지 → Hermes → 카카오톡 답변 연결
3. agent-kakaotalk은 어디에서 확인하나
agent-kakaotalk은 Hermes 스킬이 아니라 오픈소스 프로젝트 agent-messenger에 포함된 카카오톡 CLI입니다. 이 사례에서 실제 카카오톡 로그인, 채팅방 조회, 메시지 전송을 담당하는 실행 도구입니다.
프로젝트 확인: agent-messenger GitHub 저장소
이 환경에서 확인한 설치 버전:
agent-messengerv2.32.3로컬 설치 확인 명령:
agent-kakaotalk --version
agent-kakaotalk --help
실행하면 아래처럼 카카오톡 계정과 대화에 관련된 명령 범주를 확인할 수 있습니다.
agent-kakaotalk auth # 인증 상태·계정 관련 확인
agent-kakaotalk chat # 채팅방 조회
agent-kakaotalk member # 참여자 조회
agent-kakaotalk message # 메시지 조회·전송
agent-kakaotalk whoami # 현재 인증된 전용 계정 확인
따라서 공개 사례글에서는 agent-kakaotalk을 “또깡이가 만든 스킬”이라고 쓰면 안 됩니다. 정확한 구분은 다음과 같습니다.
agent-messenger / agent-kakaotalk
= 외부 오픈소스 CLI 도구
personal-hermes-operations
= 이 환경을 위해 만든 Hermes 커스텀 운영 스킬
kakaotalk-agent-bridge
= Hermes와 카카오 CLI를 안전하게 연결하는 기존 운영 스킬
4. 전체 흐름
[Telegram의 사용자]
│ 요청 · 공지 지시 · 예약 알림
▼
[또깡이(Hermes Agent)]
│
├─ Telegram으로 답변 및 알림
▼
[Mac mini의 카카오 브리지]
│ 허용 방 · 호출어 · 중복 · 개인정보 검사
▼
[agent-kakaotalk]
▼
[카카오톡 전용 에이전트 계정]
▼
[챗1번방 · 챗2번방]
4. 구현 요구사항을 정리한 프롬프트
Mac mini에서 또깡이(Hermes Agent)와 카카오톡 전용 계정을 연결해
지정한 카카오톡방에서만 동작하는 개인 AI 비서를 만들어줘.
목표:
- Telegram에서는 기존처럼 또깡이(Hermes Agent)를 사용한다.
- 카카오톡에서는 별도 또깡이 계정이 지정한 방에 참여한다.
- 카카오톡에서 “또깡아” 또는 “또깡이”라고 부를 때만 답한다.
- Telegram에서 “챗1번방에 이 내용을 보내줘”라고 요청하면
승인된 카카오톡방에 안내문을 보낼 수 있어야 한다.
안전 조건:
- 개인 카카오톡 본계정이 아니라 별도 에이전트 계정을 사용한다.
- 허용 목록에 등록한 채팅방에서만 동작한다.
- 일반 대화를 모두 AI에 전달하거나 장기 기억으로 저장하지 않는다.
- 호출어가 있는 메시지나 허용된 링크 요청만 처리한다.
- 같은 메시지에는 한 번만 답한다.
- 채팅방 참여자는 공개 정보만 조회할 수 있다.
- 개인 일정, 파일, 계정, 비밀번호, 토큰, 결제,
기기 제어 같은 요청은 소유자만 처리할 수 있게 한다.
- 내부 오류, 서버 경로, 인증 정보는 카카오톡에 노출하지 않는다.
검증 순서:
1. 카카오톡 전용 계정 로그인
2. 테스트 채팅방 메시지 조회
3. 승인한 문구 1건 전송
4. 호출어 반응 확인
5. 허용되지 않은 방과 민감한 요청이 차단되는지 확인
6. Telegram에서 카카오톡 공지를 보낼 수 있는지 확인
5. 안전장치 코드 예시
실제 구현에서는 방 이름이 아니라 고유 채팅방 ID를 허용 목록에 등록했습니다. 이름이 비슷한 방에 잘못 보내는 일을 줄이기 위해서입니다.
const ALLOWED_CHAT_IDS = new Set(["CHAT_1_ID", "CHAT_2_ID"]);
const WAKE_WORD = /^\s*(?:또깡아|또깡이)\s*/;
function canReply(event) {
return ALLOWED_CHAT_IDS.has(String(event.chat_id))
&& WAKE_WORD.test(event.message)
&& event.author_id !== ownUserId;
}
허용된 방인가?
→ 또깡이를 호출했는가?
→ 또깡이 계정이 보낸 메시지는 아닌가?
→ 이미 처리한 메시지는 아닌가?
→ 민감한 요청은 아닌가?
→ 조건을 통과한 경우에만 Hermes에 전달
6. 활용 예시
아래는 모두 실제 이름·일정·채팅방을 제거한 공개용 예시입니다. 요청만 보여주지 않고, 또깡이가 어떤 방식으로 답하거나 전달하는지도 함께 적었습니다.
카카오톡에서 생활 정보 안내받기
[챗1번방 사용자]
또깡아, 이번 주에 챙길 일정 알려줘.
[또깡이(Hermes Agent)]
📅 이번 주 확인할 일정입니다.
• 월요일 10:00 — 정기 확인
• 수요일 14:00 — 준비할 일
• 금요일 09:00 — 신청 마감 확인
변경된 일정이 있으면 Telegram에서도 함께 알려드릴게요.
Telegram에서 카카오톡 공지 보내기
[Telegram의 사용자]
또깡아, 챗1번방에
“내일 오전 일정이 있으니 확인 부탁드립니다.”라고 보내줘.
[또깡이(Hermes Agent) → Telegram]
챗1번방에 아래 내용으로 전송했습니다.
📌 안내
내일 오전 일정이 있으니 확인 부탁드립니다.
[챗1번방에 도착한 메시지]
📌 안내
내일 오전 일정이 있으니 확인 부탁드립니다.
예약 알림을 두 채널에 보내기
[Telegram의 사용자]
다음 달 첫째 주 월요일 오전 9시에
Telegram과 챗1번방에 준비 안내를 보내줘.
[또깡이(Hermes Agent) → Telegram]
✅ 예약했습니다.
• 일정: 다음 달 첫째 주 월요일 오전 9시
• 대상: Telegram, 챗1번방
• 내용: 준비 안내
[예약 시각의 Telegram·챗1번방 메시지]
⏰ 준비 안내
오늘 확인할 준비 항목이 있습 니다.
필요한 내용과 시간을 다시 확인해 주세요.
허용 범위를 벗어난 요청의 처리 예시
[챗2번방 사용자]
또깡아, 다른 사람의 개인 일정을 알려줘.
[또깡이(Hermes Agent)]
죄송하지만 개인 일정이나 계정 관련 정보는 안내할 수 없습니다.
공개적으로 확인 가능한 정보라면 도와드릴게요.
이 마지막 예시는 단순히 “대답을 잘하는 봇”이 아니라, 채널·사용자·정보 종류에 따라 권한을 구분하도록 만든 이유를 보여줍니다.
결과와 배운 점
카카오톡을 또깡이의 두 번째 생활 채널로 만들었습니다
이제 또깡이(Hermes Agent)는 Telegram에서만 쓰는 도구가 아니라, 필 요할 때 카카오톡에서도 만날 수 있는 개인 AI 비서가 됐습니다.
채널
역할
Telegram
개인 요청, 제어, 승인, 예약 알림
KakaoTalk
생활 안내, 허용된 질문 응답, 공지 전달
Mac mini
또깡이와 두 메신저를 연결하는 실행 환경
배운 점과 꿀팁
연결보다 반응 범위를 먼저 정하는 것이 중요했습니다.
허용된 채팅방만 → 호출어가 있을 때만 → 한 메시지에 한 번만 → 공개 정보만 → 민감한 실행은 소유자 승인 후Telegram과 KakaoTalk은 역할이 달라도 됩니다. Telegram은 제어 채널, 카카오톡은 안내·공지 채널로 나누니 구조가 단순해졌습니다.
카카오톡 메시지는 모바일에 맞게 짧게 써야 했습니다. 표보다 짧은 제목, 이모지, 번호 목록, 빈 줄이 읽기 좋았습니다.
시행착오
카카오 연결 세션이 만료되면 메시지 전송이 실패할 수 있었습니다. 전송 전 인증 상태 확인과 전용 계정 재인증 경로가 필요했습니다.
Telegram의 Markdown 형식이 카카오톡에서 똑같이 보기 좋지는 않았습니다. 카카오톡 전송용 메시지는 별도로 간결하게 구성했습니다.
“그대로 보내줘” 요청에서 내용을 임의로 요약하면 원문과 달라질 수 있었습니다. 전송할 대상과 문구를 고정해 확인하는 원칙이 필요했습니다.
앞으로의 계획
챗1번방은 공지 전용, 챗2번방은 생활 정보 안내처럼 방별 역할을 나누기
반복 일정·신청일·준비 안내를 Telegram과 카카오톡에 함께 예약 발송하기
Telegram에서 카카오톡 전송 전 대상·문구·즉시/예약 여부를 먼저 미리보기로 확인하기
스킬을 만들며 배운 점
처음부터 거대한 “카카오톡 자동화 만능 스킬”을 만들지는 않았습니다. 이미 있던 kakaotalk-agent-bridge, chat-bridge-operations의 검증된 일반 원칙은 그대로 참고하고, 내 환경에서만 반복되는 사실과 운영 결정을 personal-hermes-operations에 추가했습니다.
기존 일반 스킬
→ 안전한 브리지 설계법을 제공
내 커스텀 스킬
→ 내 프로필·전용 계정·운영 규칙·상시 실행 환경을 제공
새 요청
→ 일반 원칙 + 내 환경 규칙을 함께 불러와 처리
이렇게 나누면 특정 서비스나 계정이 바뀌어도 일반 원칙을 다시 만들 필요가 없고, 내 환경의 변화만 커스텀 스킬에 짧게 갱신하면 됩니다.