Extend the existing heartbeat workspace with scoped work reviews, result-specific story graphs, source inspection, and pinned conversation or task feedback. Connect confirmed continuation and local knowledge entity previews through the desktop APIs, and preserve result history and user corrections in schema 43. Include focused regression tests, an isolated visual fixture, and implementation evidence. Full event-by-event replay, Experiment targets, no-change handling, and cancellation remain incomplete; this commit does not claim complete feature acceptance. Existing automatic plans remain active when the application entry is disabled. Release note: Review work progress in the Supervisor workspace, trace graph events to saved sources, and open a matching review from pinned conversation or task feedback.
140 lines
8.6 KiB
Markdown
140 lines
8.6 KiB
Markdown
# 监督者逻辑设计
|
||
|
||
日期:2026-09-23。状态:部分规则已接入产品,验证范围见[实施进度](./progress.md)。图中的连线表示逻辑依赖与数据流,不代表所有目标接口均已实现。
|
||
|
||
本文承接[监督者产品设计](./supervisor-prd.md)、[故事线图谱设计](../story-graph/prd.md)和[User Stories](./user-stories.md),定义触发、整理、展示与用户后续操作之间的关系。既有会话监督的证据和介入边界继续由[会话监督 PRD](./prd.md)约束。
|
||
|
||
## 整体逻辑架构
|
||
|
||
```mermaid
|
||
flowchart TB
|
||
subgraph Entry["入口与触发"]
|
||
App["监督者应用"]
|
||
Scope["关注范围、时间区间与整理策略"]
|
||
Manual["用户主动回顾"]
|
||
Heartbeat["智能心跳:按计划唤醒"]
|
||
end
|
||
|
||
subgraph Sources["已有内容与状态"]
|
||
Conversation["会话记录"]
|
||
Notes["魔法笔记"]
|
||
Work["任务状态与执行记录"]
|
||
Knowledge["现有知识库资料与检索引用"]
|
||
end
|
||
|
||
subgraph Supervisor["监督者 Agent"]
|
||
Collect["收集范围内的有界可见证据"]
|
||
Review["理解进展与变化,判断是否需要整理"]
|
||
Result["带来源的整理结果"]
|
||
Quiet["记录检查结果,保持安静"]
|
||
end
|
||
|
||
subgraph Outputs["结果与展示"]
|
||
Recap["工作回顾:阶段决定、变化、未解决事项"]
|
||
Feedback["监督反馈:聊天右侧展示"]
|
||
Graph["故事线图谱:事件、实体、关系与演变"]
|
||
end
|
||
|
||
subgraph Actions["用户后续操作"]
|
||
Verify["核对来源、确认或纠正整理结果"]
|
||
Continue["预览所选上下文后继续讨论"]
|
||
Save["预览并确认新建或补充本地知识条目"]
|
||
end
|
||
|
||
App --> Scope
|
||
App --> Manual
|
||
Scope --> Collect
|
||
Manual --> Collect
|
||
Heartbeat --> Collect
|
||
Conversation --> Collect
|
||
Notes --> Collect
|
||
Work --> Collect
|
||
Knowledge --> Collect
|
||
Collect --> Review
|
||
Review -->|需要整理| Result
|
||
Review -->|无有效新变化| Quiet
|
||
Result --> Recap
|
||
Result --> Feedback
|
||
Result --> Graph
|
||
Recap -->|定位阶段| Graph
|
||
Feedback -->|定位相关对象| Graph
|
||
Recap --> Verify
|
||
Graph --> Verify
|
||
Verify -->|更新确认状态或用户修订| Result
|
||
Graph --> Continue
|
||
Continue --> Conversation
|
||
Graph --> Save
|
||
Save -->|仅写入可写的本地条目| Knowledge
|
||
```
|
||
|
||
心跳负责唤醒,监督者负责判断;模型不因被称为 Agent 而自动获得工具权限。收集证据由应用按所选范围提供,现有心跳不具备的知识库或笔记接入属于后续工作。
|
||
|
||
工作回顾、监督反馈和图谱引用同一次整理的结论与来源。展示可以裁剪为阶段摘要、会话卡片或图形,但不能分别维护相互矛盾的结论。一次整理可以没有图谱变更,也可以有整理结果但无需主动通知。
|
||
|
||
结果定位以结果 ID 为准。历史选择不能回退到其他项目的最新图谱;侧栏需同时匹配目标来源和范围,没有匹配结果时显示空态。固定目标失效时保留目标并显示读取错误,用户可取消固定。跨 run 仅允许引用同 scope 的 Main 候选实体,模型局部 ID 和同名均不构成身份。每次结果保留当次描述,自动更新不得改写已确认字段或其他结果;人工修改仅更新当前对象与明确选定的结果。
|
||
|
||
应用维护来源正文;监督者维护其产生的阶段总结、事件关联、实体描述与关系。图谱是这些对象的视图。图中“纠正”只更新整理内容或关系,修改来源正文仍需进入对应应用的编辑流程。
|
||
|
||
## 图谱对象关系
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
Story["故事线"]
|
||
Event["时间事件"]
|
||
Change["事件与实体的关联:提出、补充、验证、修订"]
|
||
Entity["知识实体"]
|
||
Relation["知识关系:类型、理由、确认状态"]
|
||
Summary["阶段总结"]
|
||
Interval["时间区间与来源范围"]
|
||
Reference["来源引用:所属对象、位置、可用版本信息"]
|
||
Original["原内容:会话、笔记、本地资料或已保存外部片段"]
|
||
|
||
Story -->|组织| Event
|
||
Story -->|关联,可跨故事共享| Entity
|
||
Story -->|按阶段回顾| Summary
|
||
Summary -->|限定覆盖范围| Interval
|
||
Summary -->|归纳范围内事件| Event
|
||
Summary -->|概括当时的认识| Entity
|
||
Event -->|一个事件可影响多个实体| Change
|
||
Change -->|一个实体可经历多个事件| Entity
|
||
Entity -->|关系起点| Relation
|
||
Relation -->|关系终点| Entity
|
||
Event -->|原始依据| Reference
|
||
Change -->|变化依据| Reference
|
||
Relation -->|关联依据| Reference
|
||
Entity -->|支撑资料| Reference
|
||
Summary -->|结论依据| Reference
|
||
Reference -->|定位,不复制正文| Original
|
||
```
|
||
|
||
这里的关联对象用于说明关系自身也有类型和依据,不指定存储表。知识实体与来源为多对多关系;实体可以被多个故事引用,不能仅凭同名就合并。来源可用的版本信息沿用原内容能力,不要求为此复制完整来源历史。
|
||
|
||
外圈时间轴呈现事件及阶段标记,内部平铺实体;时间到实体的连线对应事件关联,实体间连线对应知识关系。时间轴上的同日聚合点只负责显示密集事件,不形成新的知识实体。
|
||
|
||
## 状态与处理规则
|
||
|
||
| 规则 | 条件或状态 | 处理与用户可见结果 | 需求与场景 |
|
||
| --- | --- | --- | --- |
|
||
| L1 范围 | 手动或定时触发 | 按本次所选范围、时间和输入预算收集证据;启用应用不扩大来源范围 | FR-S3、S4;US-S01 |
|
||
| L2 检查 | 没有有效新变化 | 记录检查结果,保留旧回顾,不重复通知;用户主动查看时仍可读取原结果 | FR-S4、S5;US-S03 |
|
||
| L3 整理 | 产生新的阶段认识或关联 | 回顾、反馈和图谱引用同一整理结果;是否主动反馈按反馈策略决定 | FR-S2、S5;US-S02、S04 |
|
||
| L4 失败 | 取消、失败或部分来源不可用 | 保留上次成功结果;显示当前运行状态、已覆盖与遗漏范围,支持重试;部分结果不标为完整 | FR-S6;US-S12 |
|
||
| L5 纠正 | 用户修改描述或确认关系 | 后续自动整理提出补充或修订建议,不静默覆盖用户内容;移除关系可撤销且不删除来源 | FR-S6、S9、FR-G4;US-S06、S10 |
|
||
| L6 历史 | 选择过去时刻或时间区间 | 使用当时已有的事件与认识;来源旧版不可恢复时提示,不以当前原文冒充旧版 | FR-S9、FR-G3、G5;US-S05、S07、S13 |
|
||
| L7 目标 | 侧栏跟随或固定 | 跟随时显示当前会话,固定时保持所选目标;切换聊天不改变固定目标 | FR-S5;US-S25 |
|
||
| L8 沉淀 | 用户选择写入知识库 | 先预览并确认,再新建或补充本地条目;已有条目提供打开入口,外部引用保持只读 | FR-S7、S8;US-S08、S09 |
|
||
| L9 继续 | 用户选择继续讨论 | 预览并确认上下文后进入会话;新内容在后续整理时纳入,不立即作为已确认知识 | FR-S3、S5;US-S11 |
|
||
| L10 展示 | 改变布局或输入方式 | 保留范围、回放时刻及选择;图形和文字列表访问相同对象与来源 | FR-G2、G5、G6;US-S15 |
|
||
|
||
整理运行状态与内容确认状态分开:一次运行成功不意味着所有自动归纳均已被用户确认。运行从待处理进入整理中,再结束为成功、无新变化、部分完成、失败或已取消;重试作为新一次整理显示,不能将失败运行改称成功。具体运行标识与现有心跳状态如何映射留待技术设计。
|
||
|
||
规则冲突时,先满足所选范围与既有观察边界,再保留用户修订和来源事实,最后应用自动归纳和展示策略。新增证据与已确认结论冲突时显示待核对差异,不能自动断言旧观点失效。
|
||
|
||
## 完整性与待定项
|
||
|
||
本设计覆盖触发、证据输入、静默检查、正常整理、取消与失败、跨视图共享结果、用户纠正、知识库写入及历史回放。它补充产品逻辑,不代表接口、持久化或迁移方案已经完成。
|
||
|
||
仍待产品决策:停用应用时计划及运行中任务的处理方式、事件触发与阶段识别条件、反馈频率与静默判定、实体合并与拆分的交互、时间轴比例和集中度含义。既有入口偏好、计划与运行记录的保留要求见 FR-S1、S2 和 US-S14。
|
||
|
||
技术设计需确认现有实体标识能否复用、来源定位与历史版本可用性、增量整理和并发运行如何避免重复结果、已有心跳计划如何兼容。按照现有能力选择最小实现,不预设新的历史快照、恢复框架或独立知识存储。
|