
心序
项目概览
心序是一个面向情绪陪伴场景的 AI 产品设计:用户不需要学会写日记,只要愿意开口说一句话,就会有人接住。
从产品结构、交互与视觉设计到可运行原型,这条链路由我独立负责。原型已接入真实模型,回复逐字生成,并带有明确的角色边界与应对风险表达的分级规则——它是能上手对话的,不是可以点击的示意图。
项目背景
情绪陪伴类产品真正的难点不在功能,而在「开始」这一步。人处在低落状态时,注意力和语言组织能力同时下降——让他先选情绪分类、再写今天发生了什么、再想一个标题,这本身就是一次劝退。它不是体验细节没打磨好,是入口选错了。
所以心序没有把「记录」作为核心,而是把对话放在入口:先说一句,再看要不要往下走。这个判断决定了信息如何组织,也决定了后续 AI 体验的设计重点——回应的节奏,比回应的数量重要。
项目挑战与取舍
这三件事各自卡住过一次。比起最后的方案,更有信息量的是它们分别否掉了什么。
表达门槛
情绪低落时,用户说不出「发生了什么」,也未必愿意打开一套结构化的记录工具。
以情绪记录作为核心入口:选标签、写下今天发生的事、积累成可回看的趋势。
问题不在交互,而在前提——它要求用户先具备组织语言的能力,而这恰恰是低落状态下最先失效的东西。
把提问做在用户开口之前:首页直接给四个可以点击的话题,把表达从「组织一段话」降级为「挑一个」。
承接能力
同一句「你好吗」,对刚下班的疲惫和深夜的失眠需要完全不同的回应,固定文案覆盖不了。
先用预设对话规则做原型:命中「工作 / 压力 / 睡不着」这类关键词,就返回对应文案。
规则能跑通流程,但节奏是死的。它永远在回应关键词,而不是回应人——同一句话在疲惫和委屈面前,本不该得到同一个回答。
接入真实模型,并把语气、篇幅、提问方式写成人格设定:先回应情绪、一次最多问一个问题、不说「你应该」。
边界与安全
情绪陪伴必然触及敏感内容,而这里要同时做到两件相反的事:不越界诊断,也不回避风险。
只在文案里承诺三条不做:不诊断、不替代咨询、高风险需转介。
「不做什么」是免责,不是设计。风险场景里用户需要的是一个明确动作;而且这三条之间没有优先级,冲突时不知道听谁的。
改成按严重程度排序的分级规则,并为最高一级声明最高优先级——它会覆盖其他所有人格设定。
我的职责
这是一个真实项目,我独立负责其中的设计部分:从问题定义、产品结构,到交互与视觉设计。页面最后那个能亲自对话的原型,是我为了验证方案自己做的——这一页里的取舍,也都由我承担。
产品梳理 · 交互设计 · 视觉设计 · 前端原型实现 · AI 体验与提示词设计
产品结构与核心流程
围绕一件事组织产品:让用户不必先组织好语言,也能开始。入口负责降低压力,对话负责承接,异常与风险一并纳入结构,而不是当作例外处理。
- 01
进入陪伴首页
情绪化问候 + 推荐问题,把开场压力降到最低
- 02
开始表达
点击推荐问题,或自由输入此刻想说的话
- 03
对话承接
先回应感受,再通过追问帮助用户继续说
- 04
下一步引导
视场景给出小范围、可执行的梳理或建议
- 05
异常处理
高风险表达转向专业求助引导
核心界面
以下界面全部截自本节末尾那个可在线体验的原型,是它此刻真实运行的样子,不是设计稿的渲染图。






回复文字由模型实时生成,所以每次打开看到的内容都不会一样——这里的每一句都不是写死的。
AI EXPERIENCE DESIGN
把 AI 的回应,设计成一段可预期的陪伴
为什么必须是模型,而不是更聪明的规则
规则能命中关键词,但不能回应人。同一个状态在不同日子里需要不同的接法,靠关键词分支去覆盖,穷举到最后只会得到一堆正确的废话。
AI 在这里的价值不是说得更多,而是接得更准。
对话体验如何发生
对话不是一句文案,而是一条克制的路径——从承接,到追问,再到适度的下一步。
- 01用户表达
- 02情绪承接
- 03适度追问
- 04帮助梳理
- 05提供下一步选择
界面中的对应关系
- 推荐问题 — 点击即可开始,降低「不知从何说起」的压力。
- 情绪承接 — 先回应「正在经历的感受」,再往下引导。
- 开放式追问 — 克制、开放地邀请用户继续说,而非替用户下结论。
- 下一步行动 — 需要时给出小范围、可执行的建议。
以下为对话页局部示意,标注与左侧流程一一对应;真实运行效果见「核心界面」与「在线交互原型」。
AI 的边界:三条按严重程度排序的规则
边界不是免责声明,而是一组可执行的规则。它们按严重程度排序,越靠下优先级越高。
- 01日常情绪
只倾听,不给建议。不诊断、不评判,也不把用户的感受翻译成结论。
- 02长期停留
当话题反复回到同一处,轻轻提一次线下求助的可能,不以「你应该」的方式。
- 03风险信号
一旦出现自伤或轻生的表达,最高优先级生效:停止分析、承认自己无法提供紧急援助,并给出现实路径——联系信任的人、心理援助热线或 120。
第 03 条被声明为最高优先级:触发时其他人格设定都要让位——把话说清楚,比保持一贯的语气重要。
这条体验是怎么落地的
密钥不进前端
原型是纯静态页面,直接调用模型就会把 API Key 暴露给每个访客。所以中间加了一层服务端代理,密钥只存在于服务端环境变量,前端只知道一个同域接口。
流式输出
接口以 SSE 逐字回传,界面边收边渲染。等待被看见,回复才有「对方正在想」的感觉,而不是一整段忽然砸下来。
多轮上下文
每次请求携带最近若干轮对话,模型能接住上一句话;上下文有上限并做长度截断,避免无限增长。
失败要看得见
网络中断或密钥未配置时,界面明确降级为本地回应并给出提示,不白屏、不假装成功。
不确定与风险状态,同样经过设计
AI 体验不只是「输入—回复」的理想路径。等待、失败、不确定与高风险同样需要被认真对待——这里保留最能说明设计完整度的四个状态。
正在生成让用户知道系统正在处理,避免误以为卡顿。
回复失败与重新生成失败时明确反馈并提供重试,不让用户陷入困惑。
内容不确定不确定时不硬答,坦诚继续倾听比给出错误判断更重要。
高风险求助引导识别高风险表达,温和而明确地引导用户转向专业帮助。
等待回复、停止生成、网络异常、对话历史与隐私说明等其余状态也已纳入设计考虑,不再单独展开。
INTERACTIVE PROTOTYPE
OPEN FULL EXPERIENCE ↗从静态界面,到可以亲自对话的产品原型
这是一个用于验证对话入口、回应节奏与情绪体验的网页原型。你可以选择推荐话题,也可以输入自己的内容,完整体验一段对话——回复由真实模型生成。
当前可以体验
推荐问题点击 · 自由文本输入 · 消息发送 · 多轮对话 · 逐字流式回复 · 最近记录 · 手机外壳展示 · 响应式适配
这里的回复由真实模型实时生成,经服务端代理调用,密钥不暴露在前端;网络中断或服务端未配置密钥时,会自动降级为本地回应。
项目状态
产品结构、核心流程、交互与视觉设计,以及可在网页中真实操作的原型。
对话由模型实时生成,支持逐字流式输出与多轮上下文,并带有按严重程度排序的安全兜底规则。
补齐更细的异常状态(停止生成、对话历史管理),补上真实用户可用性测试,并把高风险识别从「提示词层」推进到更可靠的独立判断。
项目复盘
项目仍在推进中,还没有上线后的用户数据。下面是我在做这件事的过程里形成的判断,以及我自己是怎么验证的——它们是需要被后续真实使用检验的假设,不是结论。
三条设计判断
- 01把表达降级为「挑一个」,比教用户「该怎么表达」更有效。
- 02克制的回应更适合这个场景:先接住,再往前一步。
- 03安全必须是可执行的分级动作,而不是一句「不做诊断」的声明。
我自己验证了什么
在真实浏览器里跑通完整对话链路:逐字流式是否成立、多轮上下文是否接得住、断网与服务端未配置密钥时是否稳定降级而不是白屏。
对模型回应做边界测试,包括自伤相关表达,确认最高优先级的兜底会被触发,且不被其他设定覆盖。
这些都是我自己的技术自查,不是用户测试。缺少真实用户是这个项目最明确的一处缺口,也是下一步要做的事。
下一项目