Skip to main content

2부·7장 첫 대화: Telegram에서 "안녕"이라고 말해보기

2부·7장 첫 대화: Telegram에서 "안녕"이라고 말해보기

설치가 끝났다고 끝난 게 아니다

여기서부터가 진짜 시작이다. 터미널에 설치 로그가 예쁘게 지나갔다고 해서, 내 손안의 메신저에서 에이전트가 살아 움직이는 것은 아니다. OpenClaw는 설치된 순간보다 첫 응답이 돌아오는 순간 비로소 감이 잡힌다. 그 한마디, "안녕"에 사실은 꽤 많은 것이 걸려 있다. 게이트웨이가 떠 있어야 하고, 모델 연결이 살아 있어야 하며, 텔레그램 봇 토큰이 맞아야 하고, DM 접근 정책도 통과해야 한다.

그래서 이 장의 목표는 단순하다. Telegram에서 봇을 만들고, OpenClaw와 연결하고, 페어링을 승인한 뒤, 실제로 첫 답장을 받아내는 것. 그 한 번이 되면 그다음부터는 커스터마이징도, 자동화도, 스킬도 훨씬 덜 추상적으로 느껴진다.

왜 첫 채널은 Telegram이 좋은가

처음 붙일 메신저로 Telegram이 자주 추천되는 이유는 단순히 유명해서가 아니다. 봇을 공식적으로 다루는 구조가 잘 마련되어 있고, OpenClaw 쪽에서도 Telegram DM과 그룹 채팅 연동이 성숙한 상태다. 기본 연결 방식도 롱 폴링이라서, 처음에는 복잡한 웹훅이나 공개 도메인 없이도 시작하기 쉽다.1

쉽게 말해 Telegram은 "AI 에이전트를 메신저에 태우는 첫 실습장"으로 좋다. 전화번호 추가 세팅이 꼭 필요한 것도 아니고, 휴대폰과 데스크톱을 오가며 테스트하기도 편하다. 초반 학습 곡선을 낮춰 준다는 점에서, 이 책의 첫 채널로 딱 맞다.

먼저 할 일: @BotFather에서 봇 만들기

Telegram 앱을 열고 @BotFather를 검색한다. 여기서 가장 중요한 건 정확히 공식 BotFather인지 확인하는 것이다. 비슷한 이름의 계정을 잘못 누르면 시작부터 삐끗할 수 있다.1

대화를 열고 아래 명령을 보낸다.

/newbot

이후 BotFather가 두 가지를 묻는다. 하나는 화면에 보일 봇 이름이고, 다른 하나는 사용자명이다. 사용자명은 전역에서 고유해야 하고 보통 bot으로 끝나야 한다. 예를 들면 my_openclaw_helper_bot 같은 식이다.

설정을 마치면 BotFather가 긴 문자열 하나를 준다. 대략 이런 모양이다.

123456789:ABCdefGhIJKlmNoPQRstuVWxyz

이것이 봇 토큰이다. 텔레그램 세계에서 이 토큰은 봇의 열쇠다. 누군가 이 값을 가져가면 내 봇 행세를 할 수 있으니, 메신저방에 붙여 넣거나 Git 저장소에 올리면 안 된다. 비밀번호보다 조금 더 예민하게 다루는 편이 마음이 편하다.1

OpenClaw에 Telegram 채널 연결하기

이제 OpenClaw가 "내가 누구로 텔레그램에 접속해야 하는지" 알아야 한다. 가장 기본적인 설정은 아래와 비슷하다.

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "여기에_BotFather_토큰",
      "dmPolicy": "pairing",
      "groups": {
        "*": {
          "requireMention": true
        }
      }
    }
  }
}

여기서 핵심은 세 가지다.

  • enabled: true는 Telegram 채널을 켠다는 뜻이다.

  • botToken에는 방금 받은 토큰이 들어간다.

  • dmPolicy: "pairing"은 처음 DM을 보내는 사람을 바로 통과시키지 않고, 내가 직접 승인하게 만드는 안전한 기본값이다.1

마지막의 groups 설정은 아직 그룹을 쓰지 않아도 넣어 둘 수 있는 무난한 기본값이다. 나중에 봇을 단체방에 넣더라도, 기본적으로는 멘션이 있을 때만 반응하게 해 준다. 아무 말에나 튀어나오는 봇은 처음엔 신기하지만, 금방 시끄러운 바닷가재가 된다.

이미 지난 장에서 openclaw onboard --install-daemon까지 마쳤다면, 설정 저장 후 게이트웨이 상태를 먼저 확인하자.

openclaw gateway status

정상이 아니면 재시작한다.

openclaw gateway restart

아직 백그라운드 서비스 대신 수동 실행 중이라면, 게이트웨이를 직접 띄워도 된다.

openclaw gateway

Telegram에서 첫 메시지 보내기

이제 텔레그램으로 돌아가서 방금 만든 봇을 검색해 대화를 연다. 그리고 아주 평범하게 한마디를 보낸다.

안녕

이때 많은 사람이 기대하는 장면은 "곧바로 친절한 AI 답장"이다. 하지만 dmPolicy를 pairing으로 둔 상태라면, 처음에는 그런 답이 오지 않을 수 있다. 대신 페어링 코드가 표시된다. 이건 실패가 아니다. 오히려 정상이다. OpenClaw가 "이 사용자를 주인으로 승인할 건가요?"라고 묻는 과정이기 때문이다.2

처음 보는 사람에게 바로 문을 열어 주지 않는 것. 이것이 OpenClaw의 DM 페어링 모델이다. 에이전트가 파일도 읽고, 도구도 쓰고, 장기적으로는 자동화까지 맡게 될 수 있다는 점을 생각하면, 이 한 단계는 귀찮은 절차가 아니라 작은 현관문이라고 보는 편이 맞다.

페어링 승인: 터미널에서 마지막 문 열기

이제 호스트 머신의 터미널로 돌아온다. 승인 대기 중인 요청을 본다.

openclaw pairing list telegram

그러면 대기 중인 코드가 보인다. 그다음 이렇게 승인한다.

openclaw pairing approve telegram <코드>

예를 들어 코드가 ABCD234K라면 아래처럼 입력한다.

openclaw pairing approve telegram ABCD234K

페어링 코드에는 몇 가지 규칙이 있다. 코드는 8자리 대문자 형식이며, 혼동하기 쉬운 문자를 피하고, 유효 시간은 1시간이다. 또한 승인 대기 요청은 채널당 기본적으로 몇 개까지만 쌓인다. 그러니 오래 미루지 말고, 보이면 바로 승인하는 습관이 좋다.2

승인을 마쳤다면 다시 Telegram으로 가서 같은 말을 한 번 더 보내 보자.

안녕

이제야 반가운 답장이 돌아와야 한다. 이 순간이 중요하다. 지금 성공했다는 것은 적어도 다음 요소들이 한 줄로 연결됐다는 뜻이기 때문이다.

  • Telegram 봇 토큰이 유효하다.

  • OpenClaw Gateway가 살아 있다.

  • 모델 제공자 연결이 동작한다.

  • DM 접근 정책이 통과됐다.

설치만 끝났을 때보다 훨씬 큰 확신이 생기는 이유가 바로 여기에 있다.

"왜 아까는 답이 없었죠?"를 이해하면 덜 헤맨다

초보자가 가장 자주 겪는 오해는 이것이다.

"봇 토큰도 넣었고, 게이트웨이도 켰는데 왜 답이 없지?"

이때 실제 원인은 토큰 오류보다 접근 정책인 경우가 많다. pairing은 낯선 사용자의 첫 메시지를 바로 처리하지 않는다. 코드를 발급하고, 주인이 CLI에서 승인할 때까지 대기한다.2

즉, 첫 DM에서 무반응처럼 보여도 당황할 필요가 없다. OpenClaw가 고장 난 것이 아니라, 오히려 너무 착하게 보안을 지키고 있는 중일 수 있다.

혼자 오래 쓸 개인 봇이라면 나중에는 allowlist로 옮겨 가는 편이 더 관리하기 쉬울 수도 있다. 하지만 첫 성공 경험을 만드는 단계에서는 pairing이 더 직관적이다. 눈으로 코드를 보고, 승인 흐름을 이해하면서 보안 모델까지 자연스럽게 익힐 수 있기 때문이다.

Dashboard에서 상태를 눈으로 확인하기

텔레그램에서 답장이 왔다면, 이제 브라우저로 한 번 더 확인해 보자. OpenClaw 대시보드의 기본 주소는 다음과 같다.

http://127.0.0.1:18789/

또는

http://localhost:18789/

가장 쉬운 방법은 CLI로 여는 것이다.

openclaw dashboard

대시보드가 열리면 지금 살아 있는 게이트웨이 상태를 눈으로 확인할 수 있다. 설치 직후에는 터미널 로그만 보면 모든 것이 추상적으로 느껴지는데, 대시보드는 그 추상을 현실로 바꿔 준다. 내가 보낸 메시지가 실제로 들어왔는지, 연결이 붙어 있는지, 인증이 필요한지 같은 것들이 한눈에 보인다.3

다만 꼭 기억할 점이 있다. 이 대시보드는 단순한 보기 화면이 아니라 관리자 화면이다. 채팅, 설정, 승인 같은 민감한 작업이 가능하므로, 인터넷에 그대로 노출하면 안 된다. 기본적으로는 localhost에서만 열고, 원격 서버에 설치했다면 SSH 터널이나 Tailscale 같은 안전한 경로를 쓰는 것이 권장된다.3

원격 서버에서 실행 중이라면 이런 식으로 터널을 열 수 있다.

ssh -N -L 18789:127.0.0.1:18789 user@your-server

그다음 내 컴퓨터 브라우저에서 http://127.0.0.1:18789/를 열면 된다.3

그룹 설정은 아직 건드리지 않아도 된다

처음 텔레그램 연동을 할 때 많은 사람이 벌써 그룹방까지 한 번에 붙이려 한다. 물론 가능하다. 하지만 첫 성공을 만드는 단계에서는 DM만 먼저 통과하는 편이 훨씬 낫다.

그룹은 생각보다 변수가 많다. requireMention이 켜져 있으면 멘션이 있어야 반응하고, 텔레그램의 Privacy Mode가 켜져 있으면 봇이 그룹 메시지를 전부 보지 못한다. 정말 모든 그룹 메시지를 읽게 하려면 BotFather의 /setprivacy 설정을 바꾸거나 봇을 그룹 관리자 권한으로 올려야 하는데, 이건 첫 대화가 성공한 뒤에 해도 늦지 않다.1

지금은 한 가지만 확인하면 충분하다. 내가 개인 DM으로 말을 걸면, OpenClaw가 대답하는가.

이 한 줄이 되어야 다음 장의 문제 해결도, 이후의 커스텀도 의미가 생긴다.

첫 성공을 재현하는 가장 짧은 루트

마지막으로, 오늘 한 일을 머릿속에 짧게 접어 두자.

  • @BotFather에서 /newbot으로 봇을 만들고 토큰을 받는다.

  • OpenClaw 설정에 channels.telegram.botToken과 dmPolicy: "pairing"을 넣는다.

  • 게이트웨이를 켠 뒤 텔레그램에서 봇에게 "안녕"을 보낸다.

  • 터미널에서 openclaw pairing list telegram과 openclaw pairing approve telegram <코드>를 실행한다.

  • 다시 "안녕"을 보내 답장을 받는다.

  • openclaw dashboard로 http://127.0.0.1:18789/ 상태를 확인한다.

이 루트를 한 번 성공하면, OpenClaw는 더 이상 문서 속 개념이 아니다. 이제부터는 휴대폰 속에 들어온다. 지하철에서도, 카페 줄에서도, 침대에서도 말을 걸 수 있다. 그리고 그 순간부터 이 도구는 '설치한 프로그램'이 아니라 '함께 일하기 시작한 무언가'가 된다.

다음 장에서는 여기서 가장 자주 걸려 넘어지는 지점들, 이를테면 포트 충돌, 승인 누락, 토큰 문제, 응답 없음 같은 현실적인 막힘을 하나씩 정리해 보겠다.

참고

1Telegram - OpenClaw

2Pairing - OpenClaw

3Dashboard - OpenClaw

책 목록

오픈클로 OpenClaw: 메신저 안에서 일하는 나만의 AI 에이전트

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기