12 KiB
12 KiB
持续学习与评估门 PRD
文档信息
| 项目 | 内容 |
|---|---|
| 状态 | 设计中,远期能力 |
| 版本 | 0.1 |
| 日期 | 2026-08-13 |
| 依赖 | 自动化平台总体设计、并行实验 PRD、分区记忆 PRD |
1. 背景
智能心跳已经可以生成摘要、后续任务和记忆候选,但这还不是完整学习:
- 候选是否改善未来行为没有评估。
- 一条反思是否会被检索和使用并不确定。
- 没有 Baseline、回放集、Shadow、晋升和回滚。
- 没有持续监控候选生效后的收益与退化。
- 如果允许系统直接修改 Prompt、Skill 或规则,可能发生静默劣化。
持续学习必须建立为可观察、可评估、可批准、可回滚的闭环,而不是“让模型自动改自己”。
2. 产品定义
Observe
→ Propose candidate
→ Validate structure and safety
→ Evaluate against baseline
→ Shadow
→ Promote with approval
→ Monitor
→ Keep, revise, rollback or archive
学习产物只有在改变未来行为后才算生效;只保存一条 Reflection 仍属于记忆候选。
3. 已确认的产品决策
- 评估门必须先于任何自动应用能力上线。
- 新候选默认
candidate,通过离线评估后先进入shadow。 - 第一阶段只允许人工晋升。
- 每次晋升必须记录 Baseline、候选、评估结果、作用域和回滚版本。
- 学习不能修改安全边界、工具审批、目录权限、沙箱或 Electron 配置。
- 失败案例和用户负反馈只作为评估数据,不直接成为新规则。
- 回放案例必须脱敏、版本化,并得到用户明确选择或来自仓库公开样例。
- 模型评估不是唯一真值,优先使用确定性验收和人工反馈。
- 生效后的候选继续监控,发生退化可自动停用,但不能自动换上另一个候选。
- 没有足够证据时保持
inconclusive,不强行晋升。
4. 学习产物
首期只支持:
| 产物 | 作用 | 是否可自动应用 |
|---|---|---|
| Memory | 改善相关上下文召回 | 否,人工确认 |
| Automation Template | 改善目标、步骤、提示或预算默认值 | 否,创建新草稿 |
| Prompt Variant | 用于实验比较 | 否 |
| Rubric | 改善评估标准 | 否 |
| Retrieval Preference | 调整特定 Automation 的检索配置候选 | 否 |
后续评估:
| 产物 | 风险 |
|---|---|
| Skill | 可能扩大行为和工具使用 |
| Procedure | 可能长期影响多个任务 |
| Non-security Rule | 可能阻断或改变行为 |
| Agent Preference | 可能产生难以解释的个性漂移 |
永久禁止自动学习修改:
- 工具权限和审批策略。
- 工作区根目录和文件访问范围。
- 网络、远程消息和电脑控制权限。
- Electron 安全设置。
- API Key、凭据和 Provider Endpoint。
- 删除、支付、发布和生产操作政策。
5. 候选来源
- 用户对回答、任务或 Supervisor 意见的显式反馈。
- 智能心跳提出的重复模式。
- 自动化 Run 的成功与失败比较。
- 并行实验结论。
- 回放评估发现的稳定差异。
- 用户手动创建。
候选必须包含:
- 作用域。
- 产物类型。
- 来源证据。
- 预期改善的指标。
- 可能影响的行为。
- 风险级别。
- Baseline 引用。
- 建议的评估集。
模型不能仅凭一条成功案例宣称“已学习”。
6. 状态机
candidate
→ evaluating
→ rejected
→ inconclusive
→ shadow
→ awaiting_approval
→ promoted
→ paused
→ rolled_back
→ archived
| 状态 | 含义 |
|---|---|
candidate |
尚未评估 |
evaluating |
正在运行离线评估 |
rejected |
明确退化、安全不合格或无效 |
inconclusive |
证据不足 |
shadow |
计算候选决策但不影响真实行为 |
awaiting_approval |
达到晋升标准,等待用户 |
promoted |
已作为指定作用域的当前版本 |
paused |
暂停影响,保留版本 |
rolled_back |
已恢复前一版本 |
archived |
不再评估和使用 |
7. 评估案例
7.1 案例来源
优先级:
- 仓库内公开、无隐私的固定评测样例。
- 用户手动创建的案例和期望。
- 用户明确选择并脱敏的历史会话或任务。
- 实验中产生、经用户批准保留的案例。
禁止默认采样所有私人会话用于学习。
7.2 案例结构
type EvaluationCase = {
id: string
suiteId: string
input: EvaluationInput
assertions: EvaluationAssertion[]
forbiddenBehaviors: EvaluationAssertion[]
source: EvaluationCaseSource
sensitivity: 'public' | 'private_local'
version: number
}
断言可以是:
- 输出符合 Schema。
- 包含或不包含确定文本模式。
- 引用来自允许知识库。
- 不调用工具。
- 任务状态和成果存在。
- 测试命令通过。
- 人工评分。
- 模型 Rubric 分项。
7.3 冻结
一次评估冻结:
- 案例版本。
- Baseline 版本。
- Candidate 版本。
- Runtime 和模型。
- 知识、记忆和工作区快照。
- 预算。
- 评估器版本。
设置变化不改变已开始的评估。
8. 评估门
8.1 判定
type GateVerdict = {
decision: 'reject' | 'inconclusive' | 'shadow'
baselineMetrics: MetricValue[]
candidateMetrics: MetricValue[]
regressions: Regression[]
caseIds: string[]
evaluatorVersions: string[]
notes: string
}
最小规则:
- 任何安全、权限或硬约束退化立即 Reject。
- 确定性质量指标不能低于配置阈值。
- 成本和延迟退化必须在允许范围。
- 开放质量指标至少非退化,或收益足以覆盖明确成本。
- 案例数或评估器不足时 Inconclusive。
- 通过离线门只进入 Shadow,不直接 Promote。
8.2 Baseline
Baseline 是当前已生效版本或明确的无候选行为。不能用另一个同时变化的实验配置充当 Baseline。
8.3 多模型评估
模型 Rubric 可使用与被评候选不同的模型,但必须:
- 固定版本和提示。
- 隐藏候选身份。
- 随机化顺序。
- 保存分项和证据。
- 在关键晋升中结合确定性或人工评估。
9. Shadow
Shadow 模式:
- 接收与当前真实行为相同的有界输入。
- 计算候选会做出的选择或输出。
- 不调用有副作用工具。
- 不替换用户看到的结果。
- 不写入长期记忆。
- 保存与实际结果可比较的指标。
对于成本较高的候选:
- 只对抽样的已授权案例运行。
- 用户可设置月度调用上限。
- 系统繁忙时延后。
Shadow 达到配置的最小观察数且无安全退化后进入 awaiting_approval。
10. 晋升
晋升对话框必须显示:
- 候选将改变什么。
- 作用域和受影响计划。
- 来源。
- Baseline 与 Candidate 指标。
- 失败案例和不确定性。
- 额外成本。
- 回滚版本。
用户可以:
- 晋升。
- 继续 Shadow。
- 拒绝。
- 缩小作用域后重新评估。
晋升采用原子版本切换。不能在一半对象上成功、一半失败。
11. 上线后监控
监控:
- 使用次数。
- 成功、失败和无结论。
- 确定性指标。
- 用户采纳、撤销和负反馈。
- Token、耗时和工具调用变化。
- Supervisor 警告变化。
自动暂停条件:
- 安全或权限硬约束失败。
- 确定性错误率超过阈值。
- 连续崩溃或格式失败。
- 成本超过批准上限。
自动暂停只恢复到上一已批准版本,并通知用户。系统不能自行选择新候选替代。
12. 回滚
- 每个 Promoted 产物有不可变版本。
- 保存前一版本和作用域绑定。
- 一键回滚使用原子切换。
- 回滚不删除失败版本,保留指标和原因。
- 当前有运行使用该版本时,只影响下一次 Run;紧急安全暂停可取消尚未开始的 Run。
- 被回滚候选再次晋升必须重新评估。
13. 衰减与归档
- 长期未使用的候选和 Shadow 可归档。
- Promoted 产物不因时间静默删除。
- Memory 类型遵守分区记忆的衰减规则。
- 评估案例变化后,相关候选标记为“评估过期”。
- 模型或 Runtime 大版本变化时,可要求重新回放。
- 归档保留不含私人正文的指标和版本元数据。
14. 信息架构
建议在自动化中心增加“学习”:
- 候选:来源、作用域、预期收益和风险。
- 评估中:进度、案例和预算。
- Shadow:观察数、差异和成本。
- 待批准:晋升摘要。
- 已生效:当前版本、使用量和健康状态。
- 历史:拒绝、回滚和归档。
候选详情页签:
- 概览。
- 变更 Diff。
- 评估案例。
- 指标和失败。
- Shadow。
- 版本与回滚。
15. 数据模型建议
type LearningArtifact = {
id: string
scopeKind: 'global' | 'project' | 'automation' | 'agent'
scopeId?: string
kind:
| 'memory'
| 'automation_template'
| 'prompt_variant'
| 'rubric'
| 'retrieval_preference'
status:
| 'candidate'
| 'evaluating'
| 'rejected'
| 'inconclusive'
| 'shadow'
| 'awaiting_approval'
| 'promoted'
| 'paused'
| 'rolled_back'
| 'archived'
payload: JsonValue
sourceRefs: LearningSourceRef[]
baselineVersionId?: string
promotedVersionId?: string
createdAt: string
updatedAt: string
}
建议表:
learning_artifactslearning_artifact_versionsevaluation_suitesevaluation_casesevaluation_runsevaluation_resultsshadow_observationspromotion_eventsrollback_events
16. 安全与隐私
- Apply 层拒绝没有 Gate Verdict 的候选。
- 产物类型和目标作用域使用代码白名单。
- 安全与权限配置不在可学习目标白名单中。
- 私人评估案例只在本地使用,不导出或发送到未授权 Provider。
- Shadow 不调用有副作用工具。
- Candidate 内容和评估输出都视为不可信数据。
- Renderer 不能直接设置 Promoted 状态,Main 验证评估与审批。
- 删除私人评估案例后清理派生缓存和 Embedding。
- 日志不记录完整案例、Prompt、回答、文件或凭据。
- 自动暂停采用确定性条件,不依赖模型自由判断。
17. 实施顺序
严格顺序:
- 建立版本化评估案例和确定性断言。
- 复用并行实验运行 Baseline 与 Candidate。
- 实现 Gate Verdict,只有 Reject、Inconclusive 和 Shadow。
- 实现 Shadow,但不允许 Apply。
- 实现人工晋升和原子回滚。
- 实现上线监控和确定性自动暂停。
- 首先开放 Memory 和 Automation Template。
- 经过长期验证后再评估 Skill、Procedure 和非安全规则。
不能先做自动改 Prompt,再补评估门。
18. 验收标准
- 没有评估结果的候选无法晋升。
- 安全、权限或硬约束退化必定 Reject。
- 评估不足时显示 Inconclusive,不强行选优。
- Baseline、Candidate、案例、Runtime 和评估器都被冻结和版本化。
- Shadow 不影响用户结果、不调用副作用工具、不写长期记忆。
- 晋升前展示收益、退化、成本、作用域和回滚版本。
- 第一阶段只有用户可以批准晋升。
- 晋升和回滚采用原子版本切换。
- 生效后出现确定性严重退化时自动暂停并恢复上一批准版本。
- 系统不会自动选择另一个候选替代。
- 私人会话不会默认进入评估集。
- 安全策略、权限、目录、凭据和 Electron 配置不属于可学习产物。