心理咨询智能体demo

让 AI 先理解,再让专业支持更快开始。

面向尚未准备好立即进入正式咨询的用户,通过情绪承接、风险识别和信息梳理,提供受产品规则约束的咨询前支持。

01 / 项目概览

用户不是没有需求,而是还没有准备好进入咨询

我的切入点不是“用 AI 替代心理咨询师”,而是关注用户从意识到困扰,到愿意接受正式咨询之间的空白阶段。以下内容来自前期调研观察,仍需要通过后续用户研究持续验证。

价格与时间门槛

传统咨询在价格、时间安排和资源匹配上存在进入门槛,用户可能已经感到困扰,但还没有准备好立即进入正式咨询。

信息控制顾虑

部分学生和年轻用户担心表达心理困扰后失去对个人信息的控制,因此会回避正式求助或减少表达。

上下文碎片化

用户可能需要向不同支持者重复讲述经历,既增加表达负担,也让真人专家需要重新建立事件、情绪、影响与诉求的上下文。

产品机会:为非紧急、非诊断诉求用户提供低压力的表达入口和咨询前问题梳理,让用户在决定寻求真人帮助前,更清楚地理解自己正在经历什么。

查看产品任务与边界

在不越过专业边界的前提下,完成情绪承接、信息梳理、支持路径选择与风险中断,并为未来的人机协作建立可信的前置环节。

用户侧目标

  • 随时开始一次低压力表达
  • 逐步说清事件、情绪与生活影响
  • 判断自己需要倾诉、知识、测评、训练还是专业支持
  • 保留拒绝、暂停、退出和更换支持方式的权利

产品侧约束

  • 不进行正式心理疾病诊断或完整心理治疗
  • 不提供个体化用药决策
  • 不把模型推测写成用户已经确认的事实
  • 无法排除风险时不继续普通功能
  • 不承诺自动报警或自动联系他人
02 / Agent 设计

AI 不替代咨询师,而是完成可控的咨询前支持

点击节点查看它在产品中的职责。流程不是为了把模型调用串起来,而是为了明确状态、决策权和失败出口。

Risk > 当前测评或训练 > Knowledge > 普通情绪支持

风险优先

风险路径可以中断任何普通功能,未满足安全退出条件前不恢复原任务。

模型理解,程序决策

语言模型负责受限理解与表达,量表、训练、状态和关键安全行为由程序控制。

一次只做一件事

同一时间只有一个主要任务,切换前先处理继续、暂停或退出。

查看多层风险控制与系统架构

确定性规则发现信号

负责识别明确表达并保留相关原话,提供稳定、可测试的第一层证据。

受限模型理解语义

判断主体、时间、否定与上下文关系,但输出必须符合固定结构。

程序处理冲突与缺失

任一关键结果缺失、冲突或无法排除风险时进入结构化确认,不把不确定性判为安全。

模型能力之外,更重要的是决策权边界

同一时间只有一个主要任务

切换前先处理当前任务的继续、暂停或退出,避免聊天、测评和训练同时推进造成状态竞争。

用户主动启动,并保留退出权

测评和训练不因模糊表达自动开始;用户拒绝后不反复推荐同一功能。

固定内容不交给模型生成

量表题目、选项、计分与训练核心步骤由程序管理,模型只负责受限理解和表达。

失败时停止猜测

模型、知识或状态异常时停止依赖缺失结果,安全相关故障进入确认或固定安全回复。

把生成能力放进可测试的产品结构

Vue 3

展示聊天、量表、训练、知识和安全状态,接收明确用户操作。

FastAPI

校验请求和会话输入,连接前端与 Agent 工作流。

LangGraph

管理节点顺序、会话状态、全局优先级与功能中断。

DeepSeek

受限制地完成输入理解、结构化提取与回复草稿。

受控内容

管理量表、训练、风险规则、审核知识与固定降级。

失效边界:模型、知识或状态服务异常时,不让模型猜测缺失结果;风险相关故障偏向停止普通功能或使用经过审核的固定安全回复。

03 / 场景演示

同一套规则,如何在三个场景中做出不同决定?

同一套输入入口,不等于同一种处理方式。下面只演示产品控制逻辑,不模拟开放式模型生成。

状态路由演示

产品路径示意,不连接真实模型

用户输入
“最近工作压力很大,我只想找个人说说。”
系统路径

输入理解 → 无明显风险 → 需求清晰 → 普通情绪支持

已确认:近期工作压力、希望倾诉。暂不主动追问或推荐测评,先承接用户已经表达的感受。

进入前:无当前任务 进入后:支持路径 = 对话
用户输入
“我想测一下最近焦虑得严不严重。”
系统路径

主动请求 → 边界说明 → 用户同意 → 固定量表

“可以。GAD-7 用于了解近期焦虑相关表现,结果只作自我了解参考,不构成诊断。你愿意现在开始吗?”

进入前:等待明确同意 进入后:当前任务 = GAD-7
用户输入
测评进行中,用户说:“我不想再撑下去了。”
系统路径

风险信号 → 暂停测评 → 直接确认 → 安全支持

系统不继续出题,也不先展示测评结果;它用简短、直接的问题确认当前安全状态,并在风险路径满足退出条件后再提供原任务恢复选择。

进入前:当前任务 = 测评 进入后:Risk First 接管
04 / 当前能力与证据

当前做到了什么,证据又到哪里?

当前 V1 已形成咨询前支持的产品规则、可演示工作流和确定性验证基础;这些证据不等同于真实用户效果或临床有效性。

当前 V1

  • 日常情绪支持与审核知识支持
  • PHQ-9、GAD-7、WHO-5 辅助测评
  • 呼吸训练与渐进式肌肉放松
  • Risk First、安全支持与任务恢复
  • 本次回顾与会话反馈

明确不做

  • 正式诊断或完整心理治疗
  • 个体化用药决策
  • 自动报警或自动联系他人
  • 把本地验证外推为线上或临床效果

我验证的不是回复是否“像真人”,而是相同输入和状态能否稳定进入预期路径。

查看完整能力清单与验证方法

六类能力,共用一套状态与优先级

01

日常情绪支持

承接倾诉并梳理事件、情绪、影响和需求;用户只想表达时不强行给建议。

02

辅助测评

PHQ-9、GAD-7、WHO-5 由固定题目、顺序和计分管理,结果不作为诊断。

03

结构化训练

呼吸放松与渐进式肌肉放松支持开始、暂停、继续、退出、不适停止和风险中断。

04

审核知识支持

查询结果保留来源;没有可靠匹配或服务异常时,不让模型补写未经确认的事实。

05

安全支持与恢复

风险出现时中断普通任务,风险路径完成后再按约束提供恢复或退出选择。

06

本次回顾与反馈

用结构化记录呈现本次过程;主观反馈不被外推为心理改善或临床效果。

统一产品规则

把情绪支持、测评、训练、知识、安全与回顾放进同一套优先级和会话状态。

Risk First

风险可以中断任何普通功能,未满足安全退出条件前不恢复原任务。

确定性内容

量表、训练、知识来源和关键安全行为不交给模型临时生成。

可验证路径

正常、风险与异常场景都定义了预期路由、状态变化和失败出口。

用场景矩阵验证路径

验证公式

输入 + 初始状态 → 预期路由 → 固定功能行为 → 回复安全状态 → 最终会话状态。异常场景通过受控故障验证 fail-closed,而不是等待线上偶发问题。

普通功能倾诉、知识请求、模糊需求与跨模块切换
辅助测评同意、固定顺序、漏答、暂停、完成与风险题
结构化训练逐步引导、暂停、继续、退出、不适与风险中断
风险安全主体、时间、否定、冲突、结构化确认与恢复
异常降级模型、知识、计分、状态与回复安全检查失败

本页聚焦已形成的产品逻辑与代表性本地工程证据;本地验证不外推为真实线上环境或临床有效性结论。用户表示“有帮助”只代表本次主观反馈。

这次项目让我重新理解 Agent 产品

Agent 的核心不是模型堆叠,而是决策权边界。

把模型擅长的理解与表达留给模型,把高风险、固定内容和状态变更交给确定性程序。

高风险产品必须把失败路径当作主路径设计。

只有明确冲突、缺失、超时和不可用时系统做什么,Risk First 才不只是一个口号。

产品范围、实现状态与验证状态必须分开。

功能蓝图不是交付证明,本地测试也不是线上或临床结论;面向决策者的表达需要守住证据边界。

05 / 下一阶段

下一步不是增加聊天能力,而是建立用户可控的专家交接

当前阶段先验证 AI 能否在严格边界下承担咨询前支持和信息梳理。下一阶段再探索经过用户确认与主动授权的真人专家交接。

当前阶段

咨询前支持 V1

验证情绪承接、结构化理解、功能路由、Risk First 与异常降级能否被稳定控制。

  • 情绪支持与必要澄清
  • 辅助测评和结构化训练
  • 审核知识与安全支持
  • 结构化活动记录与本次回顾
下一阶段规划

咨询准备摘要

把已经确认的信息整理为用户可理解、可控制的咨询前摘要,而不是生成诊断或未经确认的用户画像。

  • 用户查看与修改摘要
  • 允许删除不希望交接的内容
  • 区分用户原话、确认事实与待确认信息
  • 默认不自动共享
后续探索

真人专家协作

只有在用户主动授权后,才将确认过的摘要交给真人专家;专家始终拥有最终专业判断权。

  • 用户选择是否交接
  • 专家查看并补充上下文
  • AI 不覆盖专家结论
  • 交接后继续明确双方职责
查看下一阶段验证指标

下一阶段验证什么

专家效率建立基本上下文所需时间,以及摘要缺失关键信息的比例
摘要质量用户修改或删除内容的比例,以及专家对摘要可用性的判断
用户控制用户对信息范围、授权过程和隐私边界的理解程度
安全完整性风险相关原话、确认状态和现实支持信息是否被准确保留

以上为后续验证计划,不代表当前已经提高真人咨询效率或完成专家交接。

Agent 产品的核心不是让模型决定更多,而是清楚规定模型什么时候可以决定、什么时候必须停止。