# 未完成页面 ASCII 原型与交互方案 > 依据:`docs/page-completion-audit.md` > 输出形式:Markdown + ASCII 低保真线框 > 设计目标:延续当前程序的桌面窗口、顶部标题栏、绿色主操作、卡片列表、独立二级窗口和底部 Tab 结构,不重新设计已完成的屏幕区域标注页。 --- ## 1. 原型范围 本方案覆盖尚未形成业务闭环的页面与缺失状态: | 分组 | 页面 | |---|---| | 主窗口补全 | 微信分身、知识库列表、Skill 市场、员工蒸馏 | | 知识库 | 新增知识、知识详情 | | Skill | 新增/编辑 Skill、Skill 详情 | | 员工蒸馏 | 开始蒸馏、员工详情 | | 系统配置 | 设置中心的 7 个分区 | | 引擎工具 | 完整运行日志 | 不重复设计已完成的 `/annotate` 标注画布。 --- ## 2. 统一页面结构 ### 2.1 主窗口壳 一级窗口按 Tauri 当前配置的 **500 × 900** 纵向比例绘制;以下线框强调窄宽、纵向滚动和单列卡片。二级窗口仍按现有宽屏尺寸绘制,不做调整。 ```text ┌────────────────────────────────────────────┐ │ 页面标题 [◐][⚙][↻][退出] │ ├────────────────────────────────────────────┤ │ │ │ │ │ 当前页面内容区 │ │ 单列卡片 / 纵向滚动 │ │ │ │ │ │ │ │ │ ├────────────────────────────────────────────┤ │ [微信分身] [知识库] [Skill] [员工蒸馏] │ └────────────────────────────────────────────┘ ``` ### 2.2 二级窗口壳 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 二级页面标题 [主题] [关闭] │ ├──────────────────────────────────────────────────────────────────────┤ │ │ │ 二级页面内容区 │ │ │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 2.3 通用交互约定 - `[主按钮]`:绿色,执行当前页面唯一主动作。 - `[次按钮]`:浅色或描边,不抢占主动作。 - `[危险]`:红色,操作前二次确认。 - `●`:正常或已启用;`○`:未启用;`!`:异常;`…`:处理中。 - 所有异步按钮点击后进入 `处理中` 并禁用,完成后显示成功或可恢复错误。 - 有未保存修改时关闭窗口,弹出“保存草稿 / 放弃修改 / 继续编辑”。 - 详情窗口必须携带实体 `id`,不能只传固定路由。 - 页面首次打开统一包含:骨架加载、加载失败、空数据三个状态。 --- ## 3. 微信分身主页面补全 **路由:** `/`,主 Tab“微信分身” **目的:** 完成引擎启停、启动前浮层检查、标注和日志入口;首页不常驻展示运行环境或检查项目。 ### 3.1 默认停止状态 ```text ┌────────────────────────────────────────────┐ │ 微信分身 [◐][⚙][↻][退出] │ ├────────────────────────────────────────────┤ │ │ │ │ │ ╭──────────╮ │ │ │ 引擎球体 │ │ │ │ STOP │ │ │ ╰──────────╯ │ │ 微信引擎未运行 │ │ 启动后等待并处理本地微信消息 │ │ │ │ [ 启动引擎 ] │ │ [开始标注] [查看完整日志] │ │ │ │ ┌─ 运行日志 ──────────────── [清空] ────┐ │ │ │ 12:30:01 等待启动 │ │ │ │ │ │ │ └──────────────────────────────────────┘ │ │ │ │ │ ├────────────────────────────────────────────┤ │ [微信分身] [知识库] [Skill] [员工蒸馏] │ └────────────────────────────────────────────┘ ``` ### 3.2 启动检查浮层 ```text ┌────────────────────────────────────────────┐ │ 微信分身(背景变暗,不可操作) │ │ │ │ ┌──────────────────────────────────┐ │ │ │ 启动前检查 │ │ │ │ 正在确认引擎启动所需项目 │ │ │ ├──────────────────────────────────┤ │ │ │ ✓ 大模型配置与连接 │ │ │ │ ✕ 微信区域标注不完整 │ │ │ │ ○ 微信窗口 未检查│ │ │ ├──────────────────────────────────┤ │ │ │ 启动已停止 │ │ │ │ 请先完成联系人、聊天内容、输入框 │ │ │ │ 和发送按钮区域标注。 │ │ │ │ │ │ │ │ [关闭] [去标注] [重新检查] │ │ │ └──────────────────────────────────┘ │ │ │ └────────────────────────────────────────────┘ ``` ### 3.3 运行状态 ```text ┌────────────────────────────────────────────┐ │ 微信分身 [◐][⚙][↻][退出] │ ├────────────────────────────────────────────┤ │ │ │ ╭──────────╮ │ │ │ 引擎球体 │ │ │ │ RUNNING │ │ │ ╰──────────╯ │ │ 微信引擎运行中 │ │ 已处理 26 条消息 · 队列 0 │ │ │ │ [ 停止引擎 ] │ │ [开始标注] [查看完整日志] │ │ [暂停自动发送] │ │ │ │ ┌─ 最近日志 ────────────────────────────┐ │ │ │ 12:38:21 新消息识别完成 │ │ │ │ 12:38:22 等待人工确认 │ │ │ └──────────────────────────────────────┘ │ ├────────────────────────────────────────────┤ │ [微信分身] [知识库] [Skill] [员工蒸馏] │ └────────────────────────────────────────────┘ ``` ### 3.4 交互逻辑 | 操作 | 逻辑 | |---|---| | 页面打开 | 只读取并恢复引擎当前状态,不在首页常驻展示检查项目 | | 启动引擎 | 点击后先打开模态浮层,并按“大模型配置与连接 → 区域标注 → 微信窗口”顺序检查 | | 检查中 | 浮层锁定首页操作;当前项显示加载状态,尚未执行的项目显示“未检查” | | 检查失败 | 立即停止检查和启动流程;失败项显示原因和修复入口,后续项目保持“未检查” | | 重新检查 | 从第一项重新执行;不能从失败项跳过,也不能强制启动 | | 全部通过 | 浮层显示“检查通过,正在启动”,继续启动视觉流和 Agent;启动成功后自动关闭浮层 | | 启动失败 | 保留浮层并显示具体失败阶段;已启动的子进程按现有回滚逻辑停止 | | 停止引擎 | 显示停止确认;停止中禁用重启和标注操作 | | 重启 | 停止成功后重新打开同一检查浮层,通过检查后再启动 | | 标注 | 打开现有真实标注流程;完成后重新读取区域 | | 完整日志 | 打开 `/window/engine-logs` | | 暂停自动发送 | 只暂停发送动作,不停止识别和建议回复;状态同步到托管设置 | --- ## 4. 知识库主列表补全 **主 Tab:** 知识库 **目的:** 在保留当前类型筛选和卡片结构的基础上,增加搜索、真实状态和任务反馈。 知识库仅使用 **SQLite 全文相似度搜索(FTS5/BM25)**。每条知识保存完整文本,不做向量化、不生成 embedding、不拆分内容切片;搜索结果以知识文档为单位返回。 ```text ┌────────────────────────────────────────────┐ │ 知识库 [◐][⚙][↻][退出] │ ├────────────────────────────────────────────┤ │ [全部] [视频] [图片] [文件] [案例] [其他] │ │ │ │ [ 搜索标题、标签或内容摘要.............. ] │ │ [状态▼] [刷新] │ │ 共 24 项 · 生效 18 · 解析中 2 · 异常 1 │ │ │ │ ┌──────────────────────────────────────┐ │ │ │ 销售冠军高意向客户跟进案例 │ │ │ │ 案例 · 私域成交 · 高意向 │ │ │ │ v2.4 ● 已生效 │ │ │ │ 更新 06-08 · 引用 128 · 全文 2.6 万字 │ │ │ └──────────────────────────────────────┘ │ │ ┌──────────────────────────────────────┐ │ │ │ 产品培训视频 │ │ │ │ v1.0 … 解析中 36% │ │ │ │ ███████████░░░░░░░░ │ │ │ └──────────────────────────────────────┘ │ │ ┌──────────────────────────────────────┐ │ │ │ 售后边界说明 │ │ │ │ v1.2 ! 解析失败 │ │ │ │ PDF 密码保护 [查看][重试]│ │ │ └──────────────────────────────────────┘ │ │ [ + ] │ ├────────────────────────────────────────────┤ │ [微信分身] [知识库] [Skill] [员工蒸馏] │ └────────────────────────────────────────────┘ ``` ### 4.1 交互逻辑 - 类型、状态和搜索条件组合过滤;返回列表时保留过滤条件和滚动位置。 - 搜索调用 SQLite FTS5/BM25,对标题、标签和完整正文执行文本相似度排序;结果以知识文档为单位。 - 点击卡片携带 `knowledgeId` 打开知识详情。 - 点击 FAB 打开新增知识窗口。 - 解析中卡片订阅任务进度;失败卡片直接提供“查看原因”和“重试”。 - 空态显示“暂无该类型知识”和“新增知识”按钮。 - 状态优先级:`解析失败 > 解析中 > 待审核 > 已生效 > 已停用 > 草稿`。 --- ## 5. 新增知识库原型 **路由:** `/window/knowledge-create` **形式:** 4 步向导;每一步保留草稿。 ### 5.1 步骤 1:基本信息 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 新增知识库 [主题] [关闭] │ ├──────────────────────────────────────────────────────────────────────┤ │ ① 基本信息 ─── ② 来源导入 ─── ③ 全文预览 ─── ④ 发布设置 │ │ │ │ 知识标题 * │ │ [ 例如:售后退款政策............................................ ] │ │ │ │ 知识类型 * │ │ ( ) 文件 ( ) 图片 ( ) 视频 ( ) 案例 ( ) 其他 │ │ │ │ 标签 │ │ [ 私域成交 × ] [ 售后 × ] [ 输入标签后回车....................... ] │ │ │ │ 适用范围 │ │ [ 全部员工 ▼ ] │ │ │ │ 说明 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 说明知识用途、适用场景和限制 │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ [保存草稿] [下一步:导入] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 5.2 步骤 2:来源导入 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ ① 基本信息 ─── ② 来源导入 ─── ③ 全文预览 ─── ④ 发布设置 │ │ │ │ 导入方式: [上传文件] [粘贴文本] [选择本地目录] │ │ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ 拖拽文件到此处 │ │ │ │ 支持 PDF / DOCX / TXT / PNG / JPG / MP4 │ │ │ │ [选择文件] │ │ │ │ │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ 已选择 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ refund-policy.pdf 2.4 MB 等待解析 [移除] │ │ │ │ service-example.docx 860 KB 等待解析 [移除] │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ ☑ 导入前对手机号、订单号等敏感信息进行脱敏 │ │ │ │ [上一步] [保存草稿] [开始解析] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 5.3 步骤 3:全文预览 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ ① 基本信息 ─── ② 来源导入 ─── ③ 全文预览 ─── ④ 发布设置 │ │ │ │ 解析进度 72% 正在执行 OCR │ │ ████████████████████░░░░░░░░ │ │ │ │ 文件 2 · 成功 1 · 处理中 1 · 失败 0 [取消解析] │ │ │ │ [refund-policy.pdf] [service-example.docx] │ │ ┌─ 完整文本预览 ─────────────────────────────────────────────────┐ │ │ │ 第一章 退款申请范围 │ │ │ │ 退款申请需在订单完成后 7 日内提交。已使用的数字商品不支持…… │ │ │ │ │ │ │ │ 第二章 异常订单处理 │ │ │ │ 客户情绪激动时先确认问题,再说明退款边界…… │ │ │ │ [编辑全文] │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ SQLite 搜索字段:标题 + 标签 + 完整正文 · 不切片 │ │ │ │ [上一步] [保存草稿] [重新解析] [下一步:发布设置] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 5.4 步骤 4:发布设置 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ ① 基本信息 ─── ② 来源导入 ─── ③ 全文预览 ─── ④ 发布设置 │ │ │ │ 发布摘要 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 标题:售后退款政策 │ │ │ │ 来源:2 个文件 · 完整正文 2.6 万字 · 已脱敏 │ │ │ 预计影响:3 个 Skill、2 个员工 │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ 发布方式 │ │ (●) 立即生效 ( ) 保存为待审核 ( ) 仅保存草稿 │ │ │ │ 版本说明 │ │ [ 首次导入退款政策.............................................. ] │ │ │ │ ☑ 我已确认内容不包含未经授权的个人敏感信息 │ │ │ │ [上一步] [保存草稿] [发布知识] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 5.5 交互逻辑 1. 标题、类型为必填;校验失败时定位到第一个错误字段。 2. 文件导入后生成本地任务;关闭窗口不取消任务。 3. 解析失败保留成功文件,允许只重试失败文件。 4. 每个来源文件保存完整正文,可编辑全文;至少存在 1 份非空正文才能发布。 5. “保存草稿”在任一步可用;再次进入时恢复步骤、文件和编辑内容。 6. 发布成功后关闭窗口,主列表新增对应卡片并定位到该项。 --- ## 6. 知识详情原型 **路由:** `/window/knowledge-detail?id=` ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 知识库详情 [主题] [关闭] │ ├──────────────────────────────────────────────────────────────────────┤ │ 售后常见问题与退款边界 v1.7 ● 已生效 [更多▼] │ │ 文件 · 售后 · 更新于 2026-06-05 · 引用 82 次 │ │ │ │ [概览] [全文内容] [引用关系 5] [版本历史 7] [错误记录] │ │ ───────────────────────────────────────────────────────────────── │ │ │ │ 基本信息 [编辑基本信息] │ │ ┌──────────────────────────────┬─────────────────────────────────┐ │ │ │ 来源:refund-policy.pdf │ 解析方式:PDF + OCR │ │ │ │ 创建人:本机管理员 │ 当前版本:v1.7 │ │ │ │ 生效时间:2026-06-05 │ 最近检索:12 分钟前 │ │ │ └──────────────────────────────┴─────────────────────────────────┘ │ │ │ │ 内容摘要 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 涵盖退款期限、数字商品限制、异常订单处理和安抚话术边界…… │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ 使用情况 │ │ ┌────────────────┐ ┌────────────────┐ ┌────────────────────────┐ │ │ │ 本周命中 32 次 │ │ 引用 Skill 3 个│ │ 绑定员工 2 个 │ │ │ └────────────────┘ └────────────────┘ └────────────────────────┘ │ │ │ │ [重新解析] [创建新版本] [停用] [删除知识] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 6.1 标签页内容 - **全文内容**:展示和搜索完整正文,可编辑全文;变更后创建新版本。 - **引用关系**:列出引用该知识的 Skill 和员工;点击打开对应详情。 - **版本历史**:版本号、发布时间、操作者、变更说明;支持比较和回滚。 - **错误记录**:解析、检索、权限错误;支持复制错误和重新处理。 ### 6.2 交互逻辑 | 操作 | 逻辑 | |---|---| | 编辑基本信息 | 标题、标签、说明可编辑;保存生成审计记录,不创建内容版本 | | 重新解析 | 先显示影响说明;成功后创建新草稿版本,确认后替换生效版本 | | 创建新版本 | 复制当前版本进入编辑,不直接覆盖线上版本 | | 停用 | 二次确认;停用后检索不再命中,但历史引用保留 | | 删除 | 先检查引用关系;存在引用时禁止硬删除,提示先解绑或仅停用 | | 回滚 | 以历史版本内容创建一个新的当前版本,历史记录不删除 | --- ## 7. Skill 市场主列表补全 ```text ┌────────────────────────────────────────────┐ │ Skill 市场 [◐][⚙][↻][退出] │ ├────────────────────────────────────────────┤ │ [全部] [内置] [自定义] │ │ [ 搜索 Skill 名称或能力................. ] │ │ [状态▼] [刷新] │ │ │ │ ┌──────────────────────────────────────┐ │ │ │ 客户意图识别 │ │ │ │ 内置 · v2.1 ● 已启用 │ │ │ │ 线索分级 异议判断 下一步建议 │ │ │ │ 绑定知识 3 · 最近调用 16 次 │ │ │ │ [查看][开关●] │ │ │ └──────────────────────────────────────┘ │ │ ┌──────────────────────────────────────┐ │ │ │ 报价策略生成 │ │ │ │ 自定义 · v1.3 ● 已启用 │ │ │ │ 利润保护 阶梯报价 优惠边界 │ │ │ │ 测试通过 · 修改于 2 天前 │ │ │ │ [编辑][开关●] │ │ │ └──────────────────────────────────────┘ │ │ ┌──────────────────────────────────────┐ │ │ │ 售后安抚助手 │ │ │ │ 内置 · v1.0 ○ 已关闭 │ │ │ │ 情绪识别 补偿建议 工单摘要 │ │ │ │ [查看][开关○] │ │ │ └──────────────────────────────────────┘ │ │ [ + ] │ ├────────────────────────────────────────────┤ │ [微信分身] [知识库] [Skill] [员工蒸馏] │ └────────────────────────────────────────────┘ ``` ### 7.1 交互逻辑 - 点击卡片或“查看/编辑”打开具体 Skill 详情,必须携带 `skillId`。 - 内置 Skill 只读,只允许启停和查看权限。 - 自定义 Skill 可编辑;编辑已发布 Skill 时先创建草稿版本。 - 启用前检查测试状态和权限完整性;不通过时跳转到对应配置项。 - 开关采用等待后端成功再更新,失败时保留原状态并显示原因。 --- ## 8. 新增/编辑 Skill 原型 **路由建议:** - 新增:`/window/skill-create` - 详情:`/window/skill-detail?id=` ### 8.1 编辑页 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 新增 Skill [主题] [关闭] │ ├──────────────────────────────────────────────────────────────────────┤ │ [基本信息] [执行定义] [权限授权] [沙箱测试] [发布设置] │ │ ───────────────────────────────────────────────────────────────── │ │ │ │ Skill 名称 * │ │ [ 报价策略生成.................................................. ] │ │ │ │ 类型 版本 │ │ [ 自定义 ▼ ] [ v1.0 ] │ │ │ │ 描述 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 根据客户意向、商品成本和优惠边界生成报价建议 │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ 能力标签 │ │ [ 利润保护 × ] [ 阶梯报价 × ] [ 输入标签......................... ] │ │ │ │ [保存草稿] [下一步:定义] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 8.2 执行定义 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 系统提示词 [恢复默认] │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 你是报价策略助手。不得突破配置的最低利润率…… │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ 输入 Schema 输出 Schema │ │ ┌──────────────────────────────┐ ┌─────────────────────────────┐ │ │ │ customerLevel: string │ │ suggestedPrice: number │ │ │ │ productId: string │ │ reason: string │ │ │ │ maxDiscount: number │ │ risk: string │ │ │ └──────────────────────────────┘ └─────────────────────────────┘ │ │ │ │ 可调用工具 │ │ ☑ 查询商品信息 ☑ 检索知识库 ☐ 发送微信消息 ☐ 创建工单 │ │ │ │ [上一步] [保存草稿] [下一步:授权] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 8.3 权限授权 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 可访问知识库 [搜索知识] [全不选] │ │ ☑ 产品价格表 已生效 v3.2 │ │ ☑ 报价与折扣边界 已生效 v1.4 │ │ ☐ 售后退款政策 已生效 v1.7 │ │ │ │ 危险权限 │ │ ☐ 允许直接发送消息 │ │ 未授权时只生成建议,必须由人工确认。 │ │ ☐ 允许主动联系客户 │ │ 开启后仍受托管配置和白名单限制。 │ │ │ │ [上一步] [保存草稿] [下一步:测试] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 8.4 沙箱测试 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 测试输入 [载入样例▼] │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 客户等级:A │ │ │ │ 商品:年度专业版 │ │ │ │ 客户问题:还能再优惠一点吗? │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ [运行测试] │ │ ───────────────────────────────────────────────────────────────── │ │ ● 测试通过 · 1.8s · 820 tokens │ │ │ │ 输出结果 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 建议报价:¥8,800 │ │ │ │ 理由:客户等级 A,可使用 8% 优惠,仍高于最低利润线…… │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ 工具轨迹 │ │ 1. 查询商品信息 ✓ 2. 检索报价边界 ✓ 3. 生成建议 ✓ │ │ │ │ [上一步] [保存测试样例] [下一步:发布] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 8.5 发布规则 - 必须完成至少一次成功测试,才能发布或启用。 - 输出不符合 schema、工具越权或超时均视为测试失败。 - 危险权限单独确认,并说明仍受托管配置控制。 - 发布后版本不可直接覆盖;继续编辑生成下一个草稿版本。 - 内置 Skill 详情使用同一结构,但隐藏编辑和发布按钮。 --- ## 9. 员工蒸馏主页面补全 ```text ┌────────────────────────────────────────────┐ │ 员工蒸馏 [◐][⚙][↻][退出] │ ├────────────────────────────────────────────┤ │ 把优秀话术沉淀成可评估、可授权的员工能力 │ │ [查看教程] [开始新的蒸馏] │ │ │ │ 当前任务 │ │ ┌──────────────────────────────────────┐ │ │ │ 销售冠军 Aileen 话术蒸馏 │ │ │ │ … 能力提取 72% │ │ │ │ ███████████████████░░░░░ │ │ │ │ 成功 248 · 失败 7 · 剩余约 3 分钟 │ │ │ │ [查看][取消]│ │ │ └──────────────────────────────────────┘ │ │ │ │ 已发布员工 │ │ [搜索员工................] [状态▼] │ │ ┌──────────────────────────────────────┐ │ │ │ 销售冠军 Aileen v3.2 ● 已启用 │ │ │ │ 企微私域成交 │ │ │ │ 高意向逼单 / 异议拆解 / 温和推进 │ │ │ │ 评分 96 · 本周调用 28 [查看详情]│ │ │ └──────────────────────────────────────┘ │ │ ┌──────────────────────────────────────┐ │ │ │ 客服主管 Mina v2.1 ○ 已关闭 │ │ │ │ 售后服务 │ │ │ │ 投诉降温 / 售后边界 / 情绪安抚 │ │ │ │ [查看详情]│ │ │ └──────────────────────────────────────┘ │ ├────────────────────────────────────────────┤ │ [微信分身] [知识库] [Skill] [员工蒸馏] │ └────────────────────────────────────────────┘ ``` ### 9.1 交互逻辑 - “查看教程”打开标注清楚的帮助页,不使用无响应按钮。 - 任务进度来自 `DistillJob`,页面重开后继续显示。 - 点击任务进入任务详情,可查看当前阶段和失败样本。 - 取消任务需确认;已完成阶段数据保留,可稍后继续。 - 点击员工卡片携带 `employeeId` 打开员工详情。 --- ## 10. 开始蒸馏原型 **路由:** `/window/distill-start` **形式:** 5 步向导。 ### 10.1 步骤总览 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 开始蒸馏 [主题] [关闭] │ ├──────────────────────────────────────────────────────────────────────┤ │ ① 来源导入 ─ ② 隐私处理 ─ ③ 能力提取 ─ ④ 效果评估 ─ ⑤ 发布员工 │ │ │ │ 数据来源 │ │ [导入微信聊天] [上传文档] [选择已有案例] │ │ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ sales-chat-2026-06.json 1,286 条会话 ✓ 格式有效 │ │ │ │ champion-scripts.docx 38 条话术 ✓ 格式有效 │ │ │ │ follow-up-cases 12 个已有案例 ✓ 已选择 │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ 数据范围 │ │ 时间:[2026-01-01] 至 [2026-06-30] 最少有效会话:50 条 │ │ │ │ [保存草稿] [下一步:隐私检查] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 10.2 隐私处理 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 扫描结果:发现 423 个联系人、86 个手机号、31 个订单号 │ │ │ │ 脱敏规则 │ │ ☑ 联系人名称替换为匿名编号 │ │ ☑ 手机号保留后四位 │ │ ☑ 订单号完全隐藏 │ │ ☑ 地址只保留省市 │ │ │ │ 脱敏预览 │ │ 原文:张三的订单 202606180018,手机号 13800138000 │ │ 结果:客户-023 的订单 ************,手机号 *******8000 │ │ │ │ ☑ 我确认仅处理已获授权的数据 │ │ │ │ [上一步] [保存草稿] [开始能力提取] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 10.3 能力提取 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 正在提取能力 72% │ │ ████████████████████░░░░░░░░ │ │ │ │ ✓ 数据清洗 1,286 / 1,286 │ │ ✓ 场景聚类 18 个场景 │ │ … 策略提取 13 / 18 │ │ ○ 边界归纳 等待 │ │ ○ 反例生成 等待 │ │ │ │ 已识别能力 │ │ [高意向识别] [异议拆解] [温和推进] [优惠边界] [长期跟进] │ │ │ │ 失败样本 7 条 [查看失败样本] │ │ │ │ [后台继续运行] [取消任务] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 10.4 效果评估 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 综合评分 92 / 100 ● 达到发布标准 │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 场景命中 94% │ │ 拒答准确 91% │ │ 越权率 0.3% │ │ 一致性 89% │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ │ 测试样例 │ │ ✓ 高意向询价 建议合理 │ │ ✓ 超边界优惠 已拒绝越权 │ │ ! 售后退款混合场景 回答包含不确定信息 [查看] │ │ │ │ [重新评估] [导出评估报告] [下一步:发布] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 10.5 发布员工 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 员工名称 * │ │ [ 销售冠军 Aileen............................................... ] │ │ │ │ 业务领域 初始版本 │ │ [ 企微私域成交 ▼ ] [ v1.0 ] │ │ │ │ 授权能力 │ │ ☑ 客户意图识别 ☑ 报价策略生成 ☐ 售后安抚助手 │ │ │ │ 授权知识 │ │ ☑ 产品价格表 ☑ 报价边界 ☑ 高意向跟进案例 │ │ │ │ 初始状态 │ │ ( ) 发布后立即启用 (●) 发布但保持关闭 │ │ │ │ [保存草稿] [上一步] [发布员工] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 10.6 交互逻辑 - 从能力提取开始创建后台任务,关闭窗口后任务继续。 - “后台继续运行”关闭窗口并在员工蒸馏主页面展示任务卡片。 - 失败样本允许排除、修正分类或重新处理,但保留审计记录。 - 评估未达阈值时禁用发布,提供“查看失败项”和“重新提取”。 - 发布成功后跳转员工详情,并同步主列表。 --- ## 11. 员工详情原型 **路由:** `/window/employee-detail?id=` ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 员工详情 [主题] [关闭] │ ├──────────────────────────────────────────────────────────────────────┤ │ 销售冠军 Aileen v3.2 ● 已启用 [启停开关●] │ │ 企微私域成交 · 更新于 2026-06-18 │ │ │ │ [概览] [能力与授权] [评估报告] [版本历史] [调用记录] │ │ ───────────────────────────────────────────────────────────────── │ │ │ │ 员工画像 [编辑画像] │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 高意向逼单 / 异议拆解 / 温和推进 │ │ │ │ 适用:已有明确需求、处于报价或决策阶段的私域客户 │ │ │ │ 禁止:承诺未授权折扣、绕过人工确认直接发送敏感信息 │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 综合评分 96 │ │ 本周调用 28 │ │ 采纳率 82% │ │ 异常 1 次 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ │ 绑定能力:客户意图识别、报价策略生成 [管理授权] │ │ 绑定知识:产品价格表、报价边界、高意向案例 [管理知识] │ │ │ │ [重新蒸馏] [复制为新员工] [停用] [更多操作▼] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 11.1 交互逻辑 | 操作 | 逻辑 | |---|---| | 启停 | 启用前校验模型、Skill、知识权限;停用不删除历史 | | 管理授权 | 弹出 Skill 多选,危险权限额外确认 | | 管理知识 | 只显示已生效知识;停用知识标为不可用 | | 重新蒸馏 | 创建新蒸馏任务,当前版本继续运行,直到新版本发布 | | 版本回滚 | 基于历史版本创建新当前版本,不修改历史记录 | | 查看异常 | 跳转调用记录并过滤异常项,可关联 requestId 查看日志 | --- ## 12. 设置中心原型 **路由:** `/window/settings` **布局:** 延续当前左侧分类、右侧内容。底部统一显示未保存状态和保存按钮。 ### 12.1 设置壳 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 设置 [主题] [关闭] │ ├──────────────────┬───────────────────────────────────────────────────┤ │ 基础配置 │ 当前分区标题 │ │ 提示词配置 │ 分区说明 │ │ 回复规则 │ │ │ Skill 管理 │ 配置内容 │ │ 员工管理 │ │ │ 知识库管理 │ │ │ 托管配置 │ │ │ ├───────────────────────────────────────────────────┤ │ │ ● 有未保存修改 [恢复] [保存配置] │ └──────────────────┴───────────────────────────────────────────────────┘ ``` ### 12.2 基础配置 ```text ┌─ 大模型配置 ─────────────────────────────────────────────────────────┐ │ 模型厂家 [ 豆包 / 火山引擎 ▼ ] │ │ 请求地址 [ https://ark.cn-beijing.volces.com/api/v3......... ] │ │ API Key [ ● 已配置 ************************ ] [更换] [删除] │ │ 模型名称 [ doubao-pro-32k ▼ ] │ │ 请求超时 [ 8000 ] ms │ │ │ │ [测试连接] ● 连接成功 · 324ms · doubao-pro-32k │ └───────────────────────────────────────────────────────────────────────┘ ``` 交互:厂家变化时加载默认地址和可选模型;不覆盖用户已编辑值,先确认。测试连接使用当前表单值,不要求先保存。API Key 只显示“已配置”,不回显明文。 ### 12.3 提示词配置 ```text ┌─ 固定提示词 ─────────────────────────────────────────── [不可修改] ─┐ │ 你是本地微信分身助手,需要遵守托管策略、回复边界与用户授权…… │ └───────────────────────────────────────────────────────────────────────┘ ┌─ 自定义提示词 ─────────────────────────── 82 / 4000 [恢复默认] ─────┐ │ 保持友好、简洁、可信赖。优先调用知识库和已授权员工能力…… │ │ │ └───────────────────────────────────────────────────────────────────────┘ [预览组合提示词] [保存提示词] ``` 交互:固定提示词真正只读;自定义提示词保存前校验长度;恢复默认需确认;离开分区时提示未保存修改。 ### 12.4 回复规则 ```text ┌─ 基础规则 ───────────────────────────────────────────────────────────┐ │ 免打扰模式 [开关○] [时间段 22:00 - 08:00] │ │ 自动加好友 [开关○] │ │ 主动联系客户 [开关○] 需要白名单授权 │ │ 开启蒸馏 [开关●] │ └───────────────────────────────────────────────────────────────────────┘ ┌─ 用户名单 ───────────────────────────────────────────────────────────┐ │ [白名单] [黑名单] │ │ [ 搜索或输入微信名称.............................. ] [添加] │ │ 张三 来源:手动添加 2026-06-20 [移除] │ │ 客户测试群 来源:联系人选择 2026-06-18 [移除] │ └───────────────────────────────────────────────────────────────────────┘ ``` 交互:黑白名单使用列表而非开关;同一用户不能同时存在于两个名单。主动联系开启前必须至少存在一个白名单用户。 ### 12.5 Skill 管理 ```text ┌─ Skill 功能 ─────────────────────────────────────────────────────────┐ │ 开启 Skill 功能 [总开关●] │ │ 关闭总开关后保留以下单项配置,但运行时全部不生效。 │ ├───────────────────────────────────────────────────────────────────────┤ │ 客户意图识别 内置 v2.1 已测试 [开关●] │ │ 报价策略生成 自定义 v1.3 已测试 [开关●] │ │ 售后安抚助手 内置 v1.0 未测试 [开关○] │ └───────────────────────────────────────────────────────────────────────┘ ``` ### 12.6 员工管理 ```text ┌─ 员工能力 ───────────────────────────────────────────────────────────┐ │ 开启使用员工功能 [总开关●] │ ├───────────────────────────────────────────────────────────────────────┤ │ 销售冠军 Aileen v3.2 评分 96 企微私域成交 [开关●] │ │ 售前专家 Leo v1.8 评分 91 B2B 咨询 [开关●] │ │ 客服主管 Mina v2.1 评分 88 售后服务 [开关○] │ └───────────────────────────────────────────────────────────────────────┘ ``` ### 12.7 知识库管理 ```text ┌─ SQLite 文本搜索 ────────────────────────────────────────────────────┐ │ 开启使用知识库功能 [总开关●] │ │ 搜索算法 SQLite FTS5 / BM25(固定) │ │ 最大返回数量 [ 5 ] │ │ 搜索字段 ☑ 标题 ☑ 标签 ☑ 完整正文 │ ├───────────────────────────────────────────────────────────────────────┤ │ 售后退款政策 v1.7 已生效 正文 2.6 万字 [开关●] │ │ 产品价格表 v3.2 已生效 正文 8,200 字 [开关●] │ │ 旧版报价说明 v0.9 已停用 [不可启用] │ └───────────────────────────────────────────────────────────────────────┘ ``` ### 12.8 托管配置 ```text ┌─ 托管总开关 ─────────────────────────────────────────────────────────┐ │ 开启托管功能 [开关○] │ │ 开启后 Agent 可在规则和授权范围内处理微信消息。 │ └───────────────────────────────────────────────────────────────────────┘ ┌─ 托管策略 ───────────────────────────────────────────────────────────┐ │ 本地消息服务 [开关●] │ │ 发送前人工确认 [开关●] │ │ 异常自动暂停 [开关●] │ │ 连续异常阈值 [ 3 ] 次 │ │ 单日消息最长等待 [ 30 ] 秒 │ └───────────────────────────────────────────────────────────────────────┘ 优先级:异常自动暂停 > 人工确认 > 自动发送 > 托管总开关 ``` ### 12.9 设置统一交互逻辑 1. 页面打开调用 `get_config`;加载失败显示重试,不展示伪默认值。 2. 修改任意字段后出现“有未保存修改”。 3. 切换分区不丢失草稿;关闭窗口时提示保存或放弃。 4. 保存使用一次事务提交,失败时保留所有表单内容。 5. 总开关关闭时,单项开关保留但显示为暂不生效。 6. 保存成功通过事件同步其他窗口的模型、引擎和托管状态。 --- ## 13. 完整运行日志原型 **路由:** `/window/engine-logs` ```text ┌──────────────────────────────────────────────────────────────────────┐ │ 分身引擎日志 [主题] [关闭] │ ├──────────────────────────────────────────────────────────────────────┤ │ [全部▼] [模块▼] [ 搜索消息或 requestId......................... ] │ │ ☑ 自动滚动 [暂停接收] [导出] [清空视图] │ │ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ 12:30:01 INFO agent 引擎启动成功 │ │ │ │ 12:30:02 INFO vision 预览流已连接,12.4 FPS │ │ │ │ 12:30:06 DEBUG capture 检测到客户 A 新消息 │ │ │ │ 12:30:07 INFO retriever 命中“报价边界” score=0.86 │ │ │ │ 12:30:08 INFO model 回复生成完成 requestId=req_91fa │ │ │ │ 12:30:09 WARN policy 等待人工确认 │ │ │ │ 12:30:15 ERROR sender 发送失败:当前会话已切换 │ │ │ │ │ │ │ │ │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ 已显示 286 / 1,240 条 · 缓存上限 10,000 · 最后更新 12:30:15 │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 13.1 日志详情抽屉 ```text ┌─ 日志详情 ───────────────────────────────────────────────────────────┐ │ 时间 2026-07-20 12:30:15.238 │ │ 级别 ERROR │ │ 模块 sender │ │ requestId req_91fa [复制] │ │ 消息 发送失败:当前会话已切换 │ │ 上下文 snapshot-9821 → snapshot-9822 │ │ │ │ [复制完整日志] [仅筛选此 requestId] │ └──────────────────────────────────────────────────────────────────────┘ ``` ### 13.2 交互逻辑 - 实时订阅 `engine-log`;暂停接收时后端继续运行,前端暂存新日志数量。 - 筛选条件包括级别、模块和搜索文本,可组合使用。 - 点击日志行打开详情;requestId 可串联同一次处理流程。 - “清空视图”只清当前显示缓存,不删除磁盘日志;执行后提供“重新加载”。 - “导出”按当前筛选导出文本或 JSON。 - 列表缓存 10,000 条,超过后淘汰最旧数据;采用虚拟滚动。 --- ## 14. 跨页面交互关系 ```text 微信分身 ├─ 启动检查失败:模型配置 ───────────────> 设置 / 基础配置 ├─ 启动检查失败:标注不完整 ─────────────> 真实标注页 ├─ 启动检查失败:未找到微信窗口 ─────────> 关闭浮层并重新打开微信 └─ 检查全部通过 ─────────────────────────> 自动继续启动引擎 知识库列表 ├─ 新增 ─────────────────────────────────> 新增知识四步向导 └─ 点击卡片 ─────────────────────────────> 知识详情(id) Skill 市场 ├─ 新增 ─────────────────────────────────> Skill 编辑器 └─ 点击卡片 ─────────────────────────────> Skill 详情(id) 员工蒸馏 ├─ 开始新的蒸馏 ─────────────────────────> 蒸馏五步向导 ├─ 点击任务 ─────────────────────────────> 蒸馏任务当前步骤 └─ 点击员工 ─────────────────────────────> 员工详情(id) ``` --- ## 15. 全局反馈原型 ### 15.1 异步处理中 ```text [ … 正在保存 ] 按钮禁用,不允许重复提交 ``` ### 15.2 成功提示 ```text ┌──────────────────────────────────────┐ │ ✓ 配置已保存 │ │ 已同步到运行中的引擎 │ └──────────────────────────────────────┘ ``` ### 15.3 可恢复错误 ```text ┌──────────────────────────────────────────────────────────┐ │ ! 模型连接超时 │ │ 请求地址无响应,请检查网络或将超时时间调大。 │ │ [去修改] [重新测试] │ └──────────────────────────────────────────────────────────┘ ``` ### 15.4 未保存关闭确认 ```text ┌──────────────────────────────────────────────┐ │ 关闭前保存修改? │ │ 当前页面有尚未保存的内容。 │ │ │ │ [继续编辑] [放弃修改] [保存并关闭] │ └──────────────────────────────────────────────┘ ``` ### 15.5 危险操作确认 ```text ┌──────────────────────────────────────────────┐ │ 停用“售后退款政策”? │ │ 停用后引擎不会再检索该知识,历史记录仍保留。 │ │ │ │ [取消] [确认停用] │ └──────────────────────────────────────────────┘ ``` --- ## 16. 页面状态检查清单 每个页面实现时至少需要对应以下原型状态: | 状态 | 页面表现 | |---|---| | 首次加载 | 内容骨架或明确的加载文案,禁止先显示假数据 | | 空数据 | 解释为什么为空,并提供创建或刷新动作 | | 加载失败 | 显示原因摘要、重试和相关设置/日志入口 | | 提交中 | 主按钮禁用并显示阶段,不允许重复提交 | | 提交成功 | 更新当前内容或返回来源列表,并提供明确反馈 | | 提交失败 | 保留输入,展示原因和恢复方式 | | 未保存 | 标记 dirty;关闭、返回或切换实体时确认 | | 权限不足 | 解释缺失权限,并提供授权入口 | | 后台任务 | 可离开、可恢复、可查看进度、可取消或重试 | | 实体失效 | id 不存在或已删除时显示说明并返回列表 | --- ## 17. 推荐实现顺序 1. **先补主链路入口和可信状态**:微信分身状态、日志入口、实体 id。 2. **完成知识库闭环**:知识列表 → 新增 → 解析 → 详情 → 发布/停用。 3. **完成设置闭环**:配置读取、表单状态、连接测试、事务保存。 4. **完成 Skill 闭环**:列表 → 编辑 → 测试 → 授权 → 发布。 5. **完成蒸馏闭环**:任务向导 → 后台进度 → 评估 → 员工详情。 6. **最后完善日志诊断**:实时订阅、筛选、导出和 requestId 串联。 实现时保持当前组件和视觉语言,不再新增另一套页面壳、按钮体系或导航方式。