架构总览
botmux 是一个薄编排层,把"飞书事件"翻译成"CLI 进程的输入/输出"。核心进程与模块:
进程模型
生产形态是一个 bot 一个 daemon 进程。多机器人 = 多 daemon,进程完全隔离,互不干扰。
模块结构
数据流
- 飞书推送
im.message.receive_v1→ event-dispatcher 解析、判断归属(@mention / 话题 / 群权限)。 - command-handler 拦截
/xxx斜杠命令;非命令消息交给会话。 - 新话题 → worker-pool spawn 一个 worker;已有会话 → 复用,把消息写进 CLI stdin。
- worker 持续读 PTY 输出,经 terminal-renderer 转成 Markdown,更新流式卡片。
- CLI 通过注入的
botmux send等 Skill / 命令主动往话题发消息。
关键点:worker 与 CLI 通过后端(PTY 或 tmux)解耦。tmux 后端下,daemon/worker 重启时 CLI 进程仍在 tmux 里活着,下次消息自动 re-attach,无需 --resume 重载上下文。详见 tmux 会话常驻。