02-information-architecture-and-agent-entry.md 7.4 KB

02|信息架构与智能服务入口

1. 本文档的核心结论

三个智能体不是通过一种入口唤起,而是通过三类入口进入同一个任务能力:

  1. 直接服务入口:患者明确知道要做什么;
  2. 统一助手入口:患者只会描述问题,不知道应该使用哪个服务;
  3. 状态与记录入口:患者继续未完成任务或查看既有结果。

同一能力无论从哪里进入,都以稳定的 capabilityCode 启动,不创建多套工作流。

2. P0 一级信息架构

首页|服务|健康记录|我的
一级页面 回答的问题 P0 主要内容
首页 我现在可以做什么? 三项服务、统一助手、待办、最近结果
服务 这家医院提供什么? 就医服务、检验检查、中医服务
健康记录 我做过什么、结果在哪里? 挂号、报告解读、舌诊任务
我的 当前服务对象和演示环境是什么? Mock 患者、医院信息、隐私与演示说明

一级导航固定,不因医院开通的能力变化而改变。P0 只有一家医院和三个能力,但仍采用该结构,为 P1 动态装配保留产品骨架。

3. 首页布局优先级

医院品牌 + 当前患者
        ↓
状态/待办(有则出现)
        ↓
统一助手入口
        ↓
三项核心服务
        ↓
最近记录
        ↓
底部导航

P0 首次进入时,三项服务必须同时可见或在首屏内可快速触达,不能把所有入口隐藏在统一助手背后。

4. 三类入口的统一启动协议

flowchart LR
    A["服务卡直达"] --> L["Launch Request"]
    B["统一助手路由"] --> C["识别意图 / 风险"]
    C --> D["患者确认目标服务"]
    D --> L
    E["待办 / 健康记录"] --> L

    L --> G["capabilityCode"]
    G --> T["创建或恢复 Task"]
    T --> P["进入独立任务页"]

建议启动参数:

{
  "hospitalId": "DEMO_HOSPITAL_001",
  "operatorId": "DEMO_USER_001",
  "subjectPatientId": "DEMO_PATIENT_001",
  "relationType": "SELF",
  "capabilityCode": "SMART_REGISTRATION",
  "entrySource": "HOME_SERVICE_CARD",
  "taskId": null,
  "input": {
    "type": "QUICK_ACTION",
    "content": "SYMPTOM_TRIAGE"
  },
  "context": {
    "mock": true,
    "reportId": null,
    "currentPage": "HOME"
  }
}

5. 入口一:直接服务卡

适合患者目标明确时使用。

首页卡片文案

能力 主标题 说明 主按钮
挂号 智能分诊挂号 描述症状,推荐科室并完成预约 开始分诊
报告 报告智能解读 上传检验检查报告,查看异常与建议 上传报告
舌诊 中医舌诊 完成体质问答并拍摄舌象 开始评估

点击后的行为

直接进入具体任务页,不需要先经过通用聊天欢迎语。

点击“开始分诊”
→ 打开“智能分诊挂号”
→ 展示两种开始方式:
  1. 描述症状,帮我找科室
  2. 我知道科室,直接找号
→ 创建挂号任务
点击“上传报告”
→ 打开“报告智能解读”
→ 展示上传/选择示例报告
→ 创建报告解读任务
点击“开始评估”
→ 打开“中医舌诊”
→ 展示服务边界和预计步骤
→ 点击同意后开始体质问答

6. 入口二:统一助手

统一助手适合患者目标不明确、只会自然描述时使用。

首页入口形态

描述您的症状,或告诉我想办理什么
[输入文字] [按住说话] [上传报告/图片]

统一助手只做四件事

  1. 理解用户需求;
  2. 识别多意图和医疗风险;
  3. 确认要启动的目标服务;
  4. 将已有输入作为上下文交给具体任务。

路由示例

患者输入 系统动作
“我头疼三天,不知道挂什么科” 确认进入智能分诊挂号,并携带主诉
“我胸痛还喘不过气,想挂明天心内科” 先触发急症风险筛查,不直接挂号
“帮我看一下这份血常规” + 图片 确认报告归属后进入报告解读
“我想看看自己的中医体质” 确认进入中医舌诊
“我要看皮肤科医生,同时帮我看报告” 展示两个任务选择,先完成一个,不在同一线程并行
当前医院未开通能力 P0 不出现;P1 提示该服务暂不可用并提供替代入口

从助手切换到任务

助手:
“我理解您希望根据头痛症状选择科室并预约。
在继续前,我需要先确认是否存在需要尽快就医的情况。”

[开始智能分诊] [重新描述]

患者确认后:

  • 页面标题切换为“智能分诊挂号”;
  • 创建独立 taskId
  • 将“头痛三天”作为已收集信息;
  • 通用助手会话结束,不继续承载后续挂号步骤。

7. 入口三:状态、待办和健康记录

适合继续任务或回看结果。

首页待办

待完成
中医舌诊:问答已完成,待上传舌象
[继续评估]
新结果
血常规解读已完成,发现 3 项异常
[查看结果]

健康记录

全部|挂号|报告|中医

每条记录包含:

  • 服务名称;
  • 时间;
  • 任务状态;
  • 结果摘要;
  • 继续或查看按钮。

记录点击规则:

状态 点击后
WAITING_USER 恢复到上次等待的交互步骤
PROCESSING 打开进度页
COMPLETED 打开结果详情
FAILED 打开失败说明和重试入口
CANCELLED 只读详情,可重新发起

8. 三项服务的入口矩阵

入口位置 挂号 报告解读 中医舌诊
首页服务卡 必须 必须 必须
服务中心 必须 必须 必须
统一助手文字 必须 必须 必须
统一助手语音 P0 模拟 P0 模拟 P0 模拟
统一助手上传 不需要 必须 可识别为舌象并确认
首页待办 挂号结果/失败 新报告/解读结果 未完成问答/待上传
健康记录 必须 必须 必须
业务详情内嵌 P1 扩展 P0 可在示例报告详情进入 P0 可从历史评估重新开始

9. 页面与任务的关系

flowchart TD
    HOME["首页"] --> ASSIST["统一助手"]
    HOME --> SERVICES["服务中心"]
    HOME --> RECORDS["健康记录"]

    ASSIST --> CONFIRM["服务确认"]
    CONFIRM --> REG["智能分诊挂号任务"]
    CONFIRM --> REPORT["报告解读任务"]
    CONFIRM --> TONGUE["中医舌诊任务"]

    SERVICES --> REG
    SERVICES --> REPORT
    SERVICES --> TONGUE

    RECORDS --> REG
    RECORDS --> REPORT
    RECORDS --> TONGUE

    REG --> REG_RESULT["挂号结果"]
    REPORT --> REPORT_RESULT["报告解读结果"]
    TONGUE --> TONGUE_RESULT["舌诊综合结果"]

    REG_RESULT --> RECORDS
    REPORT_RESULT --> RECORDS
    TONGUE_RESULT --> RECORDS

10. 需要坚持的边界

  • 前端不直接绑定 FastGPT App ID,只识别 capabilityCode
  • 同一能力多个入口共享同一任务协议;
  • 统一助手不创建长期混合会话;
  • 三项任务必须有独立标题、步骤和结果;
  • 任务结果进入健康记录,不以会话列表作为主导航;
  • 首页区块固定,动态的是内容和优先级;
  • P0 无登录,但数据结构仍区分操作人和服务对象;
  • 风险判断可以中断任何普通业务入口。