14 KiB
会话监督 PRD
文档信息
| 项目 | 内容 |
|---|---|
| 状态 | 设计中 |
| 版本 | 0.1 |
| 日期 | 2026-08-13 |
| 依赖 | 自动化平台总体设计 |
| 体验参考 | GoodBuddy 魔法笔记 AI 评论流 |
1. 背景
GoodBuddy 的魔法笔记已经提供一种有价值的交互:用户持续写作,AI 在右侧以长评、建议和 警告进行评论,用户可以选择综合、扩展、润色、质疑或发散方向。该能力是内容分析,不是 会话监督:
- 只分析当前笔记或待办文本。
- 不观察聊天任务、工具调用、目标、预算或成果。
- 不参与任务状态机。
- 不引用具体会话步骤。
- 不支持关注、暂停和解决流程。
随着目标任务和并行实验出现,用户需要一个与执行 Agent 相互独立的观察者,帮助发现偏题、 遗漏、矛盾、证据不足、循环、成本失控和潜在风险。
2. 产品定义
会话监督是在明确范围和策略下,对 Conversation、Task、AutomationRun 或 ExperimentRun 的可见事件进行独立观察,产生带证据的评论、告警和人工介入请求。
它不是:
- 第二个替用户发言的聊天 Agent。
- 隐藏推理查看器。
- 工具审批器。
- 可以绕过安全边界的“总管理员”。
- 自动修正执行过程的通用控制器。
3. 核心产品判断
建议增加会话监督,首期采用“魔法笔记式右侧评论流”,但只开放以下能力:
观察
→ 评论 / 警告
→ 用户查看证据
→ 用户忽略、采纳、询问、暂停或调整任务
首期模型监督不自动暂停。只有现有确定性安全规则、预算和用户显式配置的硬门禁可以自动暂停。
4. 已确认的产品决策
- 监督默认关闭,由用户对会话、任务、自动化或实验显式启用。
- 监督只读取用户可查看的消息、工具事件、状态、指标、成果摘要和目标。
- 不读取、推断或保存模型隐藏推理链。
- 每条重要判断必须引用具体消息、工具、步骤、指标或成果。
- 模型监督默认只评论、警告或请求人工复核。
- 确定性监督负责权限、预算、Schema、幂等和硬停止条件。
- 监督器不能自动批准工具、扩大范围、修改安全策略或替用户发送消息。
- 监督评论不是长期事实,默认不进入记忆。
- 监督调用使用独立预算和低于前台对话的优先级。
- 同一个事件不能同时产生重复页内警告、评论和全局通知。
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 干预级别
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. 监督输出
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[]
}
证据引用可以指向:
messageIdtoolCallIdtaskEventIdartifactIdmetricIdapprovalId
没有有效证据时,严重度最多为 low,且必须显示“推测”。
11. 确定性监督
以下检查由代码执行:
- Ask 出现写工具请求。
- 工具或路径超出计划快照。
- 未经批准的跨项目或跨分区读取。
- Token、时间、工具、子任务和成果预算。
- 幂等键冲突或结果未知。
- 输出 Schema 不匹配。
- 实验 Run 读取其他 Run 数据。
- 硬停止条件和必填成果。
确定性监督可以阻止、暂停或终止运行。结果必须包含规则 ID、实际值、阈值和触发事件, 不通过模型重新解释才能生效。
12. 模型监督
适合判断:
- 回答是否偏离用户问题。
- 计划是否遗漏明确要求。
- 重要结论是否缺少证据。
- 当前回答与前文是否矛盾。
- 是否重复尝试而没有进展。
- 是否存在值得用户注意的模糊风险。
模型监督输出严格经过 Schema 校验。格式错误最多修复一次;失败不阻塞普通前台会话, 但在配置为自动化门禁时必须明确记录“监督不可用”,不能假装检查通过。
13. 用户交互
13.1 右侧评论流
复用魔法笔记的体验方向:
- 长评卡。
- 建议卡。
- 警告卡。
- 证据链接。
- 评论方向和时间。
每条意见操作:
- 查看证据。
- 采纳建议。
- 追问。
- 忽略。
- 标记误报。
- 对自动化请求暂停。
“采纳”只是把建议带入输入框、计划草稿或任务操作,不让 Supervisor 直接执行。
13.2 会话输入区
提供监督状态入口:
监督:关闭 / 综合 / 质疑 / 证据 / 目标 / 风险
这是持久二元启用加方向选择:
- 是否启用使用共享 Switch,
role="switch"。 - 方向使用
SegmentedControl或上下文单选菜单。 - 不把开关和方向做成一组含义不清的页签。
13.3 关注状态
会话或任务列表显示未解决意见数量和最高严重度,不能只用颜色。
只有 request_review、高风险警告或确定性暂停触发全局通知。
14. 解决流程
open
→ acknowledged
→ resolved
→ dismissed
→ false_positive
acknowledged:用户已查看,尚未解决。resolved:用户或后续运行说明已处理。dismissed:不采纳,但不一定是误报。false_positive:明确标记判断不正确。
后续监督输入可以包含未解决意见摘要,已解决意见默认不重复提醒。
15. 与任务控制的关系
Supervisor 建议“暂停”时:
- 创建
request_review。 - 在任务和会话界面显示原因和证据。
- 用户选择继续、暂停、调整目标或取消。
- 用户操作进入任务审计。
确定性门禁暂停时:
- Run 进入
paused或waiting_approval。 - 显示规则、阈值和实际值。
- 只有满足规则或用户完成对应审批后才能恢复。
- 模型评论不能覆盖门禁。
16. 与记忆的关系
- 监督评论默认保存在监督记录,不属于长期记忆。
- 用户采纳后可以手动创建记忆候选。
- “事实错误”“用户偏好”等监督判断不能自动写入 Project 或 Global。
- 多次被用户标记误报的模式进入监督评估数据,不直接改变 Prompt。
- 监督器可以读取绑定范围内的已确认记忆,但必须在证据中标明记忆来源。
17. 数据模型建议
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. 安全与隐私
- Supervisor 使用独立可信系统指令,所有观察输入视为不可信数据。
- 默认不给 Supervisor 任何工具。
- 即使后续提供只读证据工具,也只能读取绑定对象和明确范围。
- Supervisor 不接收 Runtime 授权回调,不能请求工具批准。
- 普通会话监督失败不影响主回答;自动化配置的强制监督失败进入明确关注状态。
- 评论和通知不包含完整私人消息,证据点击后才在原对象中查看。
- Renderer 传入的 Evidence ID 必须由 Main 重新验证归属。
- 删除会话时按产品数据保留策略删除或匿名化监督记录。
- 用户关闭监督后停止新分析,但保留历史,除非用户明确删除。
19. 性能与预算
- Supervisor 使用独立后台并发池,默认全局并发 1。
- 前台回复完成后异步运行,不延迟主回答呈现。
- 同一会话同时只运行一次监督分析,新事件合并为下一次分析。
- 普通会话每 30 秒最多自动分析一次。
- 自动化按步骤或关键事件节流。
- 达到 Supervisor 预算时显示“监督已暂停”,不继续产生费用。
20. 实施顺序
- 定义监督会话、记录、证据和解决状态。
- 上线普通会话手动检查和右侧评论流。
- 增加每次回复后异步监督、节流和预算。
- 接入任务和自动化的确定性观察。
- 增加目标、证据和无进展模型检查。
- 接入实验协议一致性监督。
- 建立误报和有用性评估,不自动改 Prompt。
21. 验收标准
- 监督默认关闭,用户可对单个会话显式启用。
- Supervisor 只读取当前对象的有界可见事件。
- 隐藏推理、密钥和未授权内容不进入监督输入。
- 每条中高严重度意见都有可点击证据。
- 无证据推测不会显示为高严重度事实。
- 模型监督不能自动暂停、终止、批准工具或替用户发言。
- 确定性门禁不依赖模型判断即可阻止越权和超预算行为。
- 主会话回答不等待后台 Supervisor 完成。
- 用户可采纳、忽略、标记误报和解决意见。
- 监督评论默认不进入长期记忆。
- 自动化强制监督不可用时明确请求关注,不假装检查通过。
- Supervisor 预算耗尽后停止新调用并显示状态。