docs/architecture/test-area-auto-iterate-one-round.md
说明:本文记录的是最初的一轮自动迭代方案。 最新设计已经进一步拆分为:
docs/architecture/structured-compare-and-evaluation-rewrite.mddocs/architecture/spo-thin-loop-ui-and-stop-rules.md因此,本文更适合作为“问题背景与早期方案说明”阅读,而不是当前唯一的实施规范。
我们已经在 basic-system 中拥有较完整的多槽位测试能力:
2 / 3 / 4 列version + modelrunAllVariantssnapshot 的证据分析因此,本期不再设计一个新的 SPO 实验台,而是把“朝目标自动迭代”的能力嵌入现有测试区。
这也更符合 prompt-optimizer 的定位:
在测试区中新增一个“自动迭代”配置入口。用户只需选择:
目标模型参考模型系统就自动完成:
workspace 提示词目标模型 / workspace 做优化basic-systemworkspace 草稿本设计不引入额外的“目标说明”表单,而是将目标识别收敛为一个结构化锚点提取过程。
目标由以下信息联合确定:
目标槽位
目标模型目标模型 / workspace 视为唯一待优化对象当前提示词中的显式约束
上一版本参考
目标模型 / 上一版本参考模型 / 上一版本参考模型差异
参考模型 / workspace 相对 目标模型 / workspace 的优势表现因此,“目标”不是一个额外配置文本,而是:
目标模型 + 当前系统提示词 + 上一版本参考 + 跨模型差异证据
这比抽象目标更贴近真实使用场景,也更适合结合我们现有测试功能。
在测试区顶部操作栏中,新增一个与“运行全部”并列的按钮:
自动迭代该按钮位于当前测试区上下文中,避免用户切换心智模型。
点击后弹出配置弹窗,V1 保持最小可用,仅包含:
目标模型参考模型弹窗辅助说明:
workspace弹窗主按钮建议文案:
生成预设并执行一轮一轮结束后,用户在原测试区看到新的 4 槽位结果。
同时提供一个轻量的“本轮总结”区域,至少包含:
V1 不要求新建复杂历史面板;保持轻量即可。
自动迭代使用固定的 4 槽位语义:
| 槽位 | 模型 | 版本 | 角色 |
|---|---|---|---|
| A | 目标模型 | workspace | 主优化对象 |
| B | 目标模型 | previous version | 目标模型上一版本参考 |
| C | 参考模型 | workspace | 参考对照 |
| D | 参考模型 | previous version | 参考模型上一版本参考 |
“上一版本(previous version)”指当前工作区在本轮自动改写之前的最近一次稳定版本:
previous = 当前链最新版本v0这里刻意不用 v-last,因为它很容易让人误解成“最新版本”;也不用“基线版本”,因为“基线”更像不变参照。本设计真正想表达的是“当前轮次之前的那个版本”。
如果后续要加入一个不随自动迭代轮次变化的固定对照,再单独引入“固定基线”概念。
这 4 个槽位同时提供三条证据线:
A vs B
A vs C
C vs D
flowchart TD
A["用户点击 自动迭代"] --> B["选择目标模型 / 参考模型"]
B --> C["生成 4 槽位预设"]
C --> D["执行首轮 4 槽位测试"]
D --> E["提取目标锚点与差异证据"]
E --> F["生成新的 workspace 提示词草稿"]
F --> G["写回 workspace(不保存版本)"]
G --> H["执行第二轮 4 槽位测试"]
H --> I["展示本轮总结与风险提示"]
basic-systemversion + modelrunAllVariantsworkspace 提示词草稿workspace这是本功能设计的核心。
我们不直接把“4 个输出文本”粗暴拼接给模型,而是构造一个面向自动改写的上下文包。
建议组织为以下几组信息:
basic-system1Av0,可选)workspace在真正改写前,系统应先基于上述上下文提取一组“目标锚点”:
只有在锚点提取完成后,才进入提示词改写步骤。
自动改写链路至少要返回:
nextWorkspacePromptlearnedAnchorsappliedChangesrejectedOverfitIdeasriskNotes这样后续 UI 才能向用户解释“为什么改”,而不是只给出一个新提示词。
不能只看“当前测试样例是否更好”,至少要同时满足:
目标模型 / workspace 相比 目标模型 / 上一版本 有明确改进,或至少无关键能力退化参考模型 / workspace 不应相对 参考模型 / 上一版本 明显退化对 basic-system 来说,这里的“结构性规则”通常表现为:
以下情况应允许系统返回“本轮不建议改写”:
无需重做测试区主体结构,直接使用:
testColumnCounttestVariantsrunAllVariantsversion + model 选择现有 compareEvaluation.ts 已经采用:
testCasessnapshotscompareHints组织执行证据。
本功能可以直接复用这一思路,避免重新发明多快照比较协议。
自动迭代的最终落点仍然是更新 workspace 草稿。
也就是说:
packages/ui/src/components/basic-mode/BasicSystemWorkspace.vue
packages/ui/src/stores/session/useBasicSystemSession.ts
packages/ui/src/composables/prompt/compareEvaluation.ts
packages/ui/src/composables/prompt/autoIterateOneRound.tspackages/ui/src/composables/prompt/autoIteratePreset.ts目标模型 与 参考模型workspaceV1 跑通后,可逐步扩展: