目錄

用 n8n 打造 Telegram AI 聊天機器人

這一節我們做一個 Telegram AI 助理:使用者傳訊息給機器人,n8n 用 AI 產生回覆,並且記得每位使用者的對話內容。

[Telegram Trigger] ─▶ [AI Agent] ─▶ [Telegram:傳送訊息]
                        ├ Chat Model
                        └ Memory(以使用者 ID 區分)

1. 建立 Telegram Bot

  1. 在 Telegram 搜尋 @BotFather。
  2. 傳送 /newbot。
  3. 依指示輸入機器人的顯示名稱,以及結尾為 bot 的使用者名稱(例如 my_helper_bot)。
  4. BotFather 會回傳 Bot Token,請妥善保存,不要外流。

2. 建立憑證

在 n8n 中新增 Telegram API 憑證,貼上 Bot Token。

3. Telegram Trigger

新增工作流程,第一個節點選擇 Telegram Trigger:

  • Trigger On:Message

Telegram Trigger 使用 Webhook 接收訊息,所以:

  • n8n 必須能從網際網路以 HTTPS 連線(見 自架部署)。
  • 本機測試時可以用 Cloudflare Tunnel 等工具暫時對外公開。

按 Listen for test event,然後在 Telegram 中傳一則訊息給你的機器人,節點會收到類似這樣的資料:

{
  "message": {
    "message_id": 42,
    "from": { "id": 123456789, "first_name": "小明" },
    "chat": { "id": 123456789, "type": "private" },
    "text": "你好"
  }
}

一個 Bot 只能設定一個 Webhook。同一個 Bot 在測試流程與正式流程之間切換時,最後一個啟用的會生效。

4. AI Agent

新增 AI Agent 節點:

  • Source for Prompt:Define below
  • Prompt (User Message):{{ $json.message.text }}
  • System Message:
你是一個友善的 Telegram 助理,名字叫「小幫手」。
請使用台灣慣用的繁體中文,回答簡潔,適合在手機上閱讀。

接上 Chat Model(OpenAI,或 Ollama 本機模型)。

5. 依使用者記住對話

新增 Simple Memory(正式使用建議 Postgres / Redis Chat Memory):

  • Session ID:Define below
  • Key:{{ $('Telegram Trigger').item.json.message.chat.id }}

以 chat ID 當作 Session Key,每位使用者(或每個群組)都有自己的對話記憶,不會互相混在一起。

6. 傳送回覆

新增 Telegram 節點,操作 Send Message:

  • Chat ID:{{ $('Telegram Trigger').item.json.message.chat.id }}
  • Text:{{ $json.output }}

AI Agent 的回答在 output 欄位中。

在 Additional Fields 中可以設定 Parse Mode。如果模型的回答含有 Markdown 符號導致傳送失敗,可以先不設定 Parse Mode,以純文字傳送。

7. 測試並發布

  1. 按 Execute workflow,傳訊息給機器人測試。
  2. 確認沒問題後 Save 並 Publish。

進階功能

只允許特定使用者

在 Telegram Trigger 後面加上 If 節點:

{{ $json.message.from.id }} 等於 123456789

不符合的走另一條路,回覆「此機器人僅供內部使用」或直接忽略。也可以在 Telegram Trigger 的設定中限制使用者 ID(依版本提供)。你自己的 ID 可以從 Trigger 收到的資料中找到。

處理指令

用 Switch 節點依照訊息內容分流:

條件處理
text 等於 /start傳送歡迎訊息與使用說明
text 等於 /reset清除記憶
其他交給 AI Agent

處理非文字訊息

使用者傳的是圖片、貼圖或語音時,message.text 會是空的。在 AI Agent 前用 If 判斷 {{ $json.message.text }} 是否存在,避免出錯。

處理圖片:用 Telegram 節點的 Get File 下載圖片,再交給支援視覺的模型分析。

加上工具

把 AI Agent 入門 中介紹的工具(Google 試算表、HTTP Request、計算機)接到這個 Agent 上,機器人就能查詢資料、執行動作。

主動推送

不只回覆訊息,任何工作流程都可以用 Telegram 節點主動傳訊息給你,例如每日報表、錯誤通知、訂單通知。只要知道你的 Chat ID 即可。

更新於 2026年10月12日