用途
该技能用于为会议日程个性化构建个人偏好画像。其核心思路是:与其让参会者逐项评分、填写表单,不如利用底层的潜在结构(主题地图),用少量精心挑选的问题捕获大部分信号。智能体现在“下一个该问什么问题”,而不是“问多少个问题”。
主要能力
- 以区间而非点表示偏好:每个主题从最大不确定性开始(interest_lo: 0.0, interest_hi: 1.0),每个回答会缩小相关主题的区间。
- 选择信息增益最高的问题:优先选择能最大程度缩小不确定区间的问题,跳过答案可预测的问题。
- 基于选择、锚定真实演讲:不问“你对某主题感兴趣程度 1–5 分?”,而是展示 2–3 个来自不同主题的真实代表性演讲,从选择及理由中读取潜在维度。
- 平衡探索与利用:既确认已怀疑的兴趣(exploit),也主动探测无法定位的主题(explore)。
- 强制注入离群探测:每次运行至少一次提供离群选项,以对抗选择偏差,避免只学到被窄化的刻板画像。
- 征询目标权重与硬约束:以选择方式获取兴趣/广度/节奏/意外收获之间的权衡,以及必须参加、禁排时段等硬约束,绝不默认假设。
- 在稳定时停止:当 region_tightness 达到阈值(如 0.7)、离群探测达标、权重与约束已捕获时停止,设置 status: "stable"。
使用方式
工作流程:
- 读取 clusters.json、affinities.json 和代表性事件,初始化宽区间。
- 将 objective_weights/hard_constraints 初始化为未设置,计划征询。
- 循环:
- 按预期区间收缩(信息增益)为候选问题打分。
- 选择下一个问题;在区间最宽处偏向探索;遵守离群探测下限;适时插入权重/约束问题。
- 展示 2–3 个具体对比演讲(或权重/约束选择),只问一次。
- 读取选择与理由;贝叶斯更新受影响区间;记录交互。
- 重新计算 region_tightness。若足够紧且离群下限满足且权重+约束已捕获,则跳出。
- 最终确定 point_estimate;设置 status: stable;写入 profile.json;返回路径。
该技能必须运行在能与用户交互的主对话中,而非后台任务。
输出(画像契约)
输出为 JSON 结构,包含:
- status:in_progress 或 stable
- generated_on:日期
- region:各主题的兴趣区间(interest_lo..interest_hi)
- point_estimate:当前最佳单值估计
- axis_preferences:深度目标、形式组合、是否可跳过录播、时间约束
- objective_weights:兴趣、广度、节奏、意外收获的权重
- hard_constraints:必须参加、保持空闲等
- interaction_log:每次提问、选项、选择、推断、信息增益说明、类型
- outlier_probes_done:离群探测次数
- region_tightness:区间紧密度 [0,1]
适用场景
- 会议日程个性化:为参会者生成偏好画像,供日程优化器使用。
- 需要少量高质量问题而非长问卷的偏好采集场景。
- 需要对抗选择偏差、发现小众兴趣的推荐场景。
限制
- 必须能实际向用户提问并读取回答,不能作为后台任务运行。
- 依赖主题聚类地图(clusters.json)和代表性事件作为锚点。
- 离群探测为强制要求:outlier_probes_done 为 0 时画像不完整、不稳定。
- 权重与硬约束必须由用户提供,不得默认假设。
- 达到稳定后应停止提问,过度提问会引入噪声并消耗用户耐心。
相关技能
- bayesian-reasoning-calibration:更新规则,每个回答作为似然来缩小先验区间。
- discovery-interviews-surveys:避免引导性、偏差性或双重问题的提问设计。
- conf-theme-clustering:提供问题对比的主题和离群探测所用的离群桶。
- conf-schedule-optimization:消费者,其目标由本技能产生的权重和区间参数化。