# 会话监督 PRD ## 文档信息 | 项目 | 内容 | | --- | --- | | 状态 | 设计中 | | 版本 | 0.1 | | 日期 | 2026-08-13 | | 依赖 | [自动化平台总体设计](./automation-platform-architecture.md) | | 体验参考 | GoodBuddy 魔法笔记 AI 评论流 | ## 1. 背景 GoodBuddy 的魔法笔记已经提供一种有价值的交互:用户持续写作,AI 在右侧以长评、建议和 警告进行评论,用户可以选择综合、扩展、润色、质疑或发散方向。该能力是内容分析,不是 会话监督: - 只分析当前笔记或待办文本。 - 不观察聊天任务、工具调用、目标、预算或成果。 - 不参与任务状态机。 - 不引用具体会话步骤。 - 不支持关注、暂停和解决流程。 随着目标任务和并行实验出现,用户需要一个与执行 Agent 相互独立的观察者,帮助发现偏题、 遗漏、矛盾、证据不足、循环、成本失控和潜在风险。 ## 2. 产品定义 会话监督是在明确范围和策略下,对 Conversation、Task、AutomationRun 或 ExperimentRun 的可见事件进行独立观察,产生带证据的评论、告警和人工介入请求。 它不是: - 第二个替用户发言的聊天 Agent。 - 隐藏推理查看器。 - 工具审批器。 - 可以绕过安全边界的“总管理员”。 - 自动修正执行过程的通用控制器。 ## 3. 核心产品判断 建议增加会话监督,首期采用“魔法笔记式右侧评论流”,但只开放以下能力: ```text 观察 → 评论 / 警告 → 用户查看证据 → 用户忽略、采纳、询问、暂停或调整任务 ``` 首期模型监督不自动暂停。只有现有确定性安全规则、预算和用户显式配置的硬门禁可以自动暂停。 ## 4. 已确认的产品决策 1. 监督默认关闭,由用户对会话、任务、自动化或实验显式启用。 2. 监督只读取用户可查看的消息、工具事件、状态、指标、成果摘要和目标。 3. 不读取、推断或保存模型隐藏推理链。 4. 每条重要判断必须引用具体消息、工具、步骤、指标或成果。 5. 模型监督默认只评论、警告或请求人工复核。 6. 确定性监督负责权限、预算、Schema、幂等和硬停止条件。 7. 监督器不能自动批准工具、扩大范围、修改安全策略或替用户发送消息。 8. 监督评论不是长期事实,默认不进入记忆。 9. 监督调用使用独立预算和低于前台对话的优先级。 10. 同一个事件不能同时产生重复页内警告、评论和全局通知。 ## 5. 目标 ### 5.1 用户目标 - 在重要会话旁获得不中断主对话的独立评论。 - 及时发现目标偏移、缺少证据、相互矛盾、重复循环和遗漏要求。 - 点击监督意见查看对应证据,而不是接受无来源判断。 - 对监督意见进行采纳、忽略、标记误报或追问。 - 对自动任务设置更严格的监督策略和人工检查点。 ### 5.2 产品目标 - 为普通会话、目标任务和实验提供统一监督契约。 - 让确定性安全门禁与模型质量判断保持分层。 - 保存有界、可审计的监督事件,而非复制完整会话。 - 将用户反馈用于调整规则和评估监督器,但不自动训练或改策略。 ## 6. 非目标 - 不展示内部 Chain of Thought。 - 不持续监控其他应用、键盘、麦克风或屏幕。 - 不把 Supervisor 设为拥有所有工具的超级 Agent。 - 不自动修改用户消息或助手回答。 - 不保证识别所有事实错误、偏见或安全风险。 - 不把一次模型警告作为任务失败的确定性依据。 - 不在首期支持 Supervisor 与执行 Agent 自主多轮辩论。 - 不让 Supervisor 读取未授权项目、会话、知识库或记忆。 ## 7. 监督对象 | 对象 | 观察内容 | 典型用途 | | --- | --- | --- | | 普通会话 | 用户消息、助手回答、引用、工具事件 | 质量和证据评论 | | 任务 | 目标、步骤、状态、工具、成果 | 偏离、循环和失败分析 | | 自动化 Run | 触发、协议、预算、审批、指标 | 无人值守关注 | | 实验 Run | 协议、变量、指标、证据 | 协议一致性 | | 实验整体 | 各 Run 结算和比较 | 评估公平性与无结论提示 | 每个监督会话只能绑定一个主对象,并继承其项目范围。 ## 8. 监督模式 ### 8.1 评论方向 借鉴魔法笔记,普通会话支持: | 模式 | 行为 | | --- | --- | | 综合 | 平衡总结目标、进展、风险和下一步 | | 质疑 | 检查逻辑跳跃、前提、反例和证据 | | 证据 | 检查重要结论是否有可追溯依据 | | 目标 | 检查是否回应用户目标和约束 | | 风险 | 检查权限、隐私、外部影响和不可逆行为 | 自动化和实验可组合多个检查维度,不用方向单选替代确定性规则。 ### 8.2 触发方式 | 方式 | 说明 | | --- | --- | | 手动 | 用户点击“检查当前会话” | | 每次回复后 | 助手一轮完成后异步分析 | | 每 N 步 | 自动化或实验按有界步骤间隔分析 | | 关键事件 | 工具失败、预算 80%、等待审批、指标异常 | | Run 结束 | 进行最终监督回顾 | 首期优先手动和每次回复后。草稿输入不发送给监督器,除非未来明确增加类似魔法笔记的 草稿评论模式。 ### 8.3 干预级别 ```ts type SupervisorAction = | 'continue' | 'comment' | 'warn' | 'request_review' | 'pause' | 'stop' ``` - 模型 Supervisor 首期只可产生前四种。 - `pause` 和 `stop` 只来自确定性门禁或用户操作。 - 后续若允许模型建议暂停,仍需确定性策略把建议转换为 `request_review` 或经过用户预授权。 ## 9. 观察输入 ### 9.1 可见输入 - 当前对象的名称、目标和约束。 - 最近有界消息。 - 工具名称、状态、参数摘要和输出摘要。 - 任务和子任务状态。 - 成果标题、类型、大小和有界摘要。 - 引用和知识检索诊断。 - 预算使用。 - 明确配置的监督规则。 - 已解决或被忽略的近期监督意见摘要。 ### 9.2 禁止输入 - API Key、Token、Cookie 和认证头。 - 模型隐藏推理。 - 未授权文件和完整私人文档。 - 其他项目、会话或实验 Run 的数据。 - 原始无限长度工具输出。 - 已删除或用户要求忘记的记忆。 ### 9.3 上下文窗口 - 普通会话默认最近 12 条消息和最多 24,000 字符。 - 任务按最近 20 个关键事件和当前目标组装。 - 长会话先使用确定性提取,再由监督器处理有界输入。 - 不能把 Supervisor 自己的旧评论无限回填,最多保留近期未解决摘要。 ## 10. 监督输出 ```ts type SupervisorDecision = { action: | 'continue' | 'comment' | 'warn' | 'request_review' category: | 'goal_drift' | 'missing_requirement' | 'evidence_gap' | 'contradiction' | 'repetition' | 'quality' | 'risk' | 'budget' severity: 'info' | 'low' | 'medium' | 'high' title: string content: string evidence: SupervisorEvidenceRef[] confidence: number suggestedActions: SupervisorSuggestedAction[] } ``` 证据引用可以指向: - `messageId` - `toolCallId` - `taskEventId` - `artifactId` - `metricId` - `approvalId` 没有有效证据时,严重度最多为 `low`,且必须显示“推测”。 ## 11. 确定性监督 以下检查由代码执行: - Ask 出现写工具请求。 - 工具或路径超出计划快照。 - 未经批准的跨项目或跨分区读取。 - Token、时间、工具、子任务和成果预算。 - 幂等键冲突或结果未知。 - 输出 Schema 不匹配。 - 实验 Run 读取其他 Run 数据。 - 硬停止条件和必填成果。 确定性监督可以阻止、暂停或终止运行。结果必须包含规则 ID、实际值、阈值和触发事件, 不通过模型重新解释才能生效。 ## 12. 模型监督 适合判断: - 回答是否偏离用户问题。 - 计划是否遗漏明确要求。 - 重要结论是否缺少证据。 - 当前回答与前文是否矛盾。 - 是否重复尝试而没有进展。 - 是否存在值得用户注意的模糊风险。 模型监督输出严格经过 Schema 校验。格式错误最多修复一次;失败不阻塞普通前台会话, 但在配置为自动化门禁时必须明确记录“监督不可用”,不能假装检查通过。 ## 13. 用户交互 ### 13.1 右侧评论流 复用魔法笔记的体验方向: - 长评卡。 - 建议卡。 - 警告卡。 - 证据链接。 - 评论方向和时间。 每条意见操作: - 查看证据。 - 采纳建议。 - 追问。 - 忽略。 - 标记误报。 - 对自动化请求暂停。 “采纳”只是把建议带入输入框、计划草稿或任务操作,不让 Supervisor 直接执行。 ### 13.2 会话输入区 提供监督状态入口: ```text 监督:关闭 / 综合 / 质疑 / 证据 / 目标 / 风险 ``` 这是持久二元启用加方向选择: - 是否启用使用共享 Switch,`role="switch"`。 - 方向使用 `SegmentedControl` 或上下文单选菜单。 - 不把开关和方向做成一组含义不清的页签。 ### 13.3 关注状态 会话或任务列表显示未解决意见数量和最高严重度,不能只用颜色。 只有 `request_review`、高风险警告或确定性暂停触发全局通知。 ## 14. 解决流程 ```text open → acknowledged → resolved → dismissed → false_positive ``` - `acknowledged`:用户已查看,尚未解决。 - `resolved`:用户或后续运行说明已处理。 - `dismissed`:不采纳,但不一定是误报。 - `false_positive`:明确标记判断不正确。 后续监督输入可以包含未解决意见摘要,已解决意见默认不重复提醒。 ## 15. 与任务控制的关系 Supervisor 建议“暂停”时: 1. 创建 `request_review`。 2. 在任务和会话界面显示原因和证据。 3. 用户选择继续、暂停、调整目标或取消。 4. 用户操作进入任务审计。 确定性门禁暂停时: 1. Run 进入 `paused` 或 `waiting_approval`。 2. 显示规则、阈值和实际值。 3. 只有满足规则或用户完成对应审批后才能恢复。 4. 模型评论不能覆盖门禁。 ## 16. 与记忆的关系 - 监督评论默认保存在监督记录,不属于长期记忆。 - 用户采纳后可以手动创建记忆候选。 - “事实错误”“用户偏好”等监督判断不能自动写入 Project 或 Global。 - 多次被用户标记误报的模式进入监督评估数据,不直接改变 Prompt。 - 监督器可以读取绑定范围内的已确认记忆,但必须在证据中标明记忆来源。 ## 17. 数据模型建议 ```ts type SupervisorSession = { id: string projectId?: string targetType: 'conversation' | 'task' | 'automation_run' | 'experiment' targetId: string enabled: boolean mode: 'general' | 'challenge' | 'evidence' | 'goal' | 'risk' triggerPolicy: SupervisorTriggerPolicy budget: SupervisorBudget } type SupervisorRecord = { id: string sessionId: string source: 'deterministic' | 'model' decision: SupervisorDecision status: | 'open' | 'acknowledged' | 'resolved' | 'dismissed' | 'false_positive' createdAt: string resolvedAt?: string } ``` 证据关系建议独立表或有界结构化 JSON,并在读取时重新验证对象归属。 ## 18. 安全与隐私 1. Supervisor 使用独立可信系统指令,所有观察输入视为不可信数据。 2. 默认不给 Supervisor 任何工具。 3. 即使后续提供只读证据工具,也只能读取绑定对象和明确范围。 4. Supervisor 不接收 Runtime 授权回调,不能请求工具批准。 5. 普通会话监督失败不影响主回答;自动化配置的强制监督失败进入明确关注状态。 6. 评论和通知不包含完整私人消息,证据点击后才在原对象中查看。 7. Renderer 传入的 Evidence ID 必须由 Main 重新验证归属。 8. 删除会话时按产品数据保留策略删除或匿名化监督记录。 9. 用户关闭监督后停止新分析,但保留历史,除非用户明确删除。 ## 19. 性能与预算 - Supervisor 使用独立后台并发池,默认全局并发 1。 - 前台回复完成后异步运行,不延迟主回答呈现。 - 同一会话同时只运行一次监督分析,新事件合并为下一次分析。 - 普通会话每 30 秒最多自动分析一次。 - 自动化按步骤或关键事件节流。 - 达到 Supervisor 预算时显示“监督已暂停”,不继续产生费用。 ## 20. 实施顺序 1. 定义监督会话、记录、证据和解决状态。 2. 上线普通会话手动检查和右侧评论流。 3. 增加每次回复后异步监督、节流和预算。 4. 接入任务和自动化的确定性观察。 5. 增加目标、证据和无进展模型检查。 6. 接入实验协议一致性监督。 7. 建立误报和有用性评估,不自动改 Prompt。 ## 21. 验收标准 - [ ] 监督默认关闭,用户可对单个会话显式启用。 - [ ] Supervisor 只读取当前对象的有界可见事件。 - [ ] 隐藏推理、密钥和未授权内容不进入监督输入。 - [ ] 每条中高严重度意见都有可点击证据。 - [ ] 无证据推测不会显示为高严重度事实。 - [ ] 模型监督不能自动暂停、终止、批准工具或替用户发言。 - [ ] 确定性门禁不依赖模型判断即可阻止越权和超预算行为。 - [ ] 主会话回答不等待后台 Supervisor 完成。 - [ ] 用户可采纳、忽略、标记误报和解决意见。 - [ ] 监督评论默认不进入长期记忆。 - [ ] 自动化强制监督不可用时明确请求关注,不假装检查通过。 - [ ] Supervisor 预算耗尽后停止新调用并显示状态。