LAMOLABS · DOGFOODING · AI-NATIVE WORK IM

Nexo IM — MVP 需求文档
交互演示版

本期唯一目标:把 IM 地基跑通 —— 团队 5 人能用它完成日常单聊(收发消息、换人聊天)。一切 AI 能力从 MVP2 开始,不属于本期。

状态:草案(待评审) 日期:2026-08-10 范围:仅 MVP1 · 单聊跑通 服务端:Hono + PostgreSQL + WebSocket
01

背景与目标

远期愿景:聊天中产生点子 → 唤起 AI 澄清成结构化需求 → 建临时群协作 → Agent 服务实现 → 验收后自动解散群组,形成工作流闭环。点击下方节点查看各阶段说明(MVP1 只做第一步的地基)。

02

用户与使用场景

不开放注册,预置 5 个团队账号;PC 客户端常驻使用,服务端工程骨架已就绪。

👥

用户

lamolabs 团队成员,共 5 人,预置账号,不开放注册

💬

场景

工作日常沟通;PC 客户端(nexo-im-pc)常驻使用

🖥️

服务端

nexo-im-api(Hono + PostgreSQL + WebSocket,工程骨架已就绪)

03

功能需求

P0 缺一不可,P1 资源不足可顺延。点击「在原型中体验」跳转到模拟器并自动演示对应能力。

FR-1P0

账号与登录

  • 预置 5 个团队账号(用户名 + 密码),登录成功获得会话凭证
  • 登录失败给出明确提示;不做开放注册、找回密码
  • 同一账号可多台设备同时在线,新登录不挤掉已在线的设备
FR-2P0

登录设备管理

  • 「登录设备」列出本账号全部已登录设备(名称 / 类型 / 登录与活跃时间),当前设备标注「本机」
  • 可对任一设备「退出登录」,被退出端 5s 内断开回到登录页并给出提示
  • 新消息实时下发到该账号所有在线设备,历史消息各端一致
FR-3P0

会话列表与换人聊天

  • 展示团队成员列表,点击任一成员即可发起/进入单聊
  • 已有会话按最近一条消息时间倒序排列
  • 点击切换会话,聊天窗口正确切换上下文
FR-4P0

文本消息收发

  • 会话内发送文本消息,对方在线时 WebSocket 实时收到
  • 对方离线时消息落库,重新上线后完整拉到
  • 发送有成功/失败反馈,失败可重发
FR-5P0

历史消息

  • 进入会话拉取最近一页消息,向上滚动分页加载更早消息
  • 同一会话内消息顺序稳定(刷新、重连后顺序不变)
FR-6P1

未读数

  • 会话列表展示各会话未读条数,进入会话后清零(各端独立计算,不做多端同步)
FR-7P1

在线状态

  • 成员列表/会话中显示对方在线、离线状态(对方任一设备在线即视为在线)
04

交互原型模拟器

纯前端模拟的 IM 客户端,覆盖本 MVP 全部 P0/P1 行为。配合右侧控制台操作(多设备登录与远程退出、断线重连、网络故障、对方上下线/来消息),可逐条触发并自动勾选底部验收标准。左上角头像右侧的 🖥️ 是「登录设备」入口。

ⓘ 以下为高保真原型,所有数据均在浏览器内存中模拟,非真实服务

Nexo IM — nexo-im-pc
05

明确不做(Out of Scope)

以下能力本期一律不做,避免范围蔓延;AI 能力自 MVP2 起分期引入。

✕群聊(后续与「临时群组」一并设计)
✕图片、文件、语音、视频消息
✕消息撤回、编辑、引用回复、表情回应、@提及
✕消息搜索
✕移动端 App、离线推送(多端在线本期只覆盖 PC 客户端)
✕多端已读状态同步、扫码登录与新设备登录确认
✕全部 AI 能力(需求澄清、建群、agent 实现等)
✕端到端加密(团队内部自用,暂不需要)
06

非功能需求

规模按 5 人设计,不设高并发指标;重点是可靠与可恢复。

PostgreSQL

消息持久化

服务重启不丢失已确认送达的消息

≤ 1s

端到端延迟

正常网络下消息端到端延迟不超过 1 秒

5 人 · 单实例

部署规模

按 5 人团队设计,服务端单实例部署即可

自动重连

断线恢复

客户端断线后自动重连,重连后自动补齐断线期间的消息

07

验收标准(端到端场景)

在上方原型中完成对应操作会自动勾选(标有「已在原型中验证」),也可手动点击勾选。

✓
A 用预置账号登录成功;错误密码被明确拒绝
已在原型中验证
✓
A 在成员列表点击 B 发起会话,发送消息,B 端 1s 内实时收到
已在原型中验证
✓
B 回复后 A 实时收到,双方看到的消息顺序完全一致
已在原型中验证
✓
A 切到 C 聊天再切回 B,两个会话上下文互不串扰(换人聊天)
已在原型中验证
✓
B 离线期间 A 持续发消息,B 重新登录后完整收到(原型中以本端断线重连补齐演示)
已在原型中验证
✓
客户端刷新/重启后历史消息完整、顺序不变,向上翻页可加载更早消息
已在原型中验证
✓
同账号在第二台设备登录后两端都能正常收发,新消息两端都收得到(不再互相挤下线)
已在原型中验证
✓
「登录设备」列出全部已登录设备(本机有标记);退出其中一台后该端 5s 内回到登录页并给出提示,其余设备不受影响
已在原型中验证
✓
(P1)未读数正确累计与清零;(P1)在线状态正确变化
已在原型中验证
0 / 9
08

约束与说明

本文档只定义「做什么」;消息协议、表结构、seq 设计等属技术方案,另行评审。
需求文档中「用户」一律指 lamolabs 团队 5 名成员。
MVP 验收人:团队全员试用一周,日常沟通可完全替代现用工具即视为达成目标。