团队协作

团队渠道:飞书、钉钉与 Discord

将 Claude 机器人部署到飞书 (Lark)、钉钉和 Discord,并按照各平台的分步指南完成应用创建、权限配置与流式卡片设置。

渠道机器人如何工作

渠道机器人把 Claude 带到团队正在使用的消息平台。每个机器人通过 WebSocket 或 Stream API 连接平台(无需部署公网 Webhook 服务器),接收消息、交给 Claude 处理,再把回复发回原渠道;回复也支持实时更新的流式卡片。

各平台的设置流程大致相同:在平台开发者控制台创建应用 → 配置权限 → 将凭据粘贴到 Onevium → 启动机器人。

飞书 (Lark) 设置

飞书机器人使用 Lark SDK 通过 WebSocket 连接,无需公网服务器或 Webhook URL。

  • 第 1 步:前往飞书开放平台 (open.feishu.cn),创建一个新应用。
  • 第 2 步:在应用设置中,进入应用能力 > 机器人,启用机器人能力。
  • 第 3 步:在权限管理中添加以下权限:im:message(发送消息)、im:message:patch(编辑消息以实现流式输出)、contact:user.base:readonly(解析用户名)、im:chat:readonly(解析会话名称)。
  • 第 4 步:如需流式卡片,再添加 cardkit:card(创建和更新交互式卡片)。没有这项权限时,机器人会回退为纯文本消息。
  • 第 5 步:在事件订阅中启用 WebSocket 模式(不要选择 HTTP 回调),这样无需暴露公网端点也能接收消息。
  • 第 6 步:订阅 im.message.receive_v1 事件以接收新消息。
  • 第 7 步:如需处理交互式卡片的按钮回调,再订阅 card.action.trigger 事件。
  • 第 8 步:从凭证页面复制 App ID 和 App Secret。
  • 第 9 步:在 Onevium 中进入渠道 > 创建机器人 > 飞书,粘贴 App ID 和 App Secret。
  • 第 10 步:点击启动,Onevium 会与飞书建立 WebSocket 连接并开始监听消息。
  • 第 11 步:将机器人加入飞书群组,或向它发送私聊消息以验证连接。

飞书消息格式

飞书机器人支持两种消息发送模式,并会根据现有权限自动选择:

  • CardKit 流式卡片(推荐):创建交互式卡片,并在 Claude 生成内容时实时更新。需要 cardkit:card 权限。卡片使用 v2.0 Schema 与 Markdown 渲染。
  • IM 消息回退:如果没有 CardKit 权限,机器人会发送标准交互式消息,并在流式生成过程中持续更新。流畅度略低,但功能完整。
  • 超过 8,000 个字符的消息会自动拆分为多条消息。

钉钉设置

钉钉机器人使用 Stream 协议进行实时双向通信。和飞书一样,不需要公网服务器。

  • 第 1 步:前往钉钉开放平台 (open.dingtalk.com),创建企业内部应用(H5 微应用)。
  • 第 2 步:在应用能力中启用机器人能力。
  • 第 3 步:在机器人设置中启用 Stream 模式(不要选择 HTTP 回调)。这是必需设置,Onevium 通过钉钉 Stream SDK 建立连接。
  • 第 4 步:从应用凭证页面复制 Client ID (AppKey) 和 Client Secret (AppSecret)。
  • 第 5 步:在 Onevium 中进入渠道 > 创建机器人 > 钉钉,粘贴 App Key 和 App Secret。
  • 第 6 步:点击启动,Onevium 会注册 Stream 监听器并开始接收消息。
  • 第 7 步:将机器人加入钉钉群组。在群聊中,只有被 @ 时机器人才会回复;在私聊中,它会回复所有消息。

钉钉流式卡片

钉钉支持用于实时展示输出的 AI 流式卡片。Onevium 使用官方 AI 卡片模板进行 Markdown 流式输出。

  • 流式流程:机器人创建卡片实例 → 持续推送内容更新(INPUTING 状态)→ 完成卡片(FINISHED 或 FAILED 状态)。
  • 如果卡片创建失败(例如模板未启用),机器人会回退到标准 Markdown 消息。
  • 单条消息最多支持 20,000 个字符,超出部分会自动拆分。

Discord 设置

Discord 机器人通过 discord.js WebSocket 网关连接。

  • 第 1 步:前往 Discord Developer Portal (discord.com/developers/applications),创建一个新应用。
  • 第 2 步:进入 Bot 页面,点击 Add Bot。
  • 第 3 步:在 Privileged Gateway Intents 下启用 Message Content Intent(读取消息文本所必需)。
  • 第 4 步:从 Bot 页面复制 Bot Token,并妥善保密。
  • 第 5 步:在 OAuth2 > URL Generator 中生成邀请 URL。选择 bot Scope,并添加以下权限:Send Messages、Read Message History、Attach Files、Embed Links。
  • 第 6 步:使用邀请 URL 将机器人添加到你的 Discord 服务器。
  • 第 7 步:在 Onevium 中进入渠道 > 创建机器人 > Discord,粘贴 Bot Token。
  • 第 8 步:点击启动,Onevium 会通过 Discord 网关连接并开始监听消息。
  • 第 9 步:在服务器频道中 @机器人即可开始对话;在私聊中直接发送消息即可。

Discord 消息处理

Discord 机器人通过编辑消息来实现流式预览。Claude 生成内容时,机器人会先发送一条预览消息,此后每 1.5 秒更新一次;生成结束后,预览消息会替换成最终输出。

Discord 的单条消息上限为 2,000 个字符。较长回复会自动拆分成多条消息,文件附件则以 multipart 上传方式发送。

会话模式

每个渠道机器人支持两种对话会话模式:

  • 按用户隔离会话(默认):每位用户拥有独立对话,用户 A 无法看到用户 B 的历史记录。适合面向开发者的机器人。
  • 共享会话:同一渠道中的所有用户共享一个对话,不同成员的消息会进入同一上下文。适合事故响应、运维监控等团队渠道。

机器人配置选项

每个机器人都提供细粒度的行为、访问权限和能力范围控制:

  • 模式 — Code(完整工具访问)、Plan(执行前先提出变更)或 Ask(只读,不调用工具)。
  • 自动批准 — None(每项操作前询问)、Read(自动批准文件读取)或 All(自动批准所有操作)。
  • 聊天范围 — Both(群聊 + 私聊)、仅群聊或仅私聊。
  • 私聊策略 — Open(任何人都能私聊)或 Allowlist(仅允许指定用户 ID)。
  • 模型覆盖 — 为当前机器人指定模型(Opus、Sonnet、Haiku),不受全局默认值影响。
  • 系统提示词 — 定义机器人的角色与行为边界。
  • MCP 服务器 — 在默认工具之外附加其他 MCP 工具。
  • 离线消息 — 机器人停用时返回的自定义回复。

机器人集群

在多机器人场景中,可以把相关机器人编成集群。一个集群共享同一平台和工作目录。例如,发布集群中的 @qa-bot、@docs-bot 和 @deploy-bot 可以共同处理同一个代码库。

在聊天设置中启用跨机器人查询后,机器人可以引用彼此的对话历史:@qa-bot 发现问题后,@dev-bot 无需人工复制就能接手相同上下文。