目录

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日