Multica Docs

聊天集成

把 Multica 智能体接入飞书、Lark、Slack、钉钉、企业微信或 Telegram,在团队已有的聊天工具中使用。

聊天集成让团队不用打开 Multica,也能直接向智能体提问、在群聊中 @它,或从聊天窗口创建任务。

目前支持飞书/Lark、Slack、钉钉、企业微信和 Telegram。它们使用相同的会话、身份和执行机制,但安装方式不同。

选择平台

飞书 / LarkSlack钉钉企业微信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 ModeStream 模式平台长连接getUpdates 长轮询

新连接目前只开放中国大陆版飞书;已有的国际版 Lark 连接仍可继续使用和管理。

每个 Bot 绑定一个 Multica 智能体。需要在同一个聊天平台中使用多个智能体时,要分别连接多个 Bot。

钉钉、企业微信和 Telegram 由社区维护:随每个版本发布,但没有官方支持 SLA。遇到问题请提交 GitHub 任务

企业微信目前只处理文字消息。语音、图片和文件消息会收到一句说明,不会转交给智能体。

Telegram 目前只处理文字消息。不支持的媒体消息会收到一句说明,不会转交给智能体。

详细步骤:

消息的执行流程

  1. Multica 根据 Bot 找到对应的工作区和智能体。
  2. 在群聊或频道中,只有明确 @ Bot 的消息会继续处理;私聊不需要 @。
  3. Multica 校验发送者的账号绑定和工作区成员身份。
  4. 消息进入一段智能体对话,并创建一次 task。
  5. 智能体的回复回到原来的私聊或讨论串。

没有 @ 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"} 加一,所以这个窗口有多大是能实测出来的。如果这种丢失不可接受,单副本仍是最保守的部署方式。

接下来