410 lines
14 KiB
Markdown
410 lines
14 KiB
Markdown
# 会话监督 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 预算耗尽后停止新调用并显示状态。
|