Nox-Lumen MfgNox-Lumen Mfg

Channel 消息渠道

Channel 的定位

Channel 是用户与平台之间的入口通道。同一个 Agent 能力可以通过不同 Channel 暴露——用户无需学习新界面,在既有工作方式下就能触发 Agent:

Rendering diagram…

已支持 Channel

Channel支持能力典型场景
Web Chat富文本消息、流式响应、文件上传、工件实时更新默认 Web 界面
飞书 / LarkIM(@ 机器人 / 群聊 / 私聊)、云文档评论触发、卡片消息、附件团队协作为主的客户
企业微信 / WeComIM(@ 机器人 / 群聊 / 私聊)、卡片消息、文件内部部署国企 / 政府
邮件 / SMTP · IMAP发信 / 收信 / 规则触发 / 附件解析外部合作方、客户交付
Webhook通用 HTTP POST 入口外部系统(CI / Jira / DOORS)触发

Channel Adapter 的 4 大职责

1. 身份映射

外部身份(飞书 open_id、企微 userid、邮箱地址)→ 平台租户 / 用户 / 会话所有者

  • 支持强映射:外部 ID 必须先在平台绑定
  • 支持动态映射:按规则自动创建用户(例:邮件域名 = 租户)

2. 会话路由(Session Resolver)

一条外部消息应该落到哪个 Session?这层决策考虑:

  • 群聊 / 单聊:群聊默认共享 Session,单聊每人一个
  • 话题隔离:飞书话题 / 企微会话序列可映射到不同 Session
  • 时间窗口:超过 X 小时不活跃自动开新 Session

3. 格式转换

来源内部统一格式目标
飞书富文本 / 卡片平台 Message飞书卡片 / 富文本
企微 markdown 卡平台 Message企微 markdown 卡
邮件 HTML / 附件平台 Message邮件 HTML
Webhook JSON平台 EventHTTP 响应

4. 凭据 / 限流 / 去抖

  • 凭据:Bot Token / OAuth / App Secret 由 Credential 层统一管
  • 限流:防止外部 Bot 攻击,按 Channel 独立计数
  • 去抖(Debounce):同一用户 N 秒内重复消息合并

一个消息的生命周期(飞书示例)

1. 用户 @ 机器人发一条消息

2. 飞书把事件发到平台 /v1/channel/lark 端点

3. Adapter 验签 + 身份映射(open_id → 租户 X 用户 Y)

4. Session Resolver 决定落到 Session S(或新建)

5. 格式转换:飞书事件 → 平台 Message

6. Debounce 检查(如果 5s 内还有消息,合并)

7. 写入 Session 消息流,触发 Agent Loop

8. Agent 产出 → 反向经 Adapter → 飞书富文本回复

DM / 群聊策略

每个 Channel 可独立配置:

策略说明
dm-only只处理单聊,群聊里的 @ 也忽略
mention-only群聊只处理 @ 机器人的消息
all群聊所有消息都进 Session(适合"小群专机器人")
command-prefix只处理以 /, @xxx 等前缀的消息

配置方式

通过管理台的「集成对接」页面,每个 Channel 独立配置:

  • 飞书:App ID + App Secret + 事件订阅 URL
  • 企微:CorpID + AgentID + Secret
  • 邮件:SMTP / IMAP 账号

详见 集成对接

相关文档

On this page