텔레그램
anchor alias
anchor alias
전보 설정
Hermes Agent는 전체 기능을 갖춘 대화형 봇으로 Telegram과 통합됩니다. 연결되면, 당신은 모든 장치에서 에이전트와 채팅 할 수 있습니다, 자동 전환을 얻을 목소리 메모를 보내, 예약 된 작업 결과를 수신, 그룹 채팅에 에이전트를 사용합니다. 통합은 python-telegram-bot에 내장되어 텍스트, 음성, 이미지 및 파일 첨부 파일을 지원합니다.
단계 1: BotFather를 통해 Bot 만들기
모든 전보 봇은 @BotFather, Telegram의 공식 봇 관리 도구로 발행된 API 토큰을 요구합니다.
- @BotFather에 대한 Telegram 및 검색을 열고, t.me/BotFather를 방문하세요.
/newbot를 보내십시오- ** 표시 이름** (예: "Hermes Agent")를 선택하세요. — 이것은 무엇이든 일 수 있습니다.
- ** username**를 선택하세요.
bot(예:my_hermes_bot) - BotFather는 **API 토큰 **로 replies합니다. 그것은 다음과 같습니다:
사이트맵
봇 토큰 비밀 유지. 이 토큰으로 누구나 봇을 제어할 수 있습니다. 누출되면 즉시 BotFather의 /revoke를 통해 수정하세요.
주요 특징
단계 2: (선택) 당신의 Bot를 주문을 받아서 만드십시오
이 BotFather 명령은 사용자 경험을 향상시킵니다. 메시지 @BotFather 및 사용:
| 명령 | 목적 |
|---|---|
/setdescription | 사용자가 채팅하기 전에 보이는 "What can this bot do?" 텍스트 |
/setabouttext | 봇 프로필에 짧은 텍스트 |
/setuserpic | 봇용 아바타 업로드 |
/setcommands | 명령어 메뉴 정의(/ 버튼 채팅) |
/setprivacy | 봇이 모든 그룹 메시지를 볼 수 있는지 여부를 통제합니다(단계 참조) |
/setcommands를 위해, 유용한 시작 세트:
help - Show help information
new - Start a new conversation
sethome - Set this chat as the home channel
주요 특징
Step 3: 개인 정보 보호 모드 (그룹에 대한 인용)
Telegram 봇은 ** privacy mode** 를 가지고 있습니다. 이것은 그룹에 봇을 사용할 때 혼란의 단일 가장 일반적인 소스입니다.
** 개인 정보 보호 모드 ON**, 봇만 볼 수 있습니다:
/명령으로 시작하는 메시지- bot의 자신의 메시지에 직접 응답
- 서비스 메시지 (회원 가입/잎, 핀 메시지 등)
- 봇이 admin인 채널의 메시지
**개인 정보 보호 모드 OFF **, 봇은 그룹의 모든 메시지를받습니다.
프라이버시 모드를 비활성화하는 방법
- 메시지 @BotFather
/mybots를 보내십시오- 봇 선택
- **Bot 설정 → 그룹 개인 정보 보호 → 턴 **
**개인 설정 변경 후 봇을 제거하고 다시 추가해야합니다 **. Telegram은 봇이 그룹에 합류할 때 개인 정보 보호 상태를 캐시하고 봇이 제거되고 다시 추가 될 때까지 업데이트되지 않습니다. 주요 특징
개인 정보 보호 모드를 비활성화하는 대안: 봇을 그룹 관리자로 홍보합니다. Admin bots는 항상 개인 정보 보호 설정에 관계없이 모든 메시지를 수신하고, 이것은 글로벌 개인 정보 보호 모드를 토글하는 데 필요한 것을 피합니다. 주요 특징
Step 4: 사용자 ID 찾기
Hermes Agent는 numeric Telegram 사용자 ID를 사용하여 액세스 제어합니다. 사용자 ID는 ** 사용자 이름 - 123456789와 같은 번호입니다.
**Method 1 (권장): ** 메시지 @userinfobot - 즉시 사용자 ID로 replies.
**Method 2: ** 메시지 @get id bot - 다른 신뢰할 수있는 옵션.
이 번호를 저장하세요; 당신은 다음 단계를 위해 그것을 필요로 할 것입니다.
단계 5: 헤르메스를 구성
선택권 A: 상호 작용하는 체제 (추천하는)
사이트맵
Telegram 프롬프트할 때. 마법사는 봇 토큰을 요청하고 사용자 ID를 허용 한 다음 구성을 작성합니다.
선택권 B: 수동 윤곽
다음을 ~/.hermes/.env에 추가하세요:
사이트맵
Gateway 시작
hermes gateway
봇은 몇 초 안에 온라인으로 오셔야 합니다. Telegram에서 확인한 메시지 보내기.
Docker-backed Terminal에서 생성된 파일 보내기
터미널 백엔드가 docker 인 경우 Telegram 첨부 파일이 그대로 유지됩니다.
게이트웨이 프로세스에 의해 전송, 컨테이너 내부에서. 즉,
최종 MEDIA:/... 경로는 게이트웨이가 있는 호스트에 읽을 수 있어야 합니다.
실행.
일반적인 pitfall:
- 에이전트은
/workspace/report.txt에 Docker 안쪽에 파일을 씁니다 - 모델은
MEDIA:/workspace/report.txt를 방출 - Telegram 납품은
/workspace/report.txt가 내부에 존재하기 때문에 실패합니다 컨테이너, 호스트에
추천된 본:
terminal:
backend: docker
docker_volumes:
- "/home/user/.hermes/cache/documents:/output"
다음:
- Docker 내부의 파일을
/output/...로 작성 MEDIA:의 host-visible 경로를 방출합니다.MEDIA:/home/user/.hermes/cache/documents/report.txt코드
이미 docker_volumes: 섹션을 가지고 있다면 새로운 마운트를 동일하게 추가하세요.
설명 YAML 중복 키가 침묵적으로 앞머리를 무시합니다.
지원 MEDIA: 파일 확장
게이트웨이는 에이전트에서 MEDIA:/path/to/file 태그를 추출하고 참조된 파일을 플랫폼에 삽입 첨부합니다. 모든 게이트웨이 플랫폼에서 지원된 확장:
| 카테고리 | 연장 |
|---|||
| 이미지 | png, jpg, jpeg, gif, webp, bmp, tiff, svg |
| 오디오 | mp3, wav, ogg, m4a, opus, flac, aac |
| 비디오 | mp4, mov, webm, mkv, avi |
pdf, txt, md, csv, json, xml, html, yaml, yml, log, log
주소: 부산광역시 강서구 강서로 173 Tel: 051-974-7736 FAX: 051-974-1314
부산광역시 해운대구 해운대구 수영강변대로 173 Tel. 051-974-7736 FAX. 051-974-7736 E-mail.net
| **서류/패키지 ** | epub, apk, ipa |
이 목록에는 (Telegram, Discord, Signal, Slack, WhatsApp, Feishu, Matrix 등)을 지원하는 플랫폼에 네이티브 첨부 파일로 전달됩니다. 네이티브 지원없이 플랫폼에서 링크 또는 일반 텍스트 표시기로 돌아갑니다. **bold ** 카테고리는 지난 몇 가지 릴리스에 추가되었습니다. 모델에 의존하면 here is the file: /path/to/report.docx 대신 MEDIA:/path/to/report.docx로 교체하세요.
Webhook 모드
기본적으로 Hermes는 long polling를 사용하여 Telegram에 연결됩니다. 게이트웨이는 Telegram의 서버로 새로운 업데이트를 fetch합니다. 이 작품은 지역과 항상 배포합니다.
클라우드 배포 (Fly.io, Railway, Render 등), 웹훅 모드는 더 비용 효율적인입니다. 이 플랫폼은 인바운드 HTTP 트래픽에 자동 일시 중단 기계를 할 수 있지만 아웃바운드 연결은 없습니다. polling는 아웃 바운드이므로 polling bot은 결코 잠을 수 없습니다. Webhook 모드는 방향을 플립합니다. Telegram은 봇의 HTTPS URL에 업데이트를 푸시하고 수면을 울릴 수 있습니다.
| 오염(과태) | 웹훅 |
|---|---|||
| 방향 | 게이트웨이 → 전보(상행) | 전보 → 게이트웨이(상행) |
| Best for | Local, always-on server | 클라우드 플랫폼으로 자동 이동 |
| 설치 | 추가 설정 | 설정 TELEGRAM_WEBHOOK_URL |
| 이들 비용 | 기계가 실행되어야 합니다 | 기계가 메시지 사이에 잠을 수 있습니다 |
윤곽
다음을 ~/.hermes/.env에 추가하세요:
사이트맵
| 변하기 쉬운 | Required | 묘사 |
|---|---|---|
TELEGRAM_WEBHOOK_URL | 예 | Telegram이 업데이트되는 공공 HTTPS URL. URL 경로는 자동 추출 (예를 들어, /telegram)입니다. |
TELEGRAM_WEBHOOK_SECRET | ** 예** (TELEGRAM_WEBHOOK_URL가 설정된 경우) | 확인을 위한 모든 webhook 요청에 있는 Telegram echoes의 비밀 토큰. 게이트웨이는 그것을 사용하지 않고 시작을 거부합니다. GHSA-3vpc-7q5r-276h를 참조하세요. openssl rand -hex 32로 생성. |
TELEGRAM_WEBHOOK_PORT | No | 웹훅 서버가 듣는 로컬 포트(기본값: 8443) |
TELEGRAM_WEBHOOK_URL가 설정되면 게이트웨이는 polling 대신 HTTP 웹훅 서버를 시작합니다. unset, polling mode가 사용됩니다. — 이전 버전에서 동작 변경이 없습니다.
클라우드 배포 예제 (Fly.io)
- Fly.io 앱 비밀에 env vars 추가:
사이트맵
- 당신의
fly.toml에 있는 webhook 항구를 드러냅니다:
[[services]]
internal_port = 8443
protocol = "tcp"
[[services.ports]]
handlers = ["tls", "http"]
port = 443
- 배포:
모델 번호: ```bash fly deploy
게이트웨이 로그는 다음과 같습니다. `[telegram] Connected to Telegram (webhook mode)`.
## 프록시 지원
Telegram의 API가 차단되거나 프록시를 통해 트래픽을 우회해야 하는 경우 Telegram-specific proxy URL을 설정합니다. 이것은 일반 `HTTPS_PROXY` / `HTTP_PROXY` env vars에 우선 순위를 부여합니다.
** 옵션 1: config.yaml (추천)**
```yaml
telegram:
proxy_url: "socks5://127.0.0.1:1080"
** 옵션 2: 환경 변수**
TELEGRAM_PROXY=socks5://127.0.0.1:1080
지원되는 계획: http://, https://, socks5://.
프록시는 주요 Telegram 연결과 fallback IP 수송 모두에 적용됩니다. Telegram-specific 프록시가 설정되지 않은 경우 게이트웨이는 HTTPS_PROXY / HTTP_PROXY / ALL_PROXY (또는 macOS 시스템 프록시 자동 탐지)로 돌아갑니다.
홈 채널
텔레그램 채팅 (DM 또는 그룹)에서 /sethome 명령을 사용하여 ** 홈 채널 **로 지정하십시오. Scheduled task (cron job)는 이 채널에 결과를 제공합니다.
~/.hermes/.env에서 수동으로 설정할 수 있습니다.
TELEGRAM_HOME_CHANNEL=-1001234567890
TELEGRAM_HOME_CHANNEL_NAME="My Notes"
그룹 채팅 ID는 부정적인 숫자 (예: -1001234567890)입니다. 개인 DM 채팅 ID는 사용자 ID와 동일합니다.
주요 특징
음성 메시지
들어오는 목소리 (Speech-to-Text)
Telegram에 전송되는 음성 메시지는 Hermes의 구성 STT 공급자에 의해 자동으로 transcribed하고 대화에 텍스트로 주사됩니다.
local는 기계에faster-whisper를 사용하여 헤르메스를 실행합니다. - 필요한 API 키 없음groq는 Groq Whisper를 사용하고GROQ_API_KEY를 요구합니다openai는 OpenAI Whisper를 사용하고VOICE_TOOLS_OPENAI_KEY를 요구합니다
# Outgoing 음성 (텍스트-to-Speech)
에이전트가 TTS를 통해 오디오를 생성 할 때, 기본 Telegram voice bubbles - 라운드, 인라인 플레이 가능한 종류로 전달됩니다.
- OpenAI 및 ElevenLabs 생성 Opus 기본적으로 — 추가 설정이 필요하지 않음
- Edge TTS (기본 무료 제공 업체) 출력 MP3 및 ffmpeg Opus로 변환하려면:
# Ubuntu/Debian
sudo apt install ffmpeg
# macOS
brew install ffmpeg
ffmpeg없이 Edge TTS 오디오는 정규 오디오 파일 (실행 재생 가능하지만 음성 버블 대신 직사각형 플레이어를 사용합니다)로 전송됩니다.
tts.provider 열쇠의 밑에 당신의 config.yaml에 있는 TTS 공급자를 구성하십시오.
그룹 채팅 사용
Hermes Agent는 Telegram 그룹 채팅에서 몇 가지 고려 사항을 사용합니다.
- 개인 모드는 봇이 볼 수 있는 메시지를 결정합니다 (Step 3)
TELEGRAM_ALLOWED_USERS는 여전히 적용됩니다 - 공인 사용자는 그룹에서 봇을 트리거 할 수 있습니다.telegram.require_mention: true로 정규 그룹 채팅에 응답하여 봇을 유지할 수 있습니다.telegram.require_mention: true로, 그룹 메시지는 다음과 같이 허용됩니다.- 봇의 메시지 중 하나에 답글
@botusername언급/command@botusername(Telegram's bot-menu 명령 형태는 bot 이름을 포함)telegram.mention_patterns에서 구성 된 regex 모직 단어 중 하나에 대한 일치telegram.ignored_threads를 사용하여 특정 Telegram 포럼 주제에서 Hermes 침묵을 유지하고, 그룹이 그렇지 않으면 무료 응답 또는 언급 된 답글을 허용 할 경우에도telegram.require_mention가 unset 또는 false인 경우, Hermes는 이전 open-group 동작을 유지하고 정상 그룹 메시지에 응답하여 볼 수 있습니다.
Troubleshooting: DM에서 작동하지만 그룹이 아닌
봇이 개인 채팅에 응답하지만 그룹에서 침묵을 유지한다면, 이러한 확인 순서에 있는 문:
- ** 전보 납품: ** BotFather 개인 정보 보호 모드를 해제, 봇을 승진 관리자, 또는 봇을 직접 언급. Hermes는 그룹 메시지에 응답할 수 없습니다. Telegram은 봇에 결코 전달되지 않습니다.
- ** 개인 정보 변경 후: ** 그룹에서 봇을 제거하고 추가
BotFather 개인 정보 설정 변경 후 다시. Telegram은 이전을 유지할 수 있습니다.
기존 회원의 배송 행동.
3.Hermes 허가: sender가 목록에 있는지 확인합니다
TELEGRAM_ALLOWED_USERS또는TELEGRAM_GROUP_ALLOWED_USERS, 또는 허용TELEGRAM_GROUP_ALLOWED_CHATS와 그룹 채팅. - ** 필터: **
telegram.require_mention: true가 설정된 경우, 정상 그룹 chatter는 메시지가 슬래시 명령 인 경우 무시됩니다. 응답 봇,@botusername언급, 또는 구성mention_patterns일치.
부정 채팅 ID는 Telegram 그룹과 supergroups를 위해 정상적입니다. 이용안내
TELEGRAM_GROUP_ALLOWED_CHATS에 있는 그 ID를, 뒀습니다
sender-user 수당.
예제 그룹 트리거 구성
~/.hermes/config.yaml에 이것을 추가하십시오:
telegram:
require_mention: true
mention_patterns:
- "^\\s*chompy\\b"
ignored_threads:
- 31
- "42"
이 예제는 chompy로 시작하는 모든 일반적인 직접 트리거 플러스 메시지를 허용, 그들은 @mention를 사용하지 않는 경우에도.
Telegram 주제의 메시지 31 및 42는 항상 언급 및 무료 응답 체크 실행 전에 무시됩니다.
mention_patterns의 노트
- 패턴은 Python 정규 표현식을 사용합니다.
- 일치는 case-insensitive입니다
- 패턴은 텍스트 메시지와 미디어 캡션 모두에 대해 확인됩니다.
- 잘못된 regex 패턴은 봇을 충돌하지 않고 게이트웨이 로그의 경고로 무시됩니다.
- 메시지의 시작 부분에만 일치하는 패턴을 원한다면
^로 앵커하십시오.
개인 채팅 주제 (Bot API 9.4)
Telegram Bot API 9.4 (2 월 2026) 소개 ** 개인 채팅 주제 ** - 봇은 1-on-1 DM 채팅에서 포럼 스타일 주제 스레드를 직접 만들 수 있습니다, 슈퍼 그룹 필요. 이로 인해 기존의 DM 내에서 여러 분리 된 작업 공간을 실행할 수 있습니다.
사용 케이스
여러 번의 프로젝트에서 작업하면 주제는 별도의 컨텍스트를 유지합니다.
- Topic "Website" - 생산 웹 서비스에 작업
- Topic "Research" - 문학 검토 및 종이 탐험
- Topic "General" - 잘못된 작업과 빠른 질문
각 주제는 자신의 대화 세션, 역사 및 맥락을 가져옵니다. - 완전히 다른 사람에서 격리.
윤곽
구성에 대한 주제를 추가하기 전에 사용자는 봇과 DM 채팅에서 *enable Topics mode**를해야합니다.
- Telegram의 Hermes bot과 개인 채팅을 엽니 다.
- 상단의 봇의 이름을 입력하여 채팅 정보를 엽니다.
- Enable ** Topics** (포럼에 채팅을 켜는 토글)
이 없으면 Hermes는 The chat is not a forum를 시작 및 건너뛰기 주제 생성에 기록합니다. 이것은 Telegram 클라이언트 측 조정입니다 - 봇은 프로그래밍 할 수 없습니다.
주요 특징
platforms.telegram.extra.dm_topics의 ~/.hermes/config.yaml의 주제 추가:
platforms:
telegram:
extra:
dm_topics:
- chat_id: 123456789 # Your Telegram user ID
topics:
- name: General
icon_color: 7322096
- name: Website
icon_color: 9367192
- name: Research
icon_color: 16766590
skill: arxiv # Auto-load a skill in this topic
요금:
인포메이션 | 인포메이션 |
|-------|----------|-------|
| name | 예 | 토픽 디스플레이 이름 |
| icon_color | 텔레그램 아이콘 컬러 코드(integer) |
| icon_custom_emoji_id | No | 화제 아이콘의 맞춤 이모티콘 ID |
| skill | No | 이 항목의 새로운 세션에 자동 로드 |
| thread_id | No | 화제 제작 후 자동 판매| 수동으로 설정하지 마십시오 |
어떻게 작동합니까?
- 게이트웨이 시작에서 Hermes는
createForumTopic. thread_id는config.yaml로 자동 저장됩니다 — 후에 API 전화를 건너십시오- 격리된 회의 열쇠에 각 주제 지도:
agent:main:telegram:dm:{chat_id}:{thread_id} - 각 주제의 메시지는 자신의 대화 역사, 기억 플러시 및 컨텍스트 창을 가지고 있습니다.
기술 바인딩
skill 필드와 주제에 새로운 세션이 시작될 때 기술이 자동으로 로드됩니다. 이것은 대화의 시작에서 /skill-name를 입력하고 정확히 작동합니다. 기술 콘텐츠는 첫 번째 메시지로 주입되며, 이후 메시지는 대화 기록에서 볼 수 있습니다.
예를 들어, skill: arxiv와 주제는 세션 리셋(일회 리셋, 수동 /reset)이 arxiv 기술을 사전 로드할 것입니다.
config (e.g., Telegram API를 호출하여) 이외의 주제는 forum_topic_created 서비스 메시지가 도착하면 자동으로 발견됩니다. 당신은 또한 구성에 주제를 추가 할 수 있습니다. 게이트웨이가 실행되는 동안 - 그들은 다음 캐시 놓치지에서 픽업됩니다.
주요 특징
다기능 DM 모드 (/topic)
ChatGPT-style 멀티 세션 DM - 하나의 봇, 많은 병렬 대화. 위의 연산자-curated extra.dm_topics와는 달리, 이 모드는 ** user-driven**: no config, no pre-declared topic name. 최종 사용자는 /topic로 플립 한 다음 Telegram ** +** 버튼을 눌러 원하는대로 많은 주제로 만들 수 있습니다. 각각 독립적 인 Hermes 세션.
/topic 서브콤마드
| 폼 | 콘텍스트 | 효과 |
|---|---|---|
/topic | 루트 DM, 아직 활성화되지 | 멀티 세션 모드 활성화, 핀 시스템 항목을 만들 수 있습니다 |
/topic | 루트 DM, 이미 활성화 | 쇼 상태: 복원할 수 없는 세션 |
/topic | 화제 안쪽에 | 현재 화제의 세션 바인딩 |
/topic help | 모든 | 인라인 사용 |
/topic off | 루트 DM | 이 채팅에 대한 모든 항목 바인딩을 제거 |
/topic <session-id> | 화제 안쪽에 | 이전 Telegram 세션을 현재 주제로 복원 |
TELEGRAM_ALLOWED_USERS / 플랫폼 auth config를 통해 인증된 사용자만 /topic를 실행할 수 있습니다. unauthorized sender는 활성화 대신 refusal을 가져옵니다.
DM Topics vs 멀티 세션 DM 모드
| | extra.dm_topics(구동) | /topic(사용자 중심) |
|---|---|||
| 활성화 | config.yaml의 운영자 | /topic의 전송에 의한 최종 사용자 |
| Topic list | 설정은 구성에 선언되어 있습니다 | 사용자 생성/삭제 주제는 자유롭게 |
| Topic name | Chosen by operator | 사용자에 의한 초센, 헤르메스 세션 타이틀과의 자동 명칭 |
| 루트 DM 행동 | 변하지 않는 - 정상적인 채팅 | 시스템 로비가 되다(비만 메시지가 거부) |
| 기본 용도 예 | 선택적 스킬 바인딩이있는 영구 작업 공간 | Ad-hoc 병렬 세션 |
| Persistence | 구성의 extra.dm_topics | telegram_dm_topic_mode + telegram_dm_topic_bindings SQLite 테이블 |
두 기능은 동일한 봇에 coexist 할 수 있습니다. - 사용자의 DM에서 /topic를 실행하고 extra.dm_topics는 다른 채팅을위한 연산자 설명 된 주제를 지속적으로 관리합니다.
# 필수품
@BotFather에서 봇 → 봇 설정 → 스레드 설정:
- ** 스레드 모드 ** (
has_topics_enabled사용) - ** 사용할 수 없습니다 ** 주제를 만드는 비활성화 (
allows_users_to_create_topicson)
사용자가 먼저 /topic를 실행할 때, Hermes는 getMe를 호출하여 플래그를 모두 확인할 수 있습니다. Hermes는 BotFather Threads 설정 페이지의 스크린 샷을 보내고 toggle가없는 것을 설명합니다. 활성화는 prerequisites가 충족 될 때까지 발생합니다.
활성화 교류
루트 DM에서, 보내:
/topic
헤르메스:
getMe().has_topics_enabled와allows_users_to_create_topics를 검사하십시오- 둘 다 진실하면, 이 DM을 위한 다session 주제 형태를 가능하게 합니다
- 생성 및 핀 ** 시스템 ** 상태/명령에 대한 항목 (best-effort)
- 이전 unlinked Telegram 세션 목록을 가진 응답 사용자는 복원 할 수 있습니다
활성화 후, ** 루트 DM은 로비 : 정상 프롬프트는 ** 모든 메시지에 대한 지도로 거부됩니다. 시스템 명령 (/status, /sessions, /usage, /help 등)은 여전히 루트에서 작동합니다.
새 항목 만들기 (end-user flow)
- Telegram에서 bot DM을 엽니 다
- 탭 ** 모든 메시지 ** 봇 인터페이스의 상단에, 다음 메시지 보내기
- Telegram는 그 메시지를 위한 새로운 주제를 창조합니다
- Hermes는 그 주제에 응답합니다. 주제는 이제 독립 세션입니다.
모든 항목은 자신의 대화 기록, 모델 상태, 도구 실행 및 세션 ID를 가져옵니다. 고립 열쇠는 agent:main:telegram:dm:{chat_id}:{thread_id} — config-driven DM 화제 고립과 동일하.
자동차 이름 주제
Hermes가 주제에 대한 세션 제목을 생성 할 때 (자동 제목 파이프라인을 통해, 첫 번째 교환 후), Telegram 주제 자체는 일치로 이름이됩니다. 예를 들어, "새로운 주제"는 "Database 마이그레이션 계획"이됩니다. 이름은 가장 좋은 점입니다: 실패는 기록되지만 세션을 깰 수 없습니다.
/new 항목 내부
다른 화제를 접촉하지 않고 현재 주제의 세션 (새로운 세션 ID, 신선한 역사)을 재설정합니다. Hermes는 평행한 일을 위해, 다른 화제 (via All Messages를 통해)를 창조하는 알림으로 일반적으로 당신이 원하는 것 입니다.
이전 세션 복원
주제 안에, 보내:
/topic <session-id>
This binds the current 화제 에 기존의 헤르메스 세션 대신 신선한 시작. 주제 모드가 활성화되기 전에 시작된 대화를 계속할 수 있습니다. 제한:
- 대상 세션은 같은 Telegram 사용자에 속해야 합니다.
- 대상 세션은 이미 다른 주제에 경계하지 않아야합니다.
Hermes는 세션 타이틀을 확인하고 컨텍스트에 대한 마지막 조수 메시지를 재생합니다.
세션 ID를 발견하려면, 루트 DM의 /topic (변수 없음)을 보내 - Hermes는 사용자의 링크되지 않은 Telegram 세션을 나열합니다.
/topic 항목 내 ( 인수 없음)
현재 주제의 바인딩을 보여줍니다: 세션 제목, 세션 ID 및 /new 대 다른 주제를 생성하기위한 힌트.
# 후드 아래에
state.db에서telegram_dm_topic_mode(chat_id, user_id, enabled,...)에 활성화 persistsON DELETE CASCADE에ON DELETE CASCADE를 가진telegram_dm_topic_bindings(chat_id, thread_id, session_id,...)에 각 주제 바인딩 persists에 - 세션을 자동적으로 삭제하는 것은 주제 바인딩을 삭제합니다- 주제별 SQLite 마이그레이션은 opt-in: 그것은 첫 번째
/topic통화에서 실행, 게이트웨이 시작에 절대. 사용자가이 프로필에서/topic를 실행할 때까지state.db는 변경되지 않습니다. - 각 inbound DM 메시지는
(chat_id, thread_id)바인딩을 봅니다. 현재SessionStore.switch_session()를 통해 경계 세션에 메시지를 전달하므로 세션 키 - 투 - 세션 ID 매핑은 디스크에 일관성을 유지 /new항목 내부는 새로운 세션 ID에 대한 바인딩 행을 다시 작성하므로 다음 메시지는 신선한 세션에 유지됩니다.extra.dm_topics에서 선언 된 주제는 ** 자동 이름 ** - 연산자 이름은 다중 세션 모드가 활성화 될 때에도 보존됩니다.- 텔레그램이
message_thread_id=1또는 thread id 없이message_thread_id=1로 메시지를 전달하는지 여부와 관계없이 포럼에서 일반 (pinned top) 주제는 루트 로비로 처리됩니다. - Root-lobby 알림은 채팅 당 30 초 당 하나의 메시지로 제한됩니다. 주제 모드를 잊어버린 사용자는 10 개의 프롬프트를 10 개가 넘지 않습니다.
- BotFather 설정 스크린 샷은 채팅 당 5 분 당 하나의 전송 속도 제한됩니다. 반복 된
/topic시도는 스레드 설정이 여전히 동일한 이미지를 다시로드하지 않습니다. /background <prompt>는 주제 안쪽에 시작되어 동일한 주제로 그 결과를 전달합니다. 배경 세션은 자체 주제의 자동 이름을 트리거하지 않습니다./topic자체는 봇의 사용자 권한 확인에 의해 문질러 - 허가 된 DM은 활성화 대신 refusal을 얻습니다
멀티 세션 모드 비활성화
루트 DM에 /topic off를 보내십시오. Hermes는 채팅의 (thread_id → session_id) 바인딩을 차단하고, 정상적인 헤르메스 채팅에 루트 DM 반전. Telegram의 Existing 주제는 삭제되지 않습니다. - 그들은 독립적 인 세션으로 문을 닫습니다. 다시 실행 /topic 나중에 다시 켜기.
손에 의해 청소해야하는 경우 (예: 많은 채팅을 통해 대량 재설정), 직접 행을 제거:
sqlite3 ~/.hermes/state.db \
"UPDATE telegram_dm_topic_mode SET enabled = 0 WHERE chat_id = '<your_chat_id>'; \
DELETE FROM telegram_dm_topic_bindings WHERE chat_id = '<your_chat_id>';"
# # # 다운 그레이딩 헤르메스
/topic를 사전 업데이트하는 Hermes 버전으로 다운 그레이드하면, 기능은 telegram_dm_topic_mode 및 telegram_dm_topic_bindings 테이블이 state.db에 남아 있지만 이전 코드에 의해 무시됩니다. DMs는 기본 per-thread 고립 (각 message_thread_id는 여전히 build_session_key를 통해 자신의 세션을 얻을), 그래서 기존의 Telegram 주제는 병렬 세션으로 작동 유지. 루트 DM은 더 이상 로비가 없습니다 - 메시지는 그들과 같은 에이전트로 이동합니다. re-upgrading는 그것을 정확히 다중 세션 모드를 활성화합니다.
그룹 포럼 주제 스킬 바인딩
Supergroups with Topics mode 활성화 (또한 "forum 화제"라고도 함) 이미 주제 당 세션 고립을 얻을 — 각 thread_id는 자신의 대화에 맵. 하지만 당신은auto-load a skills 메시지가 특정 그룹 항목에 도착했을 때, 그냥 같은 DM 항목 기술 바인딩 작품.
사용 케이스
다른 workstreams에 대한 포럼 주제와 팀 supergroup:
-Engineering 주제 → 자동 로드 software-development 기술
-Research 주제 → arxiv 기술 자동로드
- ** 일반 ** 주제 → 기술 없음, 다목적 보조
윤곽
~/.hermes/config.yaml의 platforms.telegram.extra.group_topics의 밑에 주제 바인딩을 추가하십시오:
platforms:
telegram:
extra:
group_topics:
- chat_id: -1001234567890 # Supergroup ID
topics:
- name: Engineering
thread_id: 5
skill: software-development
- name: Research
thread_id: 12
skill: arxiv
- name: General
thread_id: 1
# No skill — general purpose
요금:
인포메이션 | 인포메이션 |
|-------|----------|-------|
| chat_id | 예 | 슈퍼그룹의 숫자 ID (-100로 시작하는 부정 번호) |
| name | No | 화제의 인간용 라벨 |
| thread_id | 예 | Telegram 포럼 주제 ID - t.me/c/<group_id>/<thread_id> 링크에서 볼 수 있는 |
| skill | No | 이 항목의 새로운 세션에 자동 로드 |
어떻게 작동합니까?
- 메시지가 맵핑 된 그룹 항목에 도착하면 Hermes는
chat_id및thread_id에서group_topics구성을 보입니다. - 일치 항목이
skill필드를 가지고 있다면, 그 기술은 세션에 자동로드되어 있습니다. - DM 항목 기술 바인딩과 동일 skill열쇠가 없는 주제는 회의 고립만 얻습니다 (변경되지 않는 행동)- Unmapped
thread_id값 또는chat_id값은 침묵으로 떨어지지 않습니다 - 오류 없음, 기술
DM 주제의 차이
| DM 토픽 | 그룹 토픽 |
|---|---|||
| 통신 키 | extra.dm_topics | extra.group_topics |
| 주제 만들기 | 헤르메스는 thread_id가 누락된 경우 API를 통해 화제를 만듭니다 | 관리자는 Telegram UI의 주제를 만듭니다 |
| thread_id | 제작 후 자동 판매 | 수동으로 설정 가능 |
| icon_color / icon_custom_emoji_id | 지원 | 적용 불가(admin control appearance) |
| 기술 바인딩 | ✓ | ✓ |
| Session isolation | ✓ | ✓ (포럼 주제에 대해 자세히 알아보기) |
화제의 thread_id를 찾으려면 Telegram 웹 또는 데스크톱의 주제를 열고 URL을 살펴보십시오. https://t.me/c/1234567890/5 - 마지막 번호 (5)는 thread_id입니다. 슈퍼 그룹을위한 chat_id는 -100 (예: 그룹 1234567890는 -1001234567890가됩니다).
주요 특징
최근 Bot API 기능
-Bot API 9.4 (Feb 2026): Private Chat Topics — 봇은 createForumTopic를 통해 1-on-1 DM 채팅에서 포럼 주제를 만들 수 있습니다. Hermes는 두 가지 독특한 기능을 사용합니다. 연산자-curated Private Chat Topics (config-driven, Fixed topic list) 및 사용자 중심 Multi-session DM mode (/topic, 무제한 사용자 생성된 주제로 활성화).
- **개인 정보 정책: ** Telegram은 이제 봇이 개인 정보 보호 정책을 가지고 있습니다.
/setprivacy_policy또는 Telegram을 사용하여 BotFather를 통해 하나를 설정하면 홀더를 자동 생성 할 수 있습니다. 봇이 공개되어 있다면 특히 중요합니다. -Bot API 9.5 (Mar 2026):sendMessageDraft를 통해 네이티브 스트리밍. Hermes는 Telegram의 native Streaming-draft API를 사용하여 토큰이 프라이빗 채팅에 도착함에 따라 에이전트의 응답의 애니메이션 미리보기를 렌더링합니다. 느린 모델에 레거시editMessageTextpolling 경로와 함께 볼 수있는 편집 지터를 삭제합니다.
스트리밍 전송 (gateway.streaming.transport)
스트리밍이 활성화되면 (gateway.streaming.enabled: true), 헤르메스는 4 개의 운송 중 하나를 선택합니다.
| 가치 | 행동 |
|---|||
| auto(과태) | 지원되는 채팅의 네이티브 초안 스트리밍(현재 Telegram DM); 레거시 편집 기반 경로는 그렇지 않습니다. 초안 프레임이 실패한 경우 뒤로 울립니다. ·
| draft | 포스 네이티브 초안. 대화가 초안을 지원하지 않는 경우 다운 그레이드와 가을을 다시 편집합니다 (예: 그룹 / 토픽). |
| edit | 모든 채팅 유형에 대한 레거시 프로그레시브 editMessageText polling. |
모델 번호: off | 전반적으로 스트리밍 가능(최종 응답만, 프로그레시브 업데이트 없음) ·
~/.hermes/config.yaml에서:
gateway:
streaming:
enabled: true
transport: auto # auto | draft | edit | off
** auto (과태) **와 DM에서 볼 수 있습니다. 에이전트가 응답을 생성 할 때 Telegram은 토큰 토큰 토큰 토큰 토큰을 업데이트하는 애니메이션 초안 미리보기를 보여줍니다. 응답이 완료되면 일반 메시지와 초안 미리보기로 전달됩니다. Drafts는 메시지가 없습니다. 그래서 마지막 대답은 채팅 역사에 머무는 것입니다.
그룹, 슈퍼그룹, 포럼 주제는 무엇인가요? Telegram는 sendMessageDraft를 프라이빗 채팅(DM)에 제한합니다. 투명한 게이트웨이는 다른 모든 것을 위한 편집 기반 경로로 돌아갑니다 — 이전과 같은 UX.
초안 프레임이 실패하면? 어떤 실패 (전송 네트워크 오류, 서버 측 거부, 이전 python-telegram-bot 설치) 스트림의 나머지에 대한 편집 기반 경로로 다시 응답. 다음 응답은 신선한 시도를 가져옵니다.
렌더링: 테이블 및 링크 미리보기
Telegram의 MarkdownV2는 원시를 통과한 경우에 본래 테이블 구문이 없습니다 — 관 테이블은 backslash escaped 소음으로 만듭니다. Hermes는 markdown 테이블을 자동적으로 정상화합니다:
- 소형 테이블는 row-group Bullets로 평평하게 됩니다. — 각 행은 컬럼 헤드링 아래 읽을 수 있는 총알 목록이 됩니다. 2–4 열 및 짧은 세포에 대 한 좋은.
- ** 더 큰 또는 더 넓은 테이블**는 ** fenced 코드 블록으로 다시 떨어졌다 ** 정렬 열 그래서 아무것도 붕괴. 한 선 프롬프트 힌트가 추가되므로 에이전트는 Telegram에서 더 많은 테이블 위에 prose follow-ups를 선호하는 것을 알고 있습니다.
구성 할 일이 없습니다. 어댑터는 메시지 당 올바른 fallback을 선택합니다. 레거시 "알웨이 코드 블록" 행동을 원한다면 telegram.pretty_tables: false (기본: true)에서 telegram.pretty_tables: false를 설정하여 테이블 정상화가 비활성화됩니다.
** 링크 미리보기.** bot 메시지의 URL에 대한 Telegram 자동 생성 링크 미리보기. 오히려 그 (긴 /tools 산출, 10의 연결을 언급하는 대리인 대답, 등)를 억압하는 경우에:
gateway:
platforms:
telegram:
extra:
disable_link_previews: true
활성화 할 때, 헤르메스는 Telegram의 LinkPreviewOptions(is_disabled=True)를 각 나가는 메시지에 첨부하고 기존 disable_web_page_preview 매개 변수로 돌아갑니다. python-telegram-bot 버전.
그룹 수당
Telegram 그룹 및 포럼 채팅은 구성 할 수있는 두 개의 직각 게이트가 있습니다.
- ** 사용자 ID** (
group_allow_from/TELEGRAM_GROUP_ALLOWED_USERS) - 그룹/포럼 메시지에만 적용되는 sender-scoped allowlist. 특정 사용자가TELEGRAM_ALLOWED_USERS에 추가하지 않고 그룹에서 봇을 호출 할 수있을 때이를 사용하십시오 (또한 DM 액세스를 제공 할 것입니다). - ** 채팅 ID** (
group_allowed_chats/TELEGRAM_GROUP_ALLOWED_CHATS) - 채팅스코프 수당. 이 그룹의 구성원은 봇과 상호 작용할 수 있습니다. 그룹 멤버쉽 자체가 액세스 신호인 팀/지원 봇에 유용합니다.
gateway:
platforms:
telegram:
extra:
# Global access (DMs + groups). Users here can always invoke the bot.
allow_from:
- "123456789"
# Sender IDs allowed in groups/forums only. Does NOT grant DM access.
group_allow_from:
- "987654321"
# Entire groups/forums — any member is authorized.
group_allowed_chats:
- "-1001234567890"
동등한 env vars:
TELEGRAM_ALLOWED_USERS="123456789"
TELEGRAM_GROUP_ALLOWED_USERS="987654321"
TELEGRAM_GROUP_ALLOWED_CHATS="-1001234567890"
공급 능력:
TELEGRAM_ALLOWED_USERS는 모든 채팅 유형 (DM, 그룹, 포럼)을 다룹니다.TELEGRAM_GROUP_ALLOWED_USERS는 그룹/forums에 목록으로 만들어진 senders만 허가합니다. 그들은 여전히TELEGRAM_ALLOWED_USERS에 나열되지 않는 봇을 DM 할 수 없습니다.TELEGRAM_GROUP_ALLOWED_CHATS의 채팅은 보낸 사람에 관계없이 채팅의 모든 구성원을 승인합니다.- 이 중 어떤 sender/chat든지 허용하기 위하여
*를 사용하십시오. group_topics+ignored_threads의 상단에 기존 언급 / pattern 트리거의 상단에이 레이어.
PR #17686 이전의 마이그레이션
이 분할 이전에, TELEGRAM_GROUP_ALLOWED_USERS는 유일한 손잡이이고 사용자는 그것에 chat IDs를 뒀습니다. 뒤 호환성을 위해, TELEGRAM_GROUP_ALLOWED_USERS의 -로 시작된 chat-ID 모양의 값은 여전히 채팅 ID로 명예를 얻고 퇴직 경고는 한 번 기록됩니다. 공급 능력:
# Old (still works, but deprecated)
TELEGRAM_GROUP_ALLOWED_USERS="-1001234567890"
# New
TELEGRAM_GROUP_ALLOWED_CHATS="-1001234567890"
Slash 명령 접근 제한
기본적으로 각 사용자가 모든 슬래시 명령을 실행할 수 있습니다. Allowlist를 admins (full slash command access) 및 regular user ( 명시적으로 활성화하는 유일한 명령)로 분할하려면 allow_admin_from 및 user_allowed_commands를 플랫폼의 extra 블록에 추가하십시오.
gateway:
platforms:
telegram:
extra:
# Existing allowlists (unchanged)
allow_from:
- "123456789" # admin
- "555555555" # regular user
- "777777777" # regular user
# NEW — admins get all 슬래시 명령 (built-in + plugin)
allow_admin_from:
- "123456789"
# NEW — non-admin allowed users can only run these 슬래시 명령.
# /help and /whoami are always allowed so users can see their access.
user_allowed_commands:
- status
- model
- history
# Optional: separate admin/command lists for groups
group_allow_admin_from:
- "123456789"
group_user_allowed_commands:
- status
**Behavior: **
- 범위 (DM 또는 그룹)에 대한
allow_admin_from에 나열된 사용자는 ** 등록 된 슬래시 명령 - 내장 명령 및 플러그인 등록 된 것들 - 라이브 레지스트리를 통해 실행할 수 있습니다. allow_from의 사용자이지만 **allow_admin_from에서user_allowed_commands에 나열된 명령만 실행할 수 있으며 항상 허용된 바닥:/help및/whoami.- 일반 채팅 (non-slash 메시지)는 비범죄입니다. 비admin 사용자는 일반적으로 에이전트에 대화 할 수 있습니다, 그들은 단지 임의 명령을 트리거 할 수 없습니다.
-Backward compat: 만약
allow_admin_from범위에 설정되지 않은 경우, 슬래시 명령은 해당 범위에 사용할 수 없습니다. Existing installs는 변경 사항이 없습니다. - DM 관리자 상태는 그룹 관리자 상태를 무시하지 않습니다. 각 범위에는 자체 관리자 목록이 있습니다.
group_allow_admin_from만 설정되면, DM 범위는 제한되지 않습니다 (backward-compat) 모드.
/whoami를 사용하여 활성 범위를 볼 수 있습니다. tier (admin / user / unstricted), 그리고 slash 명령을 실행할 수 있습니다.
상호 작용하는 모형 피커
Telegram 채팅의 인수가없는 /model를 보낼 때 Hermes는 전환 모델을위한 대화 형 인라인 키보드를 보여줍니다.
- **Provider 선택 ** - 모델 카운트 (예: "OpenAI (15)", "✓ Anthropic (12)"를 사용하여 각 사용 가능한 공급자를 보여주는 버튼.
- ** 모델 선택 ** — ****/Next 내비게이션, Back 버튼을 사용하여 공급자로 돌아와 Cancel.
현재 모델과 공급자는 정상에 표시됩니다. 모든 내비게이션은 같은 메시지를 편집함으로써 발생합니다 (채팅 clutter 없음).
정확한 모델명을 알고 있다면, /model <name>를 직접 입력하여 픽업을 건너 뛸 수 있습니다. /model <name> --global를 입력하여 세션을 통해 변경할 수 있습니다.
주요 특징
DNS-over-HTTPS 폴백 IP
일부 제한되는 네트워크에서 api.telegram.org는 제한되지 않는 IP로 해결할 수 있습니다. Telegram 어댑터에는 fallback IP 메커니즘이 포함되어 있으며, 올바른 TLS 호스트명과 SNI를 보존하는 동안 대안 IP에 대해 투명하게 연결됩니다.
어떻게 작동합니까?
TELEGRAM_FALLBACK_IPS가 세트인 경우에, 그 IPs는 직접 사용됩니다.- 그렇지 않으면 어댑터가 자동으로 쿼리 ** Google DNS ** 및 ** Cloudflare DNS ** DNS-over-HTTPS (DoH)를 통해
api.telegram.org에 대한 대안 IP를 검색합니다. - 시스템 DNS 결과와 다른 DoH에 의해 반환된 IP는 fallbacks로 사용됩니다.
- DoH는 또한 막힌 경우에, hardcoded씨 IP ()는 마지막 리조트로 사용됩니다.
- fallback IP가 성공하면 "sticky"가됩니다. 이후 요청은 첫 번째 경로가 재발하지 않고 직접 사용하십시오.
윤곽
# Explicit fallback IPs (comma-separated)
TELEGRAM_FALLBACK_IPS=149.154.167.220,149.154.167.221
또는 ~/.hermes/config.yaml에서:
platforms:
telegram:
extra:
fallback_ips:
- "149.154.167.220"
자주 묻는 질문 DoH를 통해 자동 발견은 가장 제한된 네트워크 시나리오를 처리합니다. TELEGRAM_FALLBACK_IPS env var는 또한 당신의 네트워크에 막힌 경우에만 필요합니다.
주요 특징
프록시 지원
네트워크가 인터넷에 도달하기 위해 HTTP 프록시가 필요합니다 (기업 환경에서의 데모), Telegram 어댑터는 자동으로 표준 프록시 환경 변수를 읽고 프록시를 통해 모든 연결을 경로.
지원 변수
어댑터는 다음과 같은 환경 변수를 순서대로 체크합니다.
HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxy/http_proxy/all_proxy(낮은 변종)
윤곽
게이트웨이를 시작하기 전에 환경의 프록시 설정:
export HTTPS_PROXY=http://proxy.example.com:8080
hermes gateway
또는 ~/.hermes/.env에 추가하십시오:
HTTPS_PROXY=http://proxy.example.com:8080
프록시는 기본 운송과 모든 fallback IP 운송 모두에 적용됩니다. 추가 Hermes 구성이 필요하지 않습니다. 환경 변수가 설정되면 자동으로 사용됩니다.
이것은 Hermes가 Telegram 연결을 위해 사용하는 custom fallback 수송 층을 포함합니다. 표준 httpx 클라이언트는 다른 곳에서 이미 프록시 env vars를 기본적으로 존중합니다.
주요 특징
메시지 반응
봇은 시각적 처리 피드백으로 메시지에 이모티콘 반응을 추가 할 수 있습니다.
- 봇이 메시지를 처리하기 시작했을 때
- ✅ 응답이 성공적으로 전달될 때
- 처리 중에 오류가 발생하면 ❌
Reactions는 기본적으로 ** 비활성화됩니다. config.yaml에서 그들을 사용:
telegram:
reactions: true
또는 환경 변수를 통해:
TELEGRAM_REACTIONS=true
Discord와는 달리 (어떤 반응은 첨가물입니다), Telegram의 Bot API는 단일 통화에 있는 모든 bot 반응을 대체합니다. ✅/❌의 전환은 원자로가 발생합니다. 한번에 볼 수 없습니다. 주요 특징
봇이 그룹에서 반응을 추가하는 권한이 없다면, 반응은 침묵적으로 실패하고 메시지 처리는 일반적으로 계속됩니다. 주요 특징
퍼 채널 Prompts
할당 ephemeral 시스템 특정 Telegram 그룹 또는 포럼 주제로 신속한. 프롬프트는 모든 턴에 런타임에 주입되어 있습니다. 즉, 성적 역사에 영향을 미칩니다. 따라서 즉시 효과를 변경합니다.
telegram:
channel_prompts:
"-1001234567890": |
You are a research assistant. Focus on academic sources,
citations, and concise synthesis.
"42": |
This topic is for creative writing feedback. Be warm and
constructive.
키는 채팅 ID (그룹 / 슈퍼 그룹) 또는 포럼 주제 ID입니다. 포럼 그룹에 대 한, 주제 수준 프롬프트 override the group-level prompt:
- 주제의 메시지
42내부 그룹-1001234567890→ 항목42의 신속한 사용 - 주제의 메시지
99( 명시되지 않은 항목) → 그룹-1001234567890의 프롬프트로 돌아갑니다 - 입장없이 그룹에 메시지 → 채널 프롬프트 적용 없음
숫자 YAML 열쇠는 끈으로 자동적으로 정상화됩니다.
문제 해결
| 문제 | 솔루션 |
|---|---|
| 모든 것에 대응하지 않는 봇 | Verify TELEGRAM_BOT_TOKEN는 정확합니다. hermes gateway 로그를 오류로 확인합니다. |
| 봇은 "허용"으로 대응 | 사용자 ID는 TELEGRAM_ALLOWED_USERS에 없습니다. @userinfobot으로 더블 체크. |
| Bot 무시 그룹 메시지 | 개인 모드는 가능성이 있습니다. (Step 3)를 비활성화하거나 그룹 관리자를 bot합니다. **개인 정보 변경 후 봇을 제거하고 다시 추가하십시오. ** |
| 음성 메시지가 나타날 수 없습니다 | Verify STT는 유효하다: 로컬 transcription을 위한 faster-whisper를 설치하거나 GROQ_API_KEY/VOICE_TOOLS_OPENAI_KEY를 설정한다. |
| 음성 답글은 파일이 아니고, 거품이 없습니다 | ffmpeg 설치 (엣지 TTS Opus 변환에 적용). · |
| Bot Token revoked/invalid | /revoke 다음 /newbot 또는 /token BotFather를 통해 새로운 토큰 생성. .env 파일을 업데이트하십시오. |
| 웹훅 업데이트 수신 | Verify TELEGRAM_WEBHOOK_URL는 공개적으로 도달 가능 (curl로 테스트). URL의 포트에서 TELEGRAM_WEBHOOK_PORT에 의해 형성된 지역 청취 포트로 플랫폼/리버스 프록시 경로 인바운드 HTTPS 트래픽을 보장합니다 (동일 번호가 될 필요가 없습니다). SSL/TLS가 활성화됩니다. - Telegram은 HTTPS URL로만 전송됩니다. 방화벽 규칙을 확인합니다. |
Exec 승인
에이전트가 잠재적으로 위험한 명령을 실행 할 때, 그것은 채팅에서 승인을 요청:
⚠️ 이 명령은 잠재적으로 위험합니다 (recursive delete). approve에 "예"를 대답하십시오.
대답 "yes"/"y" 에 approve 또는 "no"/"n" 에 deny.
Interactive Prompts (확인)
에이전트가 clarify 도구를 호출 할 때 - 당신이 선호하는 접근 방식을 요청, 게시물을 얻을, 또는 비 트리 바이알 결정 전에 확인 - Telegram은 ** 인라인 키보드 버튼으로 질문을 렌더링 **:
대시보드에 어떤 프레임 워크를 사용해야합니까? · [1. 다음.js] [2. 리믹스 [[1] 아스트로] [️ 기타]
응답 버튼을 탭하거나 ** 기타**를 입력하여 무료 입력 응답을 입력합니다. (다음 메시지는 답변이됩니다). Open-ended clarify 호출 (프리셋 선택 없음) 버튼을 건너 다음 메시지를 캡처합니다.
~/.hermes/config.yaml (기본 600 초)의 agent.clarify_timeout를 통해 응답 타임 아웃을 구성하십시오. timeout 내에서 응답하지 않는 경우, the agent unblocks with the sentinel message and adapts 오히려 거는 것보다.