跳转到内容

机器人通道

EasyShell 支持多种消息通道连接 AI 助手,让团队成员通过 Telegram、Discord、钉钉、飞书、Slack 或企业微信与 EasyShell 交互。

通道模式是否需要公网 IP说明
Telegram长轮询自动轮询,无需服务端暴露
DiscordREST 轮询每 2 秒拉取消息
钉钉Webhook / StreamWebhook: 是 / Stream: Stream 模式通过 WebSocket 连接,无需公网
飞书Webhook / StreamWebhook: 是 / Stream: Stream 模式通过 WebSocket 连接,无需公网
SlackWebhook通过 Events API 接收消息
企业微信Webhook仅支持主动推送消息到群

  1. 在 Telegram 中搜索 @BotFather
  2. 发送 /newbot 命令
  3. 按提示设置 Bot 名称和用户名
  4. 创建成功后,BotFather 会返回 Bot Token(格式:123456789:ABCdefGHI-jklMNO...
  5. 妥善保存此 Token
  1. 先给 Bot 发送一条消息(或将 Bot 加入群组发一条消息)
  2. 浏览器访问:https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
  3. 在返回的 JSON 中找到 "chat":{"id": 123456} 即为 Chat ID
  1. 进入 系统管理 → 机器人配置 → Telegram
  2. 填写以下配置项:
配置项说明是否必填
Bot Token从 BotFather 获取的 Token必填
Allowed Chat IDs允许的 Chat ID,多个用英文逗号分隔选填(留空则接受所有消息)
  1. 打开 启用 开关
  2. 配置完成后系统自动启动长轮询,Bot 会自动接收并回复消息

  1. 访问 Discord Developer Portal
  2. 点击 New Application,输入应用名称并创建
  3. 在左侧菜单进入 Bot 页面
  4. 点击 Add Bot 创建机器人
  5. 点击 Reset Token 获取 Bot Token,妥善保存
  6. Privileged Gateway Intents 下开启 MESSAGE CONTENT INTENT(重要,否则无法读取消息内容)
  1. 在左侧菜单进入 OAuth2 → URL Generator
  2. Scopes 勾选 bot
  3. Bot Permissions 勾选:
    • Send Messages(发送消息)
    • Read Message History(读取消息历史)
    • View Channels(查看频道)
  4. 复制生成的邀请链接,在浏览器中打开
  5. 选择目标服务器,确认授权
  1. 在 Discord 客户端中开启 开发者模式
    • 用户设置 → 高级 → 开启「开发者模式」
  2. 获取 Guild ID(服务器 ID):右键点击服务器名称 → 复制服务器 ID
  3. 获取 Channel ID(频道 ID):右键点击目标文字频道 → 复制频道 ID
  1. 进入 系统管理 → 机器人配置 → Discord
  2. 填写以下配置项:
配置项说明是否必填
Bot TokenDiscord Bot Token必填
Guild ID服务器 ID必填
Allowed Channel IDs允许的频道 ID,多个用英文逗号分隔选填(留空则监听所有频道)
  1. 打开 启用 开关

钉钉机器人支持两种模式:Webhook 模式Stream 模式

Stream 模式通过 WebSocket 长连接接收消息,无需公网 IP、无需 HTTPS 证书,是推荐的接入方式。

  1. 登录 钉钉开放平台
  2. 创建企业内部应用 → 添加 机器人 能力
  3. 在应用的 凭证与基础信息 中获取 Client ID(AppKey)和 Client Secret(AppSecret)
  1. 进入 系统管理 → 机器人配置 → 钉钉
  2. 将模式切换为 Stream
  3. 填写以下配置项:
配置项说明是否必填
模式选择 Stream必填
Client ID应用的 AppKey必填
Client Secret应用的 AppSecret必填
  1. 打开 启用 开关

飞书机器人同样支持 Webhook 模式Stream 模式

Stream 模式通过 WebSocket 长连接接收消息,无需公网 IP、无需 HTTPS 证书

  1. 登录 飞书开放平台
  2. 创建企业自建应用
  3. 添加 机器人 能力
  4. 凭证与基础信息 中获取 App IDApp Secret
  5. 事件与回调 → 事件配置 中,选择使用 长连接 方式接收事件
  6. 添加事件订阅:im.message.receive_v1(接收消息)
  1. 进入 系统管理 → 机器人配置 → 飞书
  2. 将模式切换为 Stream
  3. 填写以下配置项:
配置项说明是否必填
模式选择 Stream必填
App ID飞书应用的 App ID必填
App Secret飞书应用的 App Secret必填
  1. 打开 启用 开关

  1. 访问 Slack API,点击 Create New App
  2. 选择 From scratch,输入应用名称并选择工作区
  3. Event Subscriptions 中开启事件订阅
  4. 设置请求地址:
    https://<你的服务器域名>:<端口>/api/v1/webhook/slack
  5. Subscribe to bot events 中添加:message.channelsmessage.im
  6. OAuth & Permissions 中添加 Bot Token Scopes:
    • chat:write — 发送消息
    • channels:history — 读取频道消息历史
    • im:history — 读取私信历史
  7. 安装 App 到工作区,获取 Bot Token(以 xoxb- 开头)
  8. Basic Information 中获取 Signing Secret
  1. 进入 系统管理 → 机器人配置 → Slack
  2. 填写以下配置项:
配置项说明是否必填
Webhook URLSlack Incoming Webhook URL(用于主动推送)选填
Bot TokenBot Token(以 xoxb- 开头,用于频道内回复)推荐配置
Allowed Channel IDs允许的频道 ID,多个用英文逗号分隔选填
  1. 打开 启用 开关

企业微信机器人当前支持 主动推送 消息到群聊。

  1. 在企业微信群聊中,点击群设置 → 添加群机器人
  2. 输入机器人名称并创建
  3. 复制生成的 Webhook URL
  1. 进入 系统管理 → 机器人配置 → 企业微信
  2. 填写以下配置项:
配置项说明是否必填
Webhook URL企业微信 Webhook 地址必填
  1. 打开 启用 开关

机器人通道支持持久化对话上下文,AI 可以在一次会话中记住之前的消息。这些设置对所有通道全局生效。

进入 系统管理 → 机器人配置,找到 通道上下文设置 面板。

配置项说明默认值
上下文模式持久化 — AI 在会话内记住对话历史。无状态 — 每条消息独立处理,不保留历史。持久化
会话超时空闲多少分钟后会话过期、上下文清除。设为 0 则不超时。30 分钟
默认供应商机器人通道对话使用的 AI 供应商(如 OpenAI、Anthropic 等)。未设置时使用系统默认 AI 供应商。系统默认
默认模型机器人通道对话使用的 AI 模型。未设置时使用供应商的默认模型。供应商默认

在每个通道的配置区域中,可以单独设置该通道的 供应商模型,实现不同通道使用不同的 AI 模型。如留空,则使用上述全局通道默认设置。

用户可以在任意机器人通道中发送 /new 命令来 重置对话上下文,开始全新会话。这将清除该用户/聊天的所有历史消息记录。


定时巡检任务和定时脚本执行任务的结果可以推送到指定的机器人通道。在创建或编辑定时任务时,可以选择 通知通道,任务执行完成后结果会自动发送到选中的机器人通道。

支持推送到所有已启用的通道:Telegram、Discord、钉钉、飞书、Slack、企业微信。


  1. 确认对应通道的 启用 开关已打开
  2. 查看 EasyShell 服务器日志,搜索关键字 Started channelFailed to start channel
  3. 确认 Bot Token 或 Webhook URL 填写正确
  4. 确认 AI 设置中已配置可用的模型提供商(如 OpenAI、DeepSeek 等)

钉钉/飞书 Stream 模式连接不上?

Section titled “钉钉/飞书 Stream 模式连接不上?”
  1. 确认 Client ID / App ID 和 Secret 填写正确
  2. 确认应用已在开放平台上添加了机器人能力
  3. 检查服务器的出站网络是否可以访问 api.dingtalk.comopen.feishu.cn
  4. 查看日志中的 WebSocket 连接错误信息
  5. Stream 模式断线后会自动指数退避重连,等待几秒即可

机器人配置 页面,关闭对应通道的启用开关,等待几秒后重新打开即可。系统会自动停止旧连接并建立新连接。

钉钉机器人收不到消息(Webhook 模式)?

Section titled “钉钉机器人收不到消息(Webhook 模式)?”
  1. 确认使用的是企业内部应用机器人(非群自定义机器人),且已配置消息接收地址
  2. 确认回调地址 https://<域名>/api/v1/webhook/dingtalk 可从公网访问
  3. 检查加签密钥(Secret)是否与钉钉开放平台配置一致
  4. 查看服务器日志是否有签名验证失败的记录

飞书机器人收不到消息(Webhook 模式)?

Section titled “飞书机器人收不到消息(Webhook 模式)?”
  1. 确认回调地址 https://<域名>/api/v1/webhook/feishu 可从公网访问
  2. 确认已完成 url_verification 验证(EasyShell 自动处理)
  3. 确认已订阅 im.message.receive_v1 事件
  4. 检查签名密钥(Secret)是否与飞书开放平台配置一致
  1. 确认 Events API 的请求地址 https://<域名>/api/v1/webhook/slack 可从公网访问
  2. 确认已添加 message.channelsmessage.im 事件订阅
  3. 确认 Bot Token Scopes 包含 chat:writechannels:history
  4. 检查 Signing Secret 是否正确

查看 EasyShell 服务器启动日志:

Started channel: telegram — Telegram 机器人已启动
Started channel: discord — Discord 机器人已启动
DingTalk bot started (stream mode) — 钉钉机器人已启动(Stream 模式)
DingTalk bot started (webhook mode) — 钉钉机器人已启动(Webhook 模式)
Feishu bot started (stream mode) — 飞书机器人已启动(Stream 模式)
Feishu bot started (webhook mode) — 飞书机器人已启动(Webhook 模式)
Slack bot started (webhook mode) — Slack 机器人已启动
WeChat Work bot started (webhook mode) — 企业微信机器人已启动
Failed to start channel: xxx — 启动失败,查看错误详情
  1. 检查 通道上下文设置 中的 上下文模式 是否为 持久化(而非无状态)
  2. 确认 会话超时 时间未到期 — 如果用户空闲时间超过配置的超时时间,会话已被清除
  3. 查看服务器日志中是否有 Session expired for 消息,表示会话因超时被清理
  4. 注意服务器重启会清除所有会话上下文

如何让不同通道使用不同的 AI 模型?

Section titled “如何让不同通道使用不同的 AI 模型?”

在每个通道的配置区域中单独设置 供应商模型。例如,Telegram 使用 GPT-4o,Discord 使用 Claude。如果通道未设置供应商/模型,则依次回退到全局通道默认配置、系统 AI 设置。