# Hermes + Telegram 串接設定指南
# 前置準備
- 安裝 Hermes(如果還沒裝)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
- 跟 @BotFather 申請 Bot Token
- Telegram 搜尋
@BotFather - 傳
/newbot - 照提示輸入 bot 名稱,拿到的 token 長這樣:
123456789:AAHabc...xyz
- 注意:這是 bot 的 token,不是 user ID!格式有冒號分隔
- 取得你的 Telegram User ID
- 搜尋
@userinfobot或@getidsbot - 傳任意訊息,會回你的數字 ID(如
7790750726)
# 設定流程
# 1. 啟動設定精靈
hermes gateway setup
照順序回答:
| 步驟 | 問題 | 回答 |
|---|---|---|
| 1 | 選平台 | 選 Telegram |
| 2 | Bot token | 貼上 @BotFather 給的完整 token |
| 3 | Allowed user IDs | 你的 Telegram user ID(可多個用逗號分隔) |
| 4 | Home channel ID | 留空按 Enter(之後可用 /set-home 設定) |
| 5 | Use user ID as home channel? | Y 確認 |
| 6 | Install as launchd service? | Y(macOS 开机自启) |
| 7 | Start service now? | Y |
# 2. 啟動 Gateway
hermes gateway run
或使用 launchd 服務(後台運行,开机自啟):
hermes gateway start # 啟動
hermes gateway stop # 停止
hermes gateway restart # 重啟
hermes gateway status # 看狀態
# 3. 測試
去 Telegram 找你的 bot(@你的bot名),傳 /start 應該會回覆。
# 踩過的坑
# 坑 1:Bot Token 與 User ID 搞混
錯誤:把 user ID 當成 bot token 貼進去
症狀:
telegram.error.InvalidToken: Not Found
The token `8762865992:***` was rejected by the server.
正確的區分:
- Bot Token:
123456789:AAHabc...xyz(有冒號分隔,是 @BotFather 給的) - User ID:
7790750726(純數字,是你自己)
# 坑 2:.env 檔案儲存不完整或重複
症狀:curl 測試 token 有效,但 Hermes gateway 就是連不上
# curl 測試 ok
curl "https://api.telegram.org/bot<YOUR_TOKEN>/getMe"
# {"ok":true,"result":{"username":"你的bot",...}}
# 但 gateway log 一直說 token invalid
原因:.env 裡的 TELEGRAM_BOT_TOKEN 被重複寫入或有截斷
檢查方法:
grep TELEGRAM_BOT_TOKEN ~/.hermes/.env
awk 'NR==375' ~/.hermes/.env | od -c # 看實際儲存的位元組
修復方法:
# 備份
cp ~/.hermes/.env ~/.hermes/.env.bak
# 手動編輯,把行 375 改成正確的 token
nano ~/.hermes/.env
# 坑 3:Launchd Service 吃到舊設定
症狀:改了 .env 但 gateway 還是連不上
修復方法:
# 卸載並重新載入 service
launchctl unload ~/Library/LaunchAgents/ai.hermes.gateway.plist
launchctl load ~/Library/LaunchAgents/ai.hermes.gateway.plist
# 或暴力重裝
hermes gateway uninstall
hermes gateway install
# 坑 4:測試 bot 要去正確的私人對話
注意:跟 @userinfobot 拿 user ID 時,要在該 bot 的私人對話傳訊息,不是群組或頻道。
# 日誌查看
# 即時看 gateway log
tail -f ~/.hermes/logs/gateway.log
# 看 error log
tail -f ~/.hermes/logs/gateway.error.log
# 看 service 狀態
hermes gateway status
# 相關指令速查
hermes gateway run # 前台啟動(看即時 log)
hermes gateway start # 後台啟動
hermes gateway stop # 停止
hermes gateway restart # 重啟
hermes gateway status # 狀態
launchctl list | grep hermes # 看 launchd 裡的 service
launchctl unload/load # 重新載入 service