聊天集成
把 Multica 智能体接入飞书、Lark、Slack、钉钉、企业微信或 Telegram,在团队已有的聊天工具中使用。
聊天集成让团队不用打开 Multica,也能直接向智能体提问、在群聊中 @它,或从聊天窗口创建任务。
目前支持飞书/Lark、Slack、钉钉、企业微信和 Telegram。它们使用相同的会话、身份和执行机制,但安装方式不同。
选择平台
| 飞书 / Lark | Slack | 钉钉 | 企业微信 | Telegram | |
|---|---|---|---|---|---|
| 安装方式 | 在 Multica 中生成二维码,用飞书扫码授权 | 在 Slack 创建 app,再把两个 token 填入 Multica | 创建企业内部应用和 Stream 模式机器人,再把 AppKey 与 AppSecret 填入 Multica | 在企业微信管理后台创建智能机器人并开启长连接,再把 Bot ID 与 Secret 填入 Multica | 用 @BotFather 创建 Bot,再把 token 填入 Multica |
| 私聊智能体 | 支持 | 支持 | 支持 | 支持 | 支持 |
| 群聊或频道 | @ Bot 后触发 | @ Bot 后触发 | @ Bot 后触发 | @ Bot 后触发 | @ Bot 或回复 Bot 后触发 |
| 创建任务 | /issue 消息命令,按输入直接创建 | /issue slash 命令,智能体整理描述后创建 | /issue 消息命令,按输入直接创建 | /issue 消息命令,按输入直接创建 | /issue 消息命令,按输入直接创建 |
| 新建 Chat | /new [消息] | 私聊:/new [消息];频道/thread:@Multica /new [消息] | /new [消息] | /new [消息] | /new [消息] |
| 清空当前 Chat 上下文 | /clear [消息] | 私聊:/clear [消息];频道/thread:@Multica /clear [消息] | /clear [消息] | /clear [消息] | /clear [消息] |
| 连接方式 | 平台长连接 | Socket Mode | Stream 模式 | 平台长连接 | getUpdates 长轮询 |
新连接目前只开放中国大陆版飞书;已有的国际版 Lark 连接仍可继续使用和管理。
每个 Bot 绑定一个 Multica 智能体。需要在同一个聊天平台中使用多个智能体时,要分别连接多个 Bot。
钉钉、企业微信和 Telegram 由社区维护:随每个版本发布,但没有官方支持 SLA。遇到问题请提交 GitHub 任务。
企业微信目前只处理文字消息。语音、图片和文件消息会收到一句说明,不会转交给智能体。
Telegram 目前只处理文字消息。不支持的媒体消息会收到一句说明,不会转交给智能体。
详细步骤:
消息的执行流程
- Multica 根据 Bot 找到对应的工作区和智能体。
- 在群聊或频道中,只有明确 @ Bot 的消息会继续处理;私聊不需要 @。
- Multica 校验发送者的账号绑定和工作区成员身份。
- 消息进入一段智能体对话,并创建一次 task。
- 智能体的回复回到原来的私聊或讨论串。
没有 @ Bot 的频道消息不会触发智能体,也不会被加入它的对话上下文。
普通消息按上述流程处理。/issue 是命令,不是对话轮次:Multica 会在原平台返回处理结果,但不会把命令加入 Multica Chat。Slack 原生 slash 命令仍按独立的异步创建任务流程处理。
控制对话上下文
/new 会创建一个新的 Multica Chat,并把这条外部会话的后续消息路由到新 Chat。/new <消息> 会同时把消息作为第一轮。旧 Chat 仍保存在 Multica 中,可以继续使用。
/clear 不会新建 Chat,只会在当前 Multica Chat 中开启一段新的智能体可见上下文。完整 Chat 历史仍保存在 Multica 中,但智能体无法读取边界之前的消息。/clear <消息> 会把消息作为新上下文的第一轮;裸 /clear 会把边界应用到下一条真实消息。
在 Slack 私聊中,/new 和 /clear 都是原生 slash 命令。原生 slash command payload 无法标识频道里的目标 thread,因此需要在目标 thread 中发送 @Multica /new [消息] 或 @Multica /clear [消息]。
会话隔离
- 飞书/Lark 按聊天区分会话;同一个聊天中的后续消息会继续原会话。
- Slack 私聊按频道区分;频道中的每个 thread 分别保存一段会话。
- 钉钉按 conversation 区分会话;每个单聊或群聊分别延续自己的会话。
- 企业微信按聊天区分会话;每个单聊或群聊分别延续自己的会话。
- Telegram 按聊天区分会话;forum 的每个 topic 分别隔离。
在频道中继续追问时仍需再次 @ Bot。智能体只收到发给自己的消息,不会自动读取整个频道的历史。
账号绑定
成员第一次向 Bot 发消息时,会收到一个账号绑定链接。登录 Multica 后,平台账号与当前工作区成员关联。
绑定完成后,Multica 才会运行智能体。每条消息都会重新检查账号绑定和工作区成员身份;离开工作区后,不能继续通过 Bot 使用它。
账号绑定只用于确认发送者身份。聊天平台中的其他成员不会因此自动加入 Multica 工作区。
管理连接
工作区 owner 和 admin 可以连接或断开 Bot;飞书/Lark Bot 的连接和断开还对智能体所有者开放。普通成员可以查看已经连接的集成并使用自己有权调用的智能体。
断开后,Bot 不再接收新消息。已有的 Multica 对话和执行记录仍然保留。
自托管
自托管部署需要先为对应平台配置一个 32 字节加密密钥,Multica 才会开放连接入口:
MULTICA_LARK_SECRET_KEY=<base64 编码的 32 字节密钥>
MULTICA_SLACK_SECRET_KEY=<base64 编码的 32 字节密钥>
MULTICA_DINGTALK_SECRET_KEY=<base64 编码的 32 字节密钥>
MULTICA_WECOM_SECRET_KEY=<base64 编码的 32 字节密钥>
MULTICA_TELEGRAM_SECRET_KEY=<base64 编码的 32 字节密钥>这些密钥用于加密保存 Bot 凭据。生成、保存和轮换方法见环境变量。Multica Cloud 已完成这项配置。
企业微信的出站只有一条路径——某个进程持有的 WebSocket。回复产生在其他副本上时会发生什么,取决于实时中继(realtime relay)的模式:
- 分片或双写中继模式(配置了
REDIS_URL,有 Redis 时的默认):回复会转发给持有连接的副本并送达,支持多副本部署。 - legacy 中继模式,或没有 Redis:回复会被丢弃。这种配置下请把启用企业微信的后端保持单副本。
任何模式下都有一个残留窗口:回复产生时没有任何副本持有活连接(全部在重连中),这条回复不会送达。但它会被记录下来——转发它的副本事后会去确认有没有副本认领过这次投递,没有就给 multica_wecom_outbound_dropped_total{reason="no_live_connection"} 加一,所以这个窗口有多大是能实测出来的。如果这种丢失不可接受,单副本仍是最保守的部署方式。