Skip to content

Proposal:显式用户画像 #55

Description

@LUPENGHAN

Issue:显式用户画像

1. 功能描述

显式用户画像是用户主动维护的全局 UserProfile。它记录用户明确提供的可用时间、偏好时段、计划强度、提醒偏好等信息,用于 Goal 拆分、重排和候选生成。

显式画像是 P0 的全局个性化基础;与 GoalScopedProfile 不同,它跨 Goal 生效,并且必须由用户明确输入或确认。

2. 用户 / 用户故事

目标用户:愿意明确提供作息和计划偏好,并希望这些信息跨 Goal 生效的个人用户。

用户在设置中填写“工作日晚上 20:00 后可用,周末每天 3 小时,偏好 45 分钟任务”。系统在后续 Goal 拆分和重排中使用这些明确信息。

用户也可以在 AI Tab 说“以后默认不要把学习任务安排到太晚”,系统生成画像更新候选,确认后写入全局画像。

3. 现有做法及不足

没有画像时,AI 计划只能使用通用假设,容易不贴合用户节奏。直接自动学习历史又会降低控制感,因此 P0 先做显式画像,P1 再做全局历史候选。

4. 本期范围

  1. 用户可在设置中查看和编辑显式画像。
  2. 用户可通过 AI 生成画像更新候选。
  3. AI 更新画像必须用户确认。
  4. Goal 拆分和重排可读取显式画像。
  5. 当前用户明确输入优先于显式画像。
  6. 显式画像与 GoalScopedProfile 分开保存和使用。

5. 明确不做

  • 不自动从历史执行数据写入全局画像。
  • 不把 GoalScopedProfile 自动提升为全局画像。
  • 不做复杂画像市场或标签系统。
  • 不做用户无法查看的全局画像。
  • 不让画像自动修改既有计划。

6. 关键决策

决策点 备选方案 选择 理由
P0 画像来源 自动学习 / 用户显式输入 用户显式输入 控制感最高,解释成本最低
AI 修改 自动覆盖 / 候选确认 候选 + 确认 避免误写长期偏好
生效范围 单个 Goal / 全局 全局 作为所有 Goal 的默认个性化输入
与项目画像 合并 / 分离 分离 防止局部项目经验污染全局偏好
冲突处理 画像优先 / 当前输入优先 当前输入优先 用户当下约束最可靠

7. 边界与异常

  • 用户临时说“这周例外”,不应直接改全局画像,除非用户确认“以后都这样”。
  • 用户输入与画像冲突时,本次任务按当前输入执行。
  • 画像缺失时,系统使用默认规则并可轻量追问。
  • AI 生成画像候选必须展示变更前后。

8. 基本概念与信息结构

概念 含义
UserProfile 用户主动维护的全局画像
available_time 默认可用时间
preferred_time_period 偏好时段
task_granularity 任务粒度偏好
reminder_preference 提醒偏好
source 用户手动输入或确认的 AI 候选

9. Agent 输入输出约束

  • 主 Agent 可识别画像更新意图。
  • 子 Agent 或公共画像归纳能力只生成更新候选,不直接读写数据库。
  • 更新全局画像必须 isNeedUser = true
  • 用户确认后由主 Agent 写入。

10. 验收标准

  • 用户可在设置中查看和编辑显式画像。
  • AI 可生成画像更新候选,但确认前不写入。
  • Goal 拆分和重排能读取显式画像。
  • 当前明确输入覆盖画像默认值。
  • GoalScopedProfile 不会自动写入 UserProfile。
  • P1 历史画像候选不会自动写入 UserProfile。

Metadata

Metadata

Assignees

No one assigned

    Labels

    FullSpec完整规格提案:影响面较大,需要写清楚动机、范围、不做、备选方案、接口/数据结构、原型、验收标准Proposal-Acceptedproposal

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions