| name | import-ai-memory |
| description | 解析用户从其他 AI 获取的记忆回复,最大化利用已有信息减少用户交互,仅在信息严重不足时才补充提问。 |
AI 记忆导入与整合
核心原则
AI 记忆迁移的意义就是减少用户交互量。 能直接写入的就直接写入,不要反复让用户确认。
具体来说:
- 有据可查(✅)的信息:直接写入,不问用户
- 印象模糊(⚠️)但信息具体的:也直接写入,不问用户。例如"更倾向于判断你是博士阶段" → 直接写入"博士生"
- 当前需求等个人化信息:只要 AI 给出了具体内容,直接写入,不要再让用户确认
- 能力评分:如果 AI 给出了定性描述(如"文献整合较强"),直接转化为分数写入(如 4 分),不需要用户再打分
- 只有在 AI 完全没有提供信息(❌ 记忆不足)的字段,才需要向用户提问补充
一句话总结:只问 AI 没给答案的,不要确认 AI 已经给了答案的。
步骤一:解析 AI 回复
读取用户粘贴的 AI 回复,同时调用 read_profile 获取画像模板。
将所有画像字段逐一对照,分为两类:
| 分类 | 标准 | 处理方式 |
|---|
| 可写入 | AI 给出了信息(无论标注 ✅ 还是 ⚠️),且内容可以映射到画像字段 | 直接写入,不打扰用户 |
| 需补充 | AI 标注 ❌ 记忆不足,或完全未提及该字段 | 用 collect-basic-info 一致的问法补充 |
信息转化规则
| AI 给出的定性描述 | 转化为画像字段值 |
|---|
| "倾向于博士阶段" / "似乎是博士生" | → 研究阶段:博士生 |
| "文献整合较强" / "文献能力不错" | → 文献整合:4 分 |
| "一般" / "中等" | → 3 分 |
| "较弱" / "有待提升" | → 2 分 |
| "非常擅长" / "核心优势" | → 5 分 |
| "跨学科合作" | → 学术合作:跨学科合作 |
| "主要独立工作" | → 学术合作:主要独立工作 |
对于无法映射到分数的模糊描述(如"隐约记得你提过某个方向",但不知道具体是什么),才归为「需补充」。
步骤二:静默写入
将所有「可写入」的信息一次性写入画像(调用 write_profile)。标注 (来源:AI记忆)。
不展示写入了什么,不让用户逐条确认。
步骤三:仅补充缺失字段
统计画像中还有哪些关键字段为空。仅对这些字段提问,使用与 collect-basic-info 完全一致的问法:
每次只问一个问题,优先 ask_choice。
例如:
- 研究方法缺失 → ask_choice: "你主要采用哪种研究方法?" options: [实验法/理论推导/计算建模/数据驱动/质性研究/混合方法]
- 学术合作缺失 → ask_choice: "你的学术合作情况?" options: [实验室内部/跨机构/跨学科/都有/独立工作]
- 技术能力缺失 → ask_text: "请列举你主要使用的编程语言和科研工具。"
- 能力评分缺失 → 逐个 ask_rating(哪个缺就问哪个,不缺的不问)
如果用户选「其他」→ 追问 ask_text 让用户补充。
如果所有关键字段都已从 AI 记忆中获取,则跳过整个步骤三。
步骤四:必须确认的字段
即使 AI 记忆中有姓名和机构信息,这两项也必须让用户确认或自定义。
4a — 调用 ask_text:
- question: "请为你的数字分身起一个名字(可以是真名、昵称或任何你喜欢的称呼)。"
- placeholder: "如:张三、Dr. DDL、量子猫... 随你喜欢"
4b — 如果 AI 记忆中有机构信息:
调用 ask_choice:
- question: "AI 记忆显示你的所在机构是「[机构名]」,是否正确?"
- options: [{id:"yes",label:"正确"}, {id:"modify",label:"需要修改"}]
若选"需要修改" → ask_text 收集
如果 AI 记忆中没有机构信息:
调用 ask_text:
- question: "你所在的机构和团队方向是?"
- placeholder: "如:XX大学XX学院,导师做计算建模方向"
4c — 调用 write_profile 保存完整画像
步骤五:后续衔接
根据画像完整度判断下一步:
-
若基础信息完整,量表维度为空(最常见情况):
调用 ask_choice:
- question: "AI 记忆已成功导入,基础信息已完整!接下来你可以:"
- options:
- {id: "infer", label: "让 AI 推断量表维度(快速,约 5 分钟)", description: "结果标注「AI推断」,可随时用量表校对"}
- {id: "done", label: "暂时到这里"}
选"推断" → 调用 read_skill("infer-profile-dimensions")
-
若基础信息仍有空白:
调用 ask_choice:
- question: "AI 记忆已导入!不过还有一些字段未能获取,建议继续补充。"
- options: [{id: "continue", label: "继续补充"}, {id: "later", label: "暂时到这里"}]
选"继续" → 回到 collect-basic-info 补充空白字段
-
若画像已相当完整:
调用 show_actions:
- message: "AI 记忆已成功导入!画像相当完整。"
- buttons: [{id: "view", label: "查看完整画像", href: "/profile", style: "primary"}, {id: "scale", label: "量表校对", href: "/scales", style: "secondary"}]