Skip to content

教程结束后的低打扰聊天支线

文档性质:proposal。 当前源码没有按本页旧版 Day 1–7 状态键实现完整“剧场后支线”系统;不要把下列建议写成已上线行为。

目标

主教程归还控制权后,可由普通 React 聊天消息提供一次可拒绝的后续入口,帮助用户重新找到刚介绍的功能。支线不能重新进入强接管教程,也不能自动点击敏感功能。

建议模型

每个候选支线至少包含:

  • id:稳定机器 ID;
  • prerequisites:已完成的教程日与真实使用信号;
  • cooldown:按用户/日期的冷却;
  • messageKey:8 locale 中的聊天文案;
  • actions:最多两个明确动作和一个拒绝动作;
  • targetRoute 或 command bus 命令;
  • privacyClass:是否涉及屏幕、麦克风、文件或 Agent。

状态应由一个统一 store 管理,不再新增 avatarFloatingGuide.dayN... 的散落 localStorage 键。

候选主题

教程后可选支线限制
屏幕与语音重新打开屏幕来源或设备设置只导航,不自动开始采集
角色互动打开 Avatar 工具菜单或小游戏入口不模拟道具点击
陪伴设置打开对话/隐私设置不修改设置
个性化打开模型、声音或角色卡管理一次只推荐一个入口
Agent打开 Agent 设置或任务 HUD不自动启用外部能力

触发约束

  • 仅在主教程自然完成并已清理 overlay 后评估。
  • 用户正在输入、录音、分享屏幕、执行 Agent 任务或处于小游戏时不弹出。
  • 同一支线被拒绝后当天不再出现;总频率应有全局上限。
  • 使用真实产品状态作为 prerequisite,不用“经过了几分钟”推测用户没用过功能。
  • 消息进入唯一的 React 聊天实现;不要写入隐藏的 #chat-container

实现前置工作

  1. 先确定统一状态 schema 与迁移方式。
  2. 复用当前 tutorial completion 事件和 React message action 契约。
  3. 为每个 route/command 做可用性检查。
  4. 添加频率、拒绝、隐私和多窗口测试。
  5. Electron 导航/窗口唤起需在 N.E.K.O-PC 单独设计并验证。