작성일·최종 확인일: 2026-08-29
휴대폰에서 Telegram 메시지 한 줄을 보내고 집이나 사무실의 PC가 일을 처리하면 편리합니다. 다만 Telegram 봇 자체가 PC 파일을 정리하는 것은 아닙니다. 봇은 메시지를 받는 입구에 가깝고, 실제 작업은 PC에서 실행 중인 Gateway, 에이전트, 허용된 도구가 맡습니다. 이 구분을 놓치면 “봇 토큰을 넣었는데 왜 파일이 생기지 않지?” 같은 상태에서 원인을 찾기 어렵습니다.
이 글은 Windows PC에서 Hermes Agent의 messaging gateway를 통해 개인용 요청 흐름을 검토하는 사람을 위한 노트입니다. 특정 설치에서 아래 명령을 실행해 성공했다는 보고서가 아니라, 제가 구성할 때 확인하는 순서와 실패 경계를 정리한 글입니다. Hermes의 명령과 지원 채널은 바뀔 수 있으므로 실제 설정 전에는 글 아래의 공식 문서를 다시 확인합니다.
먼저 네 구간으로 나눠 본다
- Telegram이 사용자의 메시지를 봇 계정으로 전달합니다.
- Hermes Gateway가 허용된 채팅의 메시지를 해당 세션이나 프로필로 전달합니다.
- 에이전트가 요청을 해석하고 PC에서 허용된 파일·터미널·브라우저 도구를 호출합니다.
- 도구 결과와 실제 대상 상태를 확인한 뒤 답변을 Telegram으로 돌려보냅니다.
제가 가장 신경 쓰는 곳은 3번과 4번 사이입니다. 도구가 “성공”을 반환해도 원하는 파일이 올바른 폴더에 생겼는지, 조회 대상이 맞았는지는 별도 확인이 필요합니다. 메시지 전송 성공과 업무 완료도 다릅니다. 완료 보고에는 실행 여부뿐 아니라 확인한 대상과 검증 방법이 들어가야 합니다.
대상 독자와 문제 상황
PC 앞에 있지 않을 때 현재 작업 상태를 묻거나, 정해진 내부 보고서를 준비시키고 싶은 1인 운영자를 기준으로 합니다. 반대로 원격으로 결제를 승인하거나, 관리자 비밀번호를 보내거나, 고객에게 바로 메시지를 발송하려는 흐름은 첫 대상에서 제외합니다. 휴대폰 메신저는 편리한 만큼 잘못된 대화방과 전달, 잠금 화면 알림을 통해 내용이 노출될 수 있습니다.
저는 첫 요청을 “작성해 줘”보다 “읽어서 알려 줘”로 잡습니다. 예를 들면 승인된 상태표에서 특정 프로젝트의 현재 단계만 읽는 요청입니다. 이것도 실제 고객명 대신 가상 ID로 시험합니다. 다른 프로젝트의 정보가 섞이지 않고, 대상이 없을 때 없다고 답하며, 모호한 이름에서는 멈추는지 확인합니다.
기준 환경
- 잠금과 사용자 계정 보호가 설정된 Windows PC
- 로컬에서 정상 대화가 확인된 Hermes Agent
- Telegram 봇과 Hermes messaging gateway
- 업무별로 분리한 프로필 또는 명시적인 작업 범위
- 현재 상태를 다시 읽을 CSV·데이터베이스·프로젝트 파일
Gateway부터 켜기 전에 로컬 대화와 도구가 각각 동작하는지 확인합니다. 공식 Quickstart도 기본 채팅이 정상적으로 완료되지 않으면 gateway나 cron 같은 기능을 먼저 얹지 말라고 안내합니다. 원인을 한 번에 하나씩 확인하기 위한 현실적인 순서입니다.
1단계: 로컬에서 읽기 요청을 확인한다
메신저를 연결하기 전 PC에서 같은 요청을 실행합니다. 작업 디렉터리가 어디인지, 허용된 상태 원본을 읽는지, 결과에 전체 경로나 민감값을 출력하지 않는지 봅니다. 이 단계가 실패하면 Telegram을 붙여도 실패 지점만 늘어납니다.
예시 요청은 다음처럼 작게 씁니다.
예시: 프로젝트 sample의 현재 상태를 원본 CSV에서 다시 읽어 요약해 줘.
조건: 파일을 수정하지 말고, 항목을 찾지 못하면 추측하지 말고 중단해 줘.
이는 설명용 문장입니다. 실제 프로젝트나 실행 사실을 뜻하지 않습니다. 응답이 자연스러운지만 보지 않고, 어떤 파일을 원본으로 읽었는지와 조회 대상이 일치하는지 확인합니다.
2단계: Gateway와 Telegram을 공식 절차로 연결한다
Hermes 공식 문서의 기본 순서는 CLI를 먼저 정상화한 뒤 hermes gateway setup으로 messaging platform을 연결하는 방식입니다. Windows에서는 Desktop 설치 또는 공식 Windows 설치 절차를 따르고, 현재 버전의 도움말을 함께 확인합니다. 인터넷 글에 적힌 오래된 설정 키를 추측해 config.yaml을 직접 고치는 방식은 피합니다.
봇 토큰은 비밀번호와 같은 비밀값입니다. 공개 저장소, 일반 메모, Telegram 대화, 스크린샷에 붙이지 않습니다. 설정 화면이나 승인된 비밀 저장 위치에서만 다루고, 이 글의 예시에도 실제 형태를 넣지 않습니다. 토큰 입력이 필요한 순간은 사용자가 직접 처리하는 편이 안전합니다.
3단계: 누가 요청할 수 있는지 좁힌다
봇 사용자명만 안다고 모든 사람이 PC 작업을 요청할 수 있어서는 안 됩니다. 현재 공식 문서가 제공하는 allowlist, pairing, 승인 설정을 확인하고 허용된 사용자와 채팅만 연결합니다. 그룹 대화가 필요하지 않다면 개인 대화로 시작합니다. 새 대화나 새 사용자가 들어오면 자동 승인하지 않고 명시적으로 검토합니다.
여기서 프로필 분리는 정리 수단이지 보안 샌드박스라고 가정하지 않습니다. Hermes 공식 Profiles 문서는 프로필이 설정, 비밀값, SOUL, 메모리, 세션 등을 분리하지만 파일시스템 접근을 제한하는 샌드박스와는 다르다고 설명합니다. 실제 접근 제한이 필요하면 도구 권한, 터미널 백엔드, 운영체제 계정과 작업 루트를 별도로 설계해야 합니다.
4단계: 메시지를 명령이 아니라 작업 계약처럼 쓴다
“이번 달 거 처리해”는 사람이 배경을 공유할 때만 통합니다. 자동화 요청에는 대상, 원본, 허용 동작, 원하는 결과, 중단 조건이 있어야 합니다. 제가 쓰는 형식은 길지 않습니다.
대상: sample 프로젝트 / 2026-08
원본: 승인된 상태 레지스트리
허용: 읽기와 검토용 요약 생성
금지: 원본 수정, 외부 게시, 메시지 발송
중단: 대상 불일치, 필수 열 누락, 모호한 별칭
위 데이터는 가상 예시입니다. 고객명이나 로컬 절대경로를 Telegram 메시지에 넣지 않습니다. 자주 쓰는 작업이라면 자유 문장보다 검증 가능한 명령 형식이나 버튼을 제공하는 편이 낫지만, 버튼이 승인 경계를 건너뛰게 만들지는 않습니다.
5단계: PC에서 실행한 뒤 정확한 결과를 재확인한다
파일 생성 요청이라면 새 파일을 읽어 제목, 필수 항목, 대상 ID를 검사합니다. 상태 조회라면 요청 직전에 원본을 다시 읽습니다. 스크립트 실행 결과가 정상이어도 출력 파일이 비어 있거나 이전 실행의 파일을 보고 있을 수 있습니다. 응답에는 “명령이 끝남”과 “결과를 확인함”을 구분해 적습니다.
외부 전송은 더 엄격하게 봅니다. 초안 준비와 실제 발송을 나누고, Telegram의 “보내” 한마디가 어떤 계정과 어떤 수신자를 의미하는지 모호하면 멈춥니다. 게시나 삭제 후에는 같은 대상을 다시 조회해야 하지만, 첫 구성에서는 그런 쓰기 동작 자체를 열지 않는 편을 택합니다.
실용적인 시험 시나리오
- 허용된 사용자에게 가상 프로젝트의 읽기 요청을 보냅니다.
- 존재하지 않는 ID를 보내고 추측 없이 중단하는지 봅니다.
- 비슷한 별칭 두 개를 넣고 임의 선택하지 않는지 확인합니다.
- 수정이나 발송을 요구했을 때 승인 경계에서 멈추는지 봅니다.
- Gateway 재시작 뒤에도 올바른 프로필과 세션으로 연결되는지 확인합니다.
- Telegram 응답과 PC의 실제 원본을 사람이 대조합니다.
이 시나리오는 점검안이며 특정 테스트의 결과를 주장하지 않습니다. 실패한 항목이 있으면 권한을 넓혀 우회하지 않고 해당 구간의 설정과 로그를 확인합니다. 로그를 공유할 때는 토큰, 채팅 ID, 사용자명, 로컬 경로를 가립니다.
자주 막히는 접근
첫째, 봇 토큰만 등록하면 PC 자동화가 완성된다고 생각하는 경우입니다. 로컬 에이전트와 Gateway가 실행 중이어야 하고, 요청을 처리할 도구와 원본이 있어야 합니다. 둘째, 여러 업무를 한 프로필에 몰아넣는 경우입니다. 프로젝트별 규칙과 상태가 섞이기 쉬워집니다. 셋째, 성공 응답을 검증으로 대신하는 경우입니다. 메시지가 도착한 사실과 결과가 맞는 사실은 따로 확인해야 합니다.
또 하나는 Gateway 문제를 해결하려고 설정 파일을 인터넷 예시대로 통째로 덮어쓰는 방식입니다. 버전이 다르면 키가 달라질 수 있고 정상 설정까지 잃습니다. 현재 설치의 hermes gateway --help, 설정 명령, 공식 문서를 먼저 봅니다.
검증 체크리스트
- Telegram 연결 전 로컬 채팅과 읽기 도구가 정상인가
- 허용된 사용자와 채팅만 요청할 수 있는가
- 봇 토큰이 채팅, 코드, 로그, 캡처에 노출되지 않는가
- 요청에 대상과 허용 동작, 중단 조건이 들어가는가
- 프로필 분리를 파일 접근 제한으로 오해하지 않았는가
- 모호한 대상에서 자동 선택하지 않고 멈추는가
- 완료 보고 전 실제 파일이나 상태를 다시 읽는가
- 게시·삭제·결제·외부 발송은 별도 사람 승인을 요구하는가
보안·개인정보 주의와 공식 문서
잠금 화면 알림에는 메시지 일부가 노출될 수 있습니다. 요청에는 고객 실명, 의료정보, 계정 복구 코드, 결제정보를 넣지 않습니다. Telegram 계정 자체에도 2단계 인증과 기기 세션 점검을 적용합니다. 인증창, 비밀번호 입력, 결제 화면은 사람이 직접 처리하고 에이전트에는 비밀값이 아닌 완료 상태만 전달합니다.
다음 단계로는 Hermes Agent와 일반 AI 채팅의 차이와 사람이 승인할 작업 경계를 함께 읽어 두면, 메신저 연결과 실행 권한을 같은 문제로 뭉뚱그리지 않는 데 도움이 됩니다.