텔레그램 개인 일정 채널을 Hermes Agent와 연결해 아침·저녁 일정 브리핑 텔레그램 만들기
Hermes Agent를 텔레그램 봇과 연결해 개인 비서처럼 사용하고 있습니다. 일정 공지가 여러 대화방과 자료에 흩어지는 문제가 있어, 일정만 모아두는 비공개 텔레그램 채널을 만들고 Hermes 봇도 참여시켰습니다.
목표는 단순했습니다.
- 일정 공지는 전용 채널에 모아둔다.
- Hermes가 수신한 일정 정보를 저장한다.
- 매일 오전 7시에는 당일 일정을 알려준다.
- 매일 오후 10시에는 다음 날 일정을 알려준다.
- 결과는 내가 Hermes와 대화하는 텔레그램 DM으로 받는다.
처음에는 채널에 초대만 하면 되는 줄 알았다
텔레그램 화면에서는 Hermes 봇이 비공개 채널에 정상적으로 참여한 상태였습니다. 그런데 채널에 글을 올려도 Hermes가 내용을 처리하지 못했습니다.
게이트웨이 로그를 확인해 보니 텔레그램에서 게시물은 도착하고 있었습니다. 문제는 그다음 단계였습니다.
텔레그램 채널 게시물
→ Hermes 게이트웨이 도착
→ Hermes 권한검사에서 차단
→ 에이전트에게 전달되지 않음
채널 게시물은 일반적인 개인 메시지와 발신자 구조가 다릅니다. 개인 사용자의 ID 대신 채널 자체가 발신 주체가 될 수 있습니다. 당시 Hermes에는 제 개인 계정만 허용돼 있었고, 일정 채널의 ID는 허용목록에 없었습니다.
즉, 텔레그램이 막은 것도 아니고 봇이 채널에서 쫓겨난 것도 아니었습니다. Hermes의 채널 권한 설정이 빠져 있던 것입니다.
채널을 공개로 바꿀 필요는 없었다
처음에는 비공개 채널이라서 읽지 못하는 것인지도 의심했습니다. 하지만 공개·비공개 여부와 Hermes의 권한검사는 별개였습니다.
채널을 공개로 전환하면 검색과 링크 접근은 쉬워지지만, Hermes의 허용목록에 없는 채널 게시물이 자동으로 승인되는 것은 아닙니다. 개인 일정이 들어가는 채널이므로 공개로 바꾸지 않고 비공개 상태를 유지했습니다.group_allowed_chats에 채널 등록
Hermes 설정 파일의 텔레그램 플랫폼 항목에 일정 채널의 내부 ID를 등록했습니다. 실제 ID는 개인정보 보호를 위해 아래 예시에서 가렸습니다.
gateway:
platforms:
telegram:
extra:
group_allowed_chats: "<PRIVATE_CHANNEL_ID>"
설정 전에는 원본 설정 파일도 별도로 백업했습니다. 이후 텔레그램 대화창에서 다음 명령으로 게이트웨이를 재시작했습니다.
/restart
게이트 웨이가 종료된 뒤 다시 시작됐고, 텔레그램 연결이 복구된 것도 로그로 확인했습니다. Windows 전체가 재부팅되는 것은 아니어서 브라우저, 문서 작업, 증권 프로그램 같은 일반 작업에는 영향을 주지 않았습니다. 다만 Hermes가 다른 일을 실행 중일 때 재시작하면 해당 작업이 중단될 수 있으므로, 작업이 없는 시점에 하는 편이 안전합니다.
오전 7시와 오후 10시 브리핑 설정
Hermes의 예약 작업 기능을 이용해 두 개의 일정 브리핑을 구성했습니다.
매일 오전 7시
0 7 * * *
서울 시간 기준 당일 일정만 골라 시간순으로 알려줍니다.
표시 항목은 다음과 같습니다.
- 시작 시각
- 일정 제목
- 온라인·대면 여 부
- 장소
- 확인된 경우 종료 시각과 권장 도착 시각
- 일정이 겹치면 충돌 경고
매일 오후 10시
0 22 * * *
서울 시간 기준 다음 날 일정을 같은 형식으로 알려줍니다.
예약 작업은 일정 원본 JSON과 Hermes가 실제로 수신해 저장한 채널 세션을 함께 확인하도록 구성했습니다. 같은 일정이 다시 들어와도 날짜·시간·제목을 기준으로 중복 저장하지 않도록 했습니다.
회의 암호, 로그인 정보, OTP, 인증코드 같은 민감정보는 일정 파일에 저장하거나 브리핑에서 다시 출력하지 않도록 제한했습니다.
전체 동작 구조
현재 구성은 다음과 같습니다.
비공개 일정 채널
→ Hermes가 새 게시물을 수신
→ 채널 세션에 보관
→ 일정 원본과 대조
→ 중복 없이 일정 정리
→ 오전 7시: 당일 일정 DM 안내
→ 오후 10시: 다음 날 일정 DM 안내
새 게시물이 올라오자마자 DM으로 전달하는 기능은 당분간 보류했습니다. 지금 필요한 것은 실시간 알림보다 하루 두 번 정리된 브리핑이었기 때문입니다.
텔레그램 봇의 중요한 제한
여기서 오해하기 쉬운 부분이 있습니다. Hermes 봇은 비공개 채널의 과거 게시물 목록을 마음대로 거슬러 읽을 수 없습니다.
- 봇을 초대하기 전에 올라온 글
- Hermes 권한 설정 전에 차단된 글
- 게이트웨이가 수신하지 못한 과거 글
이런 글은 설정을 바꾼 뒤에도 자동으로 다시 전달되지 않습니다.
따라서 예약 작업이 “매일 채널 화면을 열어 모든 과거 글을 읽는 것”은 아닙니다. Hermes가 새로 수신해 세션에 보관한 내용과 별도의 일정 원본을 정해진 시각에 다시 점검하는 방식입니다.
기존 게시물을 일정에 반영하려면 새 게시물로 다시 올리거나, Hermes와의 DM으로 전달해야 합니다.
실제로 확인한 범위
현재까지 실제로 확인한 내용은 다음과 같습니다.
- Hermes 봇의 비공개 일정 채널 참여
- 채널 게시물이 Hermes 게이트웨이까지 도착한 기록
- 권한검사에서 차단된 원인
- 채널 ID의 group_allowed_chats 등록
- 게이트웨이 재시작과 텔레그램 재연결
- 오전 7시 당일 일정 작업 활성화
- 오후 10시 다음 날 일정 작업 활성화
- 오후 10시 작업의 시험 실행 성공
- 텔레그램 DM 전달 오류 없음
다만 허용 설정 적용 후 새로운 채널 게시물이 실제로 채널 세션에 저장되는 전체 과정은 아직 별도의 새 게시물로 검증하지 않았습니다. 예약 브리핑 자체는 작동하지만, 채널 신규 게시물부터 일정 반영까지의 전체 연결은 새 게시물을 올린 뒤 한 번 더 확인해야 합니다.
다른 사용자에게 권하고 싶은 확인 순서
비슷한 구성을 만들려면 다음 순서가 안전합니다.
1. 일정 전용 비공개 채널을 만든다.
2. Hermes 텔레그램 봇을 채널 관리자로 추가한다.
3. 테스트 게시물을 올리고 게이트웨이 도착 여부를 확인한다.
4. 채널 ID를 group_allowed_chats에 등록한다.
5. Hermes 게이트웨이를 재시작한다.
6. 설정 적용 후 새 테스트 게시물을 올린다.
7. 채널 세션 생성과 게시물 저장을 확인한다.
8. 오전·오후 예약 브리핑을 만든다.
9. 예약 작업을 한 번 시험 실행한다.
10. 실제 DM 전달까지 확인한 뒤 자동화가 완료됐다고 판단한다.
채널 초대, 게이트웨이 도착, 권한 통과, 에이전트 처리, 예약 전달은 서로 다른 단계입니다. 화면에 봇이 보인다는 이유만으로 전체 자동화가 끝났다고 생각하면 문제 원인을 찾기 어렵습니다.
이 사례에서 가장 유용했던 점은 일정 채널을 공개하지 않고도 개인 일정 수집 공간으로 유지하면서, 필요한 시간에만 정리된 브리핑을 받을 수 있게 된 것입니다. 다만 텔레그램 봇은 과거 글을 자유롭게 탐색할 수 없으므로, “새로 수신한 내용을 저장하고 정기적으로 재확인한다”는 구조로 설계해야 합니다.