1767 字
9 分钟
- 次浏览
群聊里的 AI 助手不该每句话都插嘴
读前导览

飞书群聊里 AI 助手太吵了。我用双机器人分流、话题隔离和只读索引,让它少插嘴。

正文
1767 字
阅读
9 分钟
结构
8 节
来源线索
GitLaughs/codex-feishu
codex-feishu:dual-bot-routing codex-feishu:thread-isolation codex-feishu:stream-preview

codex-feishu 是我整理出来的一个飞书 / Lark 群聊机器人项目。

公开仓库在这里:

https://github.com/GitLaughs/codex-feishu

我希望它在群里安静一点、可控一点,能长期放着用,而不是每句话都抢着接。

这件事听起来简单,但接入群聊后会遇到一个很现实的问题:如果机器人只在被 @ 时工作,它会错过文件、上下文和一些轻量指令;如果机器人监听每一句话,它又会浪费调用额度,甚至打断正常聊天。

所以这个项目选择了双机器人路由。

两个机器人,两种职责#

我的设计里有两个飞书应用:

  • mini bot:监听群消息,做轻量判断、静态命令、文件整理和只读查询。
  • deep bot:只处理明确 @ 的复杂任务,调用更强的推理能力。

我这样拆,不是为了省一点调用费,而是为了让两个入口别互相抢活。

mini bot 的默认动作应该是沉默。它看见消息后先判断这句话是否真的需要机器人回应;如果只是普通闲聊,就什么都不做。只有遇到明确命令、文件整理、轻量查询或维护类动作时,它才介入。

deep bot 则相反。它不需要监听所有消息,只需要处理被明确交给它的任务。这样复杂任务不会被群里无关上下文污染,也不会让一个重模型长期盯着所有聊天内容。

这比“一个万能机器人监听全部消息”更容易维护,也更像真实群聊里该出现的工具。

群聊助手最重要的是别乱插话#

群聊里的 AI 助手最烦人的时候,往往不是答错了,而是没人叫它也要说两句。

一个好用的群机器人至少要遵守几条规则:

  • 没被叫到时,大多数时候别插话。
  • 能用确定性命令完成的事,别强行走模型。
  • 长任务必须给出可见进度,否则用户不知道它是不是卡住了。
  • 回复链要隔离,别把两个任务混成一个上下文。
  • 公开仓库只放脚本和模板,不放真实密钥、群 ID、用户 ID 或本地配置。

这些规则不花哨,但少了它们,机器人很快就会被群里的人嫌烦。群聊不是单人命令行,里面有多人、多话题、多文件和很多不需要 AI 参与的普通消息。

话题隔离#

飞书的回复链天然适合映射成任务会话。

如果 A 在一个回复链里让机器人整理文档,B 在另一个回复链里让机器人检查脚本,这两个任务就不该共享上下文。否则 A 的资料可能影响 B 的回答,B 的追问也可能接到 A 的任务里。

所以我更倾向于把回复链当成一个单独 session:

reply chain -> isolated task session

这个设计会让系统少一点“全知全能”的错觉,但可靠性更高。用户在一个话题里继续追问时,机器人能接上;换到另一个话题时,它就从另一个任务上下文开始。

静态命令比模型回答更可靠#

这个项目里有一类命令不需要模型自由发挥,例如:

  • 查看文件索引。
  • 搜索本地记忆。
  • 查看任务清单。
  • 查看工作区状态。
  • 运行健康检查。

这些动作最适合做成确定性只读命令。用户发出命令后,脚本读取本地索引或状态文件,返回结构化结果。这样更快、更便宜,也更容易控制权限。

我不喜欢把所有事情都交给大模型解释。模型适合处理开放任务,但不适合替代每一个可预测的系统查询。能用脚本稳定得到答案的,就应该用脚本。

长任务要有流式预览#

群聊机器人还有一个常见问题:长任务没有反馈。

在命令行里等待几十秒还可以接受,因为用户知道进程在跑;但在群聊里,如果机器人长时间没动静,用户很难判断它是掉线、超时,还是正在处理。

所以 deep bot 需要做两层反馈:

  • 收到任务后尽快给出“已开始处理”的平台层反馈。
  • 任务运行时逐步更新可见预览,让用户看到进度。

这主要是为了降低不确定性。很多自动化系统最后能跑完,但中间太安静,用户就会怀疑它已经挂了。

文件和记忆只做工作区级索引#

群聊里经常会出现文件。直接把文件丢给模型当然省事,但长期看会带来两个问题:文件会散,历史也不可追溯。

更稳的做法是先保存、分类、生成索引,再在需要时摘要或查询。这样工作区里会逐渐形成几个可读入口:

  • 文件清单。
  • 知识索引。
  • 任务记录。
  • 健康检查结果。

这些入口不该混成全局记忆,也不该跨工作区乱用。机器人服务的是一个具体群或具体项目,记忆也应该跟着项目走。

为什么公开仓库只放模板#

这类项目很容易不小心泄露私有信息。飞书应用、群聊、用户、部署机器、日志和本地配置都可能包含敏感字段。

所以公开仓库必须收紧:

  • 放安装脚本、模板、文档和通用逻辑。
  • 不放真实应用密钥。
  • 不放真实群聊或用户标识。
  • 不放生成后的本地配置。
  • 不放私有对话和运行日志。

这个原则会让安装多一步,但值得。机器人项目一旦跑起来,会接触大量真实协作信息,公开仓库必须从一开始就按“可分享模板”来设计。

这个项目想解决什么#

我并不想把群聊改造成 IDE,更不想让 AI 接管每一次讨论。

更准确地说,我想要的是一个能放在群里的工程助手:

  • 普通聊天时它安静。
  • 被明确叫到时它能干活。
  • 有文件进来时它能整理。
  • 有长任务时它能显示进度。
  • 有历史资料时它能只读检索。
  • 有复杂问题时它能把任务隔离开处理。

这套思路也适合很多其他机器人系统。放到多人协作里,模型会不会答题只是第一层,入口怎么收、上下文怎么分、进度怎么露出来,都会影响大家愿不愿意继续用。

对我来说,codex-feishu 最值得记的地方就是这个取舍:平时少说废话,被明确叫到时再进入工作状态。

群聊里的 AI 助手不该每句话都插嘴
https://blog.sunmmyapi.xyz/posts/feishu-dual-bot-routing-design/
作者
Sun
发布于
2026-05-29
许可协议
CC BY-NC-SA 4.0

继续读

相关内容