docs/workspace/compare-evaluation-analysis/history/evaluation-redesign-overview.md
本文档描述 下一阶段重构设计目标,不是当前代码事实记录。 当前代码现状请优先参考:
current-analysis-feature-map.mdfindings.mdprogress.md
这一阶段不再只是修正旧 compare 的语义,而是要建立一套更稳定的评估体系:
分析评估对比评估聚焦内容(focus) 升级为所有分析 / 评估任务的最高优先级输入。分析作用在左侧工作区,评估对象是“提示词设计本身”。
特点:
单结果评估作用在右侧单个测试结果上,评估对象是“一次执行快照”。
特点:
对比评估作用在右侧多个测试快照上,评估对象是“一组执行证据”。
特点:
这条规则对三类任务全部成立:
左侧分析:
右侧评估:
评估功能不应假设:
正确理解是:
当前最值得统一的,不是再调 result / compare 的字段名,而是把输入拆成三个层次:
target:当前工作区中可被修改的对象testCases:公共测试用例snapshots:每一次真实执行快照export interface EvaluationTarget {
mode: {
functionMode: 'basic' | 'pro' | 'image'
subMode: string
}
workspacePrompt: string
referencePrompt?: string
designContext?: DesignContext
}
含义:
workspacePrompt:唯一可修改对象referencePrompt:可选参考,如 v0 或工作区进入分析前的原始内容designContext:只用于左侧分析的设计态上下文export interface TestCase {
id: string
label?: string
input: TestCaseInput
sharedSettings?: SharedExecutionSettings
}
含义:
export interface ExecutionSnapshot {
id: string
label: string
testCaseId: string
promptRef: PromptRef
promptText: string
output: string
reasoning?: string
modelKey?: string
settingsOverride?: Partial<SharedExecutionSettings>
executionInput?: {
label: string
content: string
summary?: string
}
}
含义:
promptText 是实际执行 promptexecutionInput 只放“与 testCase 公共输入不同、或需要额外表达的执行态证据”分析:
export interface AnalysisRequest {
type: 'analysis'
target: EvaluationTarget
iterateRequirement?: string
focus?: FocusBrief
}
右侧评估:
export interface ExecutionEvaluationRequest {
type: 'execution-evaluation'
view: 'single' | 'compare'
target: EvaluationTarget
testCases: TestCase[]
snapshots: ExecutionSnapshot[]
focus?: FocusBrief
compareHints?: CompareAnalysisHints
}
多测试能力的关键不是“支持更多 variant”,而是支持:
这套结构下:
testCases 里出现一次snapshots.length 不同focus 的设计地位:最高优先级输入focus 不是备注,是任务切换器当用户填写聚焦内容时,它不只是“补充说明”,而是改变本次任务的主目标。
因此:
focus:执行默认分析 / 评估任务focus:执行“用户优先问题驱动”的定向分析 / 评估任务export interface FocusBrief {
content: string
source: 'user' | 'system'
priority: 'highest'
}
只要存在 focus,就必须满足:
summary 必须先回应 focusimprovements 至少 1 条直接回应 focuspatchPlan 若非空,至少 1 条直接回应 focusfocusfocus 指向的问题,必须明确说明当满足以下条件时:
应视为:
重点不应只放在“哪个模型更强”,而应分析:
它仍属于 compare evaluation,但需要额外的分析提示。
建议通过 compareHints 显式建模:
export interface CompareAnalysisHints {
sameTestCaseAcrossSnapshots: boolean
samePromptAcrossSnapshots: boolean
crossModelComparison: boolean
}
必要时可以再加:
export interface SnapshotComparisonGroup {
groupId: string
basis: 'same-prompt-same-input-cross-model' | 'same-input-cross-prompt'
snapshotIds: string[]
}
左侧分析:
target.workspacePrompt右侧评估:
TestCase.input = { kind: 'text', text }promptTextoutputmodelKey左侧分析:
target.designContext = variable-design右侧评估:
TestCase.input = { kind: 'variables', values }executionInput.content = 渲染后的实际输入executionInput.summary = 变量值摘要左侧分析:
target.designContext = conversation-design右侧评估:
TestCase.input = { kind: 'conversation', messages, tools? }executionInput.content = 当前列真正发送给模型的对话快照左侧分析:
target.workspacePrompt右侧评估(未来):
TestCase.input = { kind: 'image', text?, imageIds? }目标:
prompt-only / prompt-iterate / result / compare 输入协议,重构成更稳定的任务模型建议:
AnalysisRequestExecutionEvaluationRequestview = single | compareFocusBriefCompareAnalysisHints目标:
resultTargets + comparePayload 的拼装习惯建议:
buildAnalysisTarget()buildExecutionEvaluationRequest(view)目标:
建议:
analysis 1 套主模板execution-single 1 套主模板execution-compare 1 套主模板focus 和跨模型 compare 通过模板条件块切换建议统一:
分析结果评估对比评估focus 输入框文案应更明确表达“优先问题”,而不是弱语义备注一句话总结: