消息集成
从 Telegram、WhatsApp 或 Lark / Feishu 驱动 xiantong 会话
从 Telegram、WhatsApp 或 Lark / Feishu 驱动 xiantong 会话——在任意设备发送消息,并把 Agent 回复带回聊天中。
适合希望从手机与 xiantong 对话、离开桌面后继续一个会话,或从聊天工具触发 Agent 任务的用户。
消息集成可将外部聊天(Telegram 私聊、WhatsApp 联系人或 Lark/Feishu 聊天)绑定到一个 xiantong 会话。您在聊天里发送的消息会驱动 Agent;Agent 输出会渲染回同一个聊天。
支持的平台#
| 平台 | 连接方式 | 能力 |
|---|---|---|
| Telegram | BotFather 创建的 bot token | 长轮询或 webhook;支持内联按钮、照片、文档、语音和视频附件 |
| QR 码或配对码 | 基于 Baileys worker;支持文本、媒体附件和 self-chat 模式 | |
| Lark / Feishu | App ID + App Secret | 长连接模式、富文本回复、交互卡片、图片和文件附件 |
工作方式#
- 在设置中启用平台:打开 设置 → 消息,配置 Telegram、WhatsApp 或 Lark/Feishu。每个工作区都有自己的消息配置。
- 将聊天绑定到会话:在外部聊天中发送
/new创建新会话,发送/bind选择近期会话,或发送/pair <code>使用应用中生成的配对码。 - 通过聊天驱动 Agent:绑定后,您输入的内容会转发为 Agent 提示;Agent 回复按响应模式返回聊天。
命令#
任何聊天中,以 / 开头的消息都会被网关视为命令。
| 命令 | 作用 |
|---|---|
/new [name] | 创建新会话并绑定当前聊天,可选名称 |
/bind | 列出最多 10 个近期会话 |
/bind <id> | 通过会话 ID 或列表序号直接绑定 |
/pair <code> | 使用应用中生成的 6 位配对码 |
/unbind | 断开当前聊天与会话的绑定 |
/status | 显示绑定会话、审批通道与响应模式 |
/stop | 中止当前 Agent 运行 |
/help | 显示可用命令 |
绑定是工作区级别的。每个消息绑定都属于一个工作区;同一聊天可在不同工作区绑定不同会话,网关只接受当前工作区产生的命令和配对码。
响应模式#
响应模式控制 Agent 输出如何返回聊天。
| 模式 | 行为 | 适合场景 |
|---|---|---|
progress(默认) | 每次运行一个持续更新的消息。先显示“thinking…”气泡,工具运行时更新,完成后替换为最终答案 | 大多数用户,保持聊天整洁 |
streaming | 最终回合实时编辑,并把中间文本作为独立消息发送 | 需要接近应用内流式体验 |
final_only | 运行完成前保持安静,最后发送一条最终答案 | 安静聊天、批处理式工作流 |
响应模式按绑定配置。同一工作区中,不同聊天可以使用不同模式。
配对码#
当您已在应用中打开某个会话,并希望从手机继续时,可使用配对码:
- 在应用中打开会话菜单,选择 配对到消息…。
- 复制显示的 6 位代码。
- 在外部聊天中发送
/pair 123456(使用真实代码)。 - 网关验证后完成绑定。
安全规则:
- 配对码会在短时间后过期。
/pair按发送者限流,错误尝试也会消耗额度。- 配对码只在签发它的工作区内有效。
附件#
Telegram 支持照片、文档、语音、视频和音频。文件会下载到临时位置,并以与应用上传相同的 FileAttachment 形式转发到会话。单个附件上限为 20 MB。
WhatsApp 与 Lark/Feishu 的附件能力类似,但具体 MIME 处理和平台限制请参考各自页面。
审批通道#
当绑定会话处于 请求编辑 权限模式时,Agent 在运行敏感命令前会请求审批。每个绑定的 approvalChannel 决定提示出现在哪里:
| 值 | 行为 |
|---|---|
chat | 审批提示发送到聊天,可在聊天中批准或拒绝(Telegram 支持) |
app | 审批提示仅显示在桌面应用中(WhatsApp 默认且强制) |
会话自身的权限模式仍是权威设置;approvalChannel 只决定提示出现在哪里。
计划提交#
当 Agent 在 探索模式 下提交计划时:
- Telegram 绑定可收到内联按钮用于接受计划。
- WhatsApp 绑定会收到文字提示,提醒您打开桌面应用查看和批准。
- Lark/Feishu 可使用交互卡片展示需要操作的按钮。
安全与范围#
- 按工作区隔离:消息配置、绑定和配对码都属于各自工作区。
- 计划 token 撤销:计划审批 token 按绑定隔离,重新绑定会让旧 token 失效。
- 限流:
/pair按发送者限流,入站消息按绑定排队。 - 聊天范围限制:不同平台对群聊支持不同;Telegram 默认仅支持私聊驱动会话。
配置位置#
消息配置按工作区持久化:
~/.xiantong/workspaces/{workspaceId}/messaging/
├── config.json # 平台启用标志
├── bindings.json # 聊天 → 会话映射
└── whatsapp-session/ # Baileys 凭据(仅 WhatsApp)
编辑 bindings.json 后,会在下一条入站消息时生效。删除 whatsapp-session/ 会强制重新配对。
远程服务器#
消息网关也可在独立远程服务器中运行。Telegram 在服务器上使用 webhook 模式,WhatsApp 仍使用 Baileys worker 子进程。部署细节请参考 远程服务器。