通过飞书 / Slack / 企业微信使用 kaya#
v2.1.0 起,kaya 支持把 IM 消息接到本机:在飞书、Slack 或企业微信里给机器人发消息,由本机 kaya 的 LLM 处理并流式回复——不用打开 kaya 窗口,在 IM 里就能用。
开启路径#
- 打开 ⚙ 设置 → IM 渠道 标签页(也可从系统菜单 kaya → IM 渠道… 直达),选择平台——当前版本开放飞书与 Slack 接入,企业微信入口置灰「(即将支持)」(存量企微配置保留,后续版本再开放)
- 飞书:推荐点「飞书扫码接入」(仅飞书平台提供):用手机飞书扫描二维码并确认,kaya 自动创建应用并回填 App ID 与创建者 open_id 到 allowlist;App Secret 直接写入 系统钥匙串(macOS Keychain / Windows 凭据管理器),不落盘、不回读显示
- 手动配置(fallback):自行到飞书开放平台或企微管理后台创建应用后,填入飞书 App ID + App Secret,或企微 BotID + Secret
- Slack(仅手动配置,无扫码):到 api.slack.com/apps 创建 app → 开启 Socket Mode 并生成 App-Level Token(
xapp-开头,scopeconnections:write)→ OAuth scopes 添加chat:write→ Event Subscriptions 订阅message.channels/message.groups/message.im/message.mpim(订阅这些事件时 Slack 会自动补上对应的*:historyscope) → 安装到 workspace 拿到 Bot Token(xoxb-开头)→ 回到设置 → IM 渠道填入这两个 token(双 token 均直接写入系统钥匙串)+ member ID allowlist - 配置准入 Allowlist:每行一个用户 ID(飞书填 open_id「ou_」开头,Slack 填 Member ID「U」开头,可在对方个人资料页复制;企业微信填成员 userid);飞书扫码接入会自动锁定创建者本人
- 点击启动渠道,状态显示「● 运行中」即可在 IM 里发消息。如提示无权限,请到对应平台后台为应用开通所需权限(飞书 im:message 相关权限并发布版本;Slack 核对 scope 与事件订阅)
要点#
- 长连接直连平台:飞书走官方 WebSocket 长连接,企微走官方 openws 通道,Slack 走 Socket Mode WSS,不需要公网 IP 或回调服务器
- allowlist 默认拒绝陌生人:名单外的用户消息直接丢弃,不进 LLM;名单为空时渠道无法启动
- 同一套隐私防线:IM 消息与桌面 chat 走同一条五道关卡 pipeline(输入脱敏 → 命令白名单 → 安全检查 → 隔离执行 → 输出脱敏);IM turn 的工具表与桌面全集对齐(可读终端 / 任务清单),
terminal_write仍由 coding 模式总闸照管——总闸为桌面与渠道共享的原子标志,运行中在桌面扳动开关即时写入渠道侧,下一 IM turn 生效 - 桌面 → IM 镜像(opt-in,默认关):开启后桌面 chat 的消息流实时推送到你指定的 IM 聊天,你的输入以「你:…」前缀文本回显;IM 侧回复也同步出现在桌面聊天面板。新建桌面会话时镜像自动迁移并推一条「已开启新会话」通知。开关入口有两处——设置的「镜像桌面聊天到飞书」checkbox 与顶栏 coding 旁的镜像 icon,是同一个开关,点击即时生效
- 飞书 / Slack 授权卡片:IM turn 触发 terminal_write / agent 配置修改授权时,飞书 / Slack 里直接收到带「批准 / 拒绝」按钮的卡片(Slack 为 Block Kit 交互按钮),决议与桌面授权卡共享同一份授权状态(互认);操作者必须在准入 allowlist 内。批准后 kaya 会自动补一个回合,请 AI 重试刚才被暂停的操作——不用再手动发一句话把它唤醒
- agent 状态主动通知:镜像开启时,编程 agent 等输入 / 跑完空闲 / 上线 / 退出会主动推送到镜像聊天(按渠道语言出中文 / 英文,同类事件有冷却不刷屏)
- 会话与审计照常落
~/.kaya/;LLM 用顶栏模型切换器里选的模型(内置模型 / 我的模型) - 如实说明(企微限制):企业微信的镜像回显与主动通知依赖活跃回调,纯桌面场景(无 IM 对话在途)可能静默丢失;本轮仅飞书做了真机验证,Slack 尚未经真机 workspace 验证