管理后台
AI 配置
渠道接入
渠道接入 IChannelAdapter
外部 IM ↔ 平台 统一消息管线 · 声明式配置 · 多账号 + 绑定路由 · 能力自动降级
已接入渠道 4
渠道账号 7
今日入站 1,204
异常 1
渠道分层:
L0 内置零资质跨行业(通用 webhook / 邮件 / 站内)·
L0.5 共享包多客户共享但有企业资质门槛(群机器人 / 飞书·企微自建应用 / 公众号)·
L1 二开高门槛单客户(企微外部群会话存档·付费 License / 垂直 IM)·
❌ 红线个人微信 bot 不内置(封号/合规风险,仅客户侧灰度)。
渠道即插件(@starter/channel-* npm 包 + manifest),按需安装。
L0 内置
底座出厂自带 · 零资质 · 跨行业通用
通用 webhookL0
客户自有系统(ERP/CRM/OA)双向对接 · 签名校验
connected
webhook
2 个账号
邮件L0
SMTP/Resend 出站 + 入站解析 · 防自环 · Message-ID 幂等
connected
token
1 个账号
站内通知L0
自有端内通知(DB + WebSocket 推送)· 告警/审批触达兜底
connected
内置
—
L0.5 共享包
多客户共享 · 需企业资质 · 以 npm 插件按需安装
飞
飞书 · 自建应用L0.5
事件订阅 + 消息 API · 双向 · 原生审批卡片
connected
oauth
2 个账号
企
企业微信 · 自建应用L0.5
回调 + 消息 API · AES 加密 · 可信 IP · 审批卡片
connecting
oauth
1 个账号
微信群机器人L0.5
群 webhook 仅出站 · 告警/审批通知 · 门槛极低
connected
webhook
1 个账号
微信公众号L0.5
客服消息(48h 窗口)+ 模板/订阅通知 · 需认证服务号
disconnected
oauth
未配置
L1 行业 / 客户二开
高门槛 · 单客户场景 · 不随底座发布
群
企微外部群 · 会话存档L1
加密回调 + 付费 License · 群内 @bot 触发 · C 端触达
error
archive_license
License 已过期
钉
钉钉 · 企业内部应用L1 二开
Stream 模式 / HTTP 回调 · 双向 + 审批卡片 · 按需开发
disconnected
token
插件未安装
个人微信 bot❌ 不内置
客户端 Hook / 协议逆向 · 双向但极高合规风险
红线:存在合规、稳定和封号风险——仅可作客户侧内部验证 / 小规模灰度 / 过渡方案,绝不作为产品默认主路径,不内置进底座。
渠道配置 · 飞书自建应用 声明式 ChannelConfigField 驱动
表单由渠道元数据 ChannelMeta.configFields[] 动态渲染——新增渠道零 UI 改动,只需补一份配置 schema
appId * type: text
appSecret * type: password
encryptKey type: password
加密方式 type: select
AES-256(推荐)
事件订阅 URL 系统生成 · 粘贴到飞书开放平台
接入指引(ChannelMeta.instructions)
① 飞书开放平台创建企业自建应用,开启机器人能力 → ② 复制 appId / appSecret 填入左侧 → ③ 事件订阅粘贴上方 URL,勾选 im.message.receive_v1 → ④ 发布版本并等待企业管理员审核
connectionType: oauth · 凭证 AES-256-GCM 加密存储,仅脱敏回显
能力降级 renderOutbound 按 ChannelCapability 自动降级
同一条 Agent 富交互回复,按渠道能力声明自动降级渲染——Agent 引擎不感知渠道差异
AgentReply(富交互源消息)
审批请求:运营小王发起退款 ¥1,280 · 订单 #20260729 待您批准
按目标渠道 capabilities 分流渲染
飞飞书 / 企微 / 钉钉 supportsCard=true
退款审批 · ¥1,280
同意拒绝
原生交互卡片 · 按钮回调直写 ApprovalRequest
微信群机器人 supportsCard=false
【审批】退款 ¥1,280 · 订单 #20260729
👉 处理:https://agent.example.com/a/8821
👉 处理:https://agent.example.com/a/8821
卡片降级为 文本 + 操作链接 · 该渠道仅支持文本/图片 · 仅出站
降级规则:supportsCard=false → 文本+链接 · supportsImage=false → 文件链接 · outbound_only → 入站不处理 · 超 maxTextLength → 自动分帧 · 防自环铁律:入站识别并丢弃本渠道自身发出的消息回灌(X-Loop / bot 指纹)
多账号 + 绑定路由 (tenantId, channel, accountId) → agentId · 账号级优先,渠道级兜底
| 渠道 | 账号 | 默认 | 绑定 Agent | 路由层级 | 今日消息 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| 飞飞书 | 客服号 A acc_kefu | 客服 Agent | 账号级绑定 | 486 | connected | ||
| 飞飞书 | 内部助手 B acc_internal | — | 内部助手 Agent | 账号级绑定 | 132 | connected | |
| 飞飞书 | (渠道级兜底) | — | 默认 Agent | 渠道级兜底 | 18 | 未匹配账号时生效 | |
| 企企微 | 设计客服号 acc_design | 客服 Agent | 账号级绑定 | — | connecting | ||
| webhook | 客户 ERP 系统 acc_erp | 订单助手 Agent | 账号级绑定 | 568 | connected |
会话归属:私聊按发件人、群聊按群 ID(@bot 触发)、邮件按 thread 聚合到 AgentSession · ChannelMessage 携带 accountId 维度
身份映射 IdentityBinding · 渠道身份 ↔ 平台 User ↔ RBAC 角色(外部 IM 不引入新角色)
| 渠道身份 | 平台用户 | 角色 | 绑定时间 | 状态 | 操作 |
|---|---|---|---|---|---|
| feishu · ou_8f2a…9c (acc_kefu) | 周正谊 USR-10001 | OWNER | 2026-05-18 | 已绑定 | |
| wecom · WangFang (acc_design) | 王芳 USR-10077 | MANAGER | 2026-06-02 | 已绑定 | |
| email · buyer@globaltrade.com | Prospect · Global Trade (线索名单) | 访客(名单即权限) | 2026-07-11 | 名单内 · 放行 | |
| feishu · ou_77de…21 (acc_kefu) | (未映射) | 访客 | — | 待绑定 · 已发绑定码 |
未映射兜底:消息触发绑定流(发绑定码 / 管理员手动关联),映射前按"访客"处理或暂存 · 一个平台 User 可绑多个渠道身份(老板既用飞书又用企微)· 名单外消息直接丢弃(等价未授权拒服务)