uuos
// 插件 · im-channel

10 个 IM 平台,一个插件接进来

im-channel是一个独立仓库的通用 IM 渠道组件:统一入站消息、统一出站发送、会话历史与人工回复。在 uuos 中它以产品插件 ai.uuos.im-channel的形态注册——每个平台的 webhook 握手、签名算法和奇怪的坑,都被挡在工作流之外。

想脱离 uuos 单独使用?见 产品族 · im-channel

一条消息的旅程

01

平台回调进来

每个渠道一个公开 webhook 地址(/webhooks/im-channel/…),飞书、Slack、Telegram 的消息统一从这里入站。

02

验签与规范化

各平台的签名算法、握手协议、消息格式在适配层被消化,进入系统的是统一的消息模型。

03

触发工作流运行

消息经 AgentInvoker 映射为一次 uuos 工作流运行——对执行引擎来说,IM 消息只是又一种触发源。

04

结果回到原会话

运行完成后答案发回消息来源的会话;会话历史留存,需要时人工可以接管回复。

平台覆盖

入站能力如实标注:企业微信群机器人只发不收,Discord 入站需要 Gateway bot,两者当前仅支持出站。

平台入站(触发工作流)出站(发送回复)验签 / 备注
飞书事件回调群机器人 webhookHMAC-SHA256 验签
钉钉Outgoing 机器人自定义机器人 webhook加签
企业微信群机器人 webhooktext / markdown
微信公众号消息回调客服消息 APIechostr 握手
SlackEvents APIchat.postMessage签名校验
TelegramBot API updatesendMessagetoken 路由
WhatsAppCloud API webhookCloud APIverify token
LINEMessaging APIPush message签名校验
DiscordIncoming webhook
通用 Webhook任意 JSONPOST JSON自定义

怎么集成到 uuos

  1. 01

    配置开启

    uuos 配置文件里打开 ImChannel 段(或 Helm values 的 productPlugins.msgChannel),指定默认触发的工作流。

  2. 02

    启动即注册

    作为产品插件 ai.uuos.im-channel 注册:认证 API 挂载 /v1/im-channel,公开 webhook 挂载 /webhooks/im-channel——后者在鉴权之外,专供平台回调。

  3. 03

    把 Runner 注进来

    uuos 实现 im-channel 定义的 AgentInvoker 接口,把消息触发接到自己的执行引擎;im-channel 不 import uuos,明天接你自己的 Agent 服务也是同一个接口。

# uuos-api.yaml —— 打开消息渠道插件
ImChannel:
  Enabled: true
  RedisAddr: "127.0.0.1:6379"
  DefaultFlowID: "flow_…"

# 平台回调统一入口(鉴权之外)
POST /webhooks/im-channel/{token}

# AgentInvoker —— 消息到运行的映射
TriggerRun(ctx, scope, targetID, input)

集成后你得到什么

IM 消息 = 工作流触发器

在飞书群里 @ 机器人,就是启动一次生产工作流——不用为每个平台单独写接入代码。

渠道配置界面开箱即用

「渠道接入」「会话消息」菜单出现在 uuos 一级导航,webhook 地址、验签配置、会话记录都在界面里管理。

会话与人工接管

自动回复之外保留人工通道:会话历史完整留存,客服可随时介入接管。

数据边界清晰

渠道与会话数据落在独立命名空间(t_im_channel_*),迁移脚本由组件自己维护,与核心表零外键。

插件 IDai.uuos.im-channel
API 挂载/v1/im-channel(认证) · /webhooks/im-channel(公开)
能力声明im-channel.channel.manage · im-channel.message.send
导航菜单渠道接入 · 会话消息

组件状态:即将开源——状态如实标注,同集成页口径。

继续了解插件体系
// 开始构建

下一个上线的 Agent,从一块空画布开始

Free 计划包含每月 100 次运行与 500K token,足够把完整流程跑通。无需信用卡。