# 故事线模型改造设计 状态:2026-10-02 已确认的目标设计。第 1 步(共享时间线、事件起止与密度、跨项目开关)、第 2 步(故事归属与用户调整)和第 3 步(时间螺旋视图)已实现,见[实施进度](./progress.md);第 4、5 步尚未实现。本文定义监督回顾如何产出下一版故事线(时间螺旋、分层故事木片、经验 W),是 [3D 故事线图谱概念](../story-graph/3d-concept.md) 的数据来源合同。现有回顾流程见[回顾分块调度设计](./review-scheduling-design.md),现有图谱工具见 [Story Graph MCP 设计](./story-graph-mcp-design.md)。 ## 1. 结构总览 | 层 | 含义 | 来源 | | --- | --- | --- | | 全局(根) | 整条时间螺旋本身,即用户的全部经历;不是一片木片 | 所有来源 | | 项目木片 | 按会话所属项目划分;无项目归属的内容进入“未归属项目” | 会话归属,确定性,不调用模型 | | 跨项目故事 | 同时涉及多个项目或不属于任何项目的长期事情,例如长期偏好、学习方向 | 故事归属阶段 | | 功能木片 | 项目内的长期功能或主题 | 故事归属阶段 | | 子线索 | 事件量足够大的功能再拆分;小功能不拆 | 故事归属阶段 | | 经验 W | 从故事中形成、可复用到其他故事的经验,默认是全局对象 | 经验抽取阶段 | 全局不作为单独的“全局记忆”重复处理:它是根视图,读取同一套事件、故事和经验。查看某个项目时,只是以该项目为过滤条件。 ## 2. 已确认的决定 | 编号 | 决定 | | --- | --- | | SL-1 | 层级为 全局 › 项目 › 功能 › 子线索;子线索仅在功能事件量达到阈值时出现,阈值可在设置中调整 | | SL-2 | 跨项目或无项目的长期事情,作为全局根下的“跨项目故事”,与项目木片并列 | | SL-3 | 每个事件只归属一个主故事,可另外关联其他故事;关联不影响木片的长度和密度统计 | | SL-4 | 经验自动生成即可供 Agent 读取,不设确认门槛;标记“自动归纳”,用户可以编辑、合并、删除 | | SL-5 | 用户对故事和经验的调整(改名、合并、拆分、移动事件、编辑、删除)受保护,后续回顾不覆盖;删除的对象不会因同一证据再次生成 | | SL-6 | 注意力密度按来源统计:时段内的消息轮次与正文量,不由模型判断;只表示投入集中程度 | | SL-7 | 每个来源版本只提取一次,项目与全局共用提取结果和增量进度 | | SL-8 | 设置提供“跨项目关联”,默认关闭。关闭时新内容只关联本项目已有的知识;开启后可关联其他项目中的同一件事,跨项目故事也只在开启时生成 | ## 3. 回顾流程改造 ```text 采集来源(按来源版本增量) ↓ 批次提取:事件带开始/结束时间(取原始消息时间)、来源引用 ↓ 故事归属(新增,不读原文) · 项目:按会话归属确定 · 功能/子线索/跨项目:召回候选故事 → 一次模型调用判断归入已有、新建或暂不归类 ↓ 经验抽取(新增,低频,不读原文) · 规则挑候选:有明确结果的决定、多个故事中重复出现的做法、说明原做法问题的修订 · 有候选时一次模型调用:经验内容、形成依据、适用条件、边界 · 记录后续应用及结果 ↓ 导航摘要 → 发布 ``` 规则: - 故事跨回顾保持同一身份,沿用实体候选编号机制;长时间无事件的故事能被接回,不新建。 - 故事状态(进行中、已结束)必须有内容依据;长期无事件只标“暂无进展”,不推断结束。 - 允许“暂不归类”,不为凑层级强行归组;暂不归类的事件在项目下以淡色木片显示。 - 经验的每条依据必须对应到具体事件和来源,否则不保存;没有候选时不调用模型。 - 新增阶段失败时,已发布的提取结果和处理进度保留,可单独重试该阶段。 ## 4. 用户调整 图谱是可编辑的结果,不需要逐条审批: - 故事:改名、合并、拆分、调整层级、把事件移到其他故事。 - 经验:编辑内容与适用条件、合并重复、删除。 - 入口位于故事线图谱的详情面板与 3D 视图选中对象的详情中,共用同一组操作。 - 每次调整可撤销,并记录在活动记录的修改记录中。 ## 5. 展示与使用 - 故事线图谱新增 3D 视图,与现有平铺视图并列,几何、时间尺度、聚合规则沿用 [3D 概念](../story-graph/3d-concept.md);Three.js 仅在打开 3D 视图时加载,WebGL 不可用时使用平铺视图。 - MCP 增加按故事、按经验查询;经验返回时附“自动归纳 / 用户编辑”标记和依据。 - 心跳建议增加“故事长期无进展”和“已有经验可能适用于当前故事”。 - 工作回顾按故事组织:推进了哪些故事、新出现哪些故事、形成或应用了哪些经验。 ## 6. 存储 新增故事表(含层级与父故事)、事件与故事的归属/关联、经验表、经验依据与应用记录、用户调整记录;对应一次数据库升级。已有回顾结果在升级后按新流程重建,原始来源不变。 ## 7. 实施顺序与验收 | 步骤 | 内容 | 验收(真实数据副本 + `.env.deepseek.local` 中的 DeepSeek) | | --- | --- | --- | | 1 | 统一时间线(SL-7)、事件时间跨度与密度(SL-6) | 重叠回顾不产生重复事件;项目与全局不重复处理同一来源 | | 2 | 故事归属与用户调整(SL-1~SL-3、SL-5) | 多次增量回顾后故事不碎片化;间断后的事件接回原故事;调整不被覆盖 | | 3 | 3D 视图接入真实数据 | 长期数据下时间尺度与聚合正常 | | 4 | 经验抽取(SL-4) | 每条经验依据可追溯到原文;无候选时零额外调用 | | 5 | MCP、心跳建议、工作回顾页 | Agent 能按故事接手工作、按经验给出建议 |