WhatsApp 설정
Hermes는 Baileys를 기반으로 내장된 교량을 통해 WhatsApp에 연결됩니다. WhatsApp 웹 세션을 에뮬레이션하여 이 작품 - ** 공식 WhatsApp Business API를 통해. Meta Developer 계정 또는 비즈니스 검증이 필요하지 않습니다.
WhatsApp은 **** Business API 이외의 타사 봇을 공식적으로 지원합니다. 제3자 브리지를 사용하여 계정 제한의 작은 위험을 운반합니다. 위험 최소화:
- 전용 전화 번호 봇의 경우 (개인 번호)
- 대량 / 스팸 메시지를 보낼 수 없습니다 - 사용 대화 유지 -Don't automate 아웃바운드 메시징 to people who never't messaged first 주요 특징
WhatsApp 주기적으로 웹 프로토콜을 업데이트, 일시적으로 휴식 호환성 제3자 교량으로. 이 일이 일어날 때, Hermes는 교량 의존도를 업데이트합니다. 만약에 봇은 WhatsApp 업데이트 후 작동 중지, 최신 헤르메스 버전과 재 쌍을 잡아. 주요 특징
2개의 형태
| 모드 | 작동 방법 | 베스트 |
|---|---|---|
| Separate bot number (권장) | 봇에 전화 번호를 입력합니다. 직접 번호가있는 사람들 메시지. | Clean UX, 다중 사용자, 낮은 금지 위험 |
| **개인 셀프 채팅 ** | 자신의 WhatsApp에 사용. 당신은 에이전트에 대해 이야기합니다. | 빠른 설정, 단일 사용자, 테스트 |
필수품
- Node.js v18+및npm - WhatsApp Bridge는 Node.js 프로세스로 실행됩니다.
- WhatsApp으로 전화 설치 ( QR 코드를 스캔)
이전 브라우저 구동 브리지와는 달리, 현재의 베일리 기반 브리지 **는 로컬 Chromium 또는 Puppeteer 의존성 스택이 필요합니다.
단계 1: 설정 마법사를 실행
사이트맵
마법사는:
- 원하는 모드(bot또는self-chat)
- 필요로 하는 경우에 교량 의존도를 설치하세요
- 터미널에서 QR 코드 표시
- 그것을 검사하는 당신을 위한 기대
** QR 코드를 스캔하려면:**
- 휴대폰에서 WhatsApp을 엽니 다
- ** 설정 → 연결 장치**
- 탭 장치 링크
- 단말기 QR 코드에서 카메라 포인트
한 번, 마법사가 연결과 출구를 확인합니다. 세션이 자동으로 저장됩니다.
QR 코드가 garbled를 보이면 터미널이 적어도 60 열이 넓어지지 않도록하세요. 유니코드. 다른 터미널 에뮬레이터를 시도 할 수 있습니다. 주요 특징
단계 2: 두 번째 전화 번호 얻기 (봇 모드)
봇 모드의 경우, WhatsApp에 이미 등록되지 않은 전화 번호가 필요합니다. 3개의 선택권:
| 옵션 | 비용 | 주 |
|---|---|---|
| Google Voice | 무료 | 미국 한정 voice.google.com에서 번호를 얻으십시오. Google Voice 앱을 통해 SMS를 통해 WhatsApp에 인증. |
| Prepaid SIM | $5~15번 | 모든 캐리어 활성화, WhatsApp을 확인, 다음 SIM 서랍에 앉아 수 있습니다. 숫자는 활성화해야합니다 (모든 90 일 호출). · |
| VoIP 서비스 | 무료・$5/월 | TextNow, TextFree, 기타. 일부 VoIP 번호는 WhatsApp에 의해 차단됩니다 - 먼저 작동하지 않는 경우 몇 가지 시도. · |
번호를 얻기 후에:
- 전화에서 WhatsApp을 설치 (또는 이중 SIM과 WhatsApp Business 앱 사용)
- WhatsApp에 새로운 번호를 등록
hermes whatsapp를 실행하고 WhatsApp 계정에서 QR 코드를 스캔
단계 3: 헤르메스를 구성
~/.hermes/.env 파일에 다음을 추가하세요.
# Required
WHATSAPP_ENABLED=true
WHATSAPP_MODE=bot # "bot" or "self-chat"
# Access control — pick ONE of these options:
WHATSAPP_ALLOWED_USERS=15551234567 # Comma-separated phone numbers (with country code, no +)
# WHATSAPP_ALLOWED_USERS=* # OR use * to allow everyone
# WHATSAPP_ALLOW_ALL_USERS=true # OR set this flag instead (same effect as *)
WHATSAPP_ALLOWED_USERS=* 설정은 모든 senders (WHATSAPP_ALLOW_ALL_USERS=true와 동일)을 허용합니다.
이것은 Signal 그룹 수당와 일관성이 있습니다.
대신 쌍의 흐름을 사용하려면 두 변수를 제거하고 rely on
DM 페어링 시스템.
주요 특징
~/.hermes/config.yaml의 선택적인 동작 설정:
사이트맵
unauthorized_dm_behavior: pair는 글로벌 디폴트입니다. 알 수없는 DM senders는 페어링 코드를 가져옵니다.whatsapp.unauthorized_dm_behavior: ignore는 보통 개인 번호를 위한 더 나은 선택인 허가한 DMs를 위해 침묵하는 WhatsApp 체재를 만듭니다.
그런 다음 게이트웨이를 시작합니다.
사이트맵
Gateway는 저장된 세션을 사용하여 자동으로 WhatsApp Bridge를 시작합니다.
세션 지속
베일리 교량은 ~/.hermes/platforms/whatsapp/session의 밑에 그것의 세션를 저장합니다. 이 수단:
- **Sessions는 재시작을 살아남습니다 ** — 당신은 매번 QR 코드를 다시 만들 필요가 없습니다
- 세션 데이터에는 암호화 키 및 장치 자격 증명이 포함됩니다.
- **이 세션 디렉토리를 공유하지 마십시오 ** - WhatsApp 계정에 전체 액세스 권한을 부여
재봉
세션이 중단되면 (전화 재설정, WhatsApp 업데이트, 수동으로 연결), 당신은 연결을 볼 수 있습니다 게이트웨이 로그에 오류. 그것을 고치기:
hermes whatsapp
신선한 QR 코드를 생성합니다. 다시 스캔하고 세션이 다시 설치됩니다. 오시는 길 handle temporary 단선 (network blips, 전화가 오프라인으로 간략히) 자동으로 reconnection 논리로.
음성 메시지
Hermes는 WhatsApp에 음성을 지원합니다:
- ** 들어오는:** 음성 메시지 (
.oggopus)는 형성된 STT 제공자를 사용하여 자동적으로 transcribed 입니다: 국부적으로faster-whisper, Groq Whisper (GROQ_API_KEY), 또는 OpenAI Whisper (VOICE_TOOLS_OPENAI_KEY) -Outgoing: TTS 응답은 MP3 오디오 파일 첨부 파일로 전송됩니다. - 에이전트 응답은 기본적으로 "Mini Hermes Agent"로 접힙니다.
config.yaml에서 이것을 사용자 정의하거나 비활성화 할 수 있습니다.
# ~/.hermes/config.yaml
whatsapp:
reply_prefix: "" # Empty string disables the header
# reply_prefix: "🤖 *My Bot*\n──────\n" # Custom prefix (supports \n for newlines)
메시지 포맷 및 배송
WhatsApp 지원 **streaming (progressive) 응답 ** - 봇은 AI가 텍스트를 생성하고 Discord 및 Telegram과 같은 실시간 메시지를 편집합니다. 내부적으로, WhatsApp는 납품 기능을 위한 TIER MEDIUM 플랫폼으로 분류됩니다.
춘킹
긴 응답은 자동으로 여러 메시지로 나뉩니다. 4,096 문자 펑크 당 (WhatsApp의 실제 디스플레이 제한). 당신은 아무것도 구성 할 필요가 없습니다 - 게이트웨이는 분할을 처리하고 순차적으로 펑크를 보냅니다.
WhatsApp 호환 Markdown
AI 응답의 표준 Markdown은 WhatsApp의 네이티브 포맷으로 자동 변환됩니다.
| 마크다운 | 렌더링 | |
|---|---|---|
**bold** | *bold* | **볼드 ** |
~~strikethrough~~ | ~strikethrough~ 인포메이션 | |
# Heading | *Heading* | 대담한 텍스트(네이티브 헤드링 없음) |
[link text](/docs/user-guide/security#dm-pairing-system) | link text (url) | 인라인 URL |
코드 블록 및 인라인 코드는 WhatsApp이 네트 백틱 포맷을 지원하므로 as-is 보존됩니다.
# 도구 진행
에이전트 호출 도구 (웹 검색, 파일 작업 등), WhatsApp는 도구가 실행되는 표시 실시간 진행 지표를 표시합니다. 이것은 기본적으로 활성화됩니다 — 구성이 필요하지 않습니다.
문제 해결
| 문제 | 솔루션 |
|---|---|
| QR 코드는 스캔되지 않습니다 | 터미널은 충분히(60+ 열)입니다. 다른 터미널을 시도하세요. 정확한 WhatsApp 계정에서 스캔 확인 (봇 번호, 개인하지). |
| QR 코드가 만료됩니다 | QR 코드는 ~20초마다 새로 고침됩니다. 시간이 지나면 hermes whatsapp를 다시 시작합니다. · |
| 세션이 없습니다 | ~/.hermes/platforms/whatsapp/session가 존재하고 writable을 확인합니다. 컨테이너화된 경우, 지속적인 볼륨으로 마운트하세요. |
| 알 수 없게 되었습니다. | WhatsApp unlinks device after long inactivity. 네트워크에 연결하고, hermes whatsapp를 가진 재 쌍을 필요에 따라 유지하세요. · |
| Bridge crashes or reconnect loops | 세션이 WhatsApp 프로토콜 변경에 의해 유효하지 않은 경우 게이트웨이를 업데이트하고, 헤르메스를 업데이트합니다. · |
| 봇은 WhatsApp 업데이트 후 작동 중지 | 최신 브리지 버전을 얻기 위해 헤르메스 업데이트, 다시 페어. |
| macOS: "Node.js not installed" 하지만 node는 터미널에서 동작함 | launchd 서비스는 셸 PATH를 상속하지 않습니다. hermes gateway install을 실행해 현재 PATH를 plist에 다시 저장한 뒤 hermes gateway start를 실행하세요. 자세한 내용은 Gateway Service docs를 참조하세요. |
| Messages not being receive | Verify WHATSAPP_ALLOWED_USERS는 우편 번호 (국가 코드, + 또는 공간 포함)를 포함하거나 *로 설정하여 모든 것을 허용합니다. WHATSAPP_DEBUG=true를 .env로 설정하고 bridge.log의 메시지 이벤트를 볼 수있는 게이트웨이를 다시 시작합니다. · |
| 봇은 페어링 코드가 있는 낯선 사람들에 의존합니다 | whatsapp.unauthorized_dm_behavior: ignore를 ~/.hermes/config.yaml로 설정하면 별도의 DM을 침묵으로 무시합니다. |
보안
**휴가 전에 액세스 제어 . 특정한 WHATSAPP_ALLOWED_USERS 설정
전화 번호 (+없이 국가 코드 포함), 모든 것을 허용하려면 *를 사용, 또는 설정
모델 번호: WHATSAPP_ALLOW_ALL_USERS=true. 이 외에, 게이트웨이 ** 모든 들어오는 것
메시지 안전 측정.
주요 특징
디폴트로, unauthorized DMs는 여전히 페어링 코드 응답을받습니다. 개인 WhatsApp 번호가 낯선 사람에게 완전히 침묵하는 것을 원한다면, 설정:
사이트맵
~/.hermes/platforms/whatsapp/session디렉토리에는 전체 세션 자격 증명이 포함되어 있습니다. - 암호처럼 보호하세요.- 파일 권한을 설정:
chmod 700 ~/.hermes/platforms/whatsapp/session - 개인 계정에서 봇에 대한 전용 전화 번호를 사용하세요
- 손상이 의심되는 경우, WhatsApp → Settings → Linked Device에서 장치를 연결 해제
- 로그의 전화 번호는 부분적으로 적색하지만 로그 보존 정책을 검토합니다.