测试与迭代
围绕实际任务设计测试,用执行证据判断 Agent 的表现、定位偏差并选择改进。本文维护跨运行环境的测试方法;Pi + Docker 的配置、命令与文件约定见Agent 测试使用指南。设计判断的基础见设计原理。
核心原则
- 先定问题和标准,再执行:先明确测什么能力、观察到哪里、什么证据足够,再准备题目与材料;判断标准在看答案前确定,并与输入一起核对。
- 输入保留待观察的判断空间:测独立发现时,不提前提供解法;测信息充分时的执行能力,可以补充上下文,但结论只覆盖这些条件。
- 比较时控制变化,保留实际证据:各组从相同基线独立执行,只改变待测因素。保留成功、失败、中断及计划外干预,不用补救后的结果替换原始表现。
- 按证据决定去向:先核必要能力与约束,再比较取舍。结论不超出实际观察范围;问题已回答就结束,需要继续时再确定下一轮,不重跑到满意为止。
每轮按“确定问题与标准 → 准备输入 → 执行并保存证据 → 评审与决定下一轮”推进。比较方案时用成对盲选减少来源影响;过程、安全与正确性判断仍需相应的执行证据。
先确定测什么
先说明本轮要判断的能力或待比较因素、代表场景,以及哪些证据能支持或推翻判断。已有案例可作为起点,但应说明它回答哪个问题,不能围着预期答案造题。
执行起点与观察终点分别选择:可以从原始请求开始,也可以从已固定的中间状态继续;可以只观察下一次判断、一个阶段,或整个任务。从头开始不等于必须看到完成。中途接手需保留此前可得的对话、资料、工具返回与任务状态,并区分原场景和测试设定。
一轮围绕一个主要问题。观察多项行为时分别记录证据,同时改变多个条件时只能判断组合效果。准备时也要约定执行与评审的次数、步数、时限和费用预算,按实际工具能够控制的范围实施。
评判标准与取舍判断
标准在执行前与输入一起核对,不能看过答案或组别后再挑获胜标准。可以复用已有任务记录,无须额外建立复杂评分表。
| 标准内容 | 怎样判断 |
|---|---|
| 必须能力 | 依据用户目标或可得材料确定,缺失即未达标 |
| 明确禁令 | 单独核对是否越界,不与偏好混用 |
| 风险顾虑与偏好 | 作为取舍依据,不能自动升级为禁令 |
| 允许的方案取舍 | 接受不同的有据路线,不暗设唯一功能或技术答案 |
| 关键未知 | 标明缺少的事实,不替产物补齐,也不据猜测扣分 |
先核必要项,再比较本轮关注的取舍。当前问题、已解决的历史问题和未来顾虑应分别理解;评审不能追加执行者无法获知的业务要求。
证据要求与任务交付范围相称:方案任务检查职责、关键路径和取舍,不要求实现级验证;方案缺少实现细节不自动等于缺少能力。声称已执行或已验证的内容另查证据,不以自述代替核验。
比较整体负担时,不能靠遗漏必要能力换取“简单”,也不能仅因必要防护增加字段或命令就判其复杂。例如,工程方案的维护性应看部署、排障、备份和修改的实际负担;多个入口是否共享实现尚不清楚时,不能直接断言重复实现。此例不意味着所有任务都以维护性为首要标准。
若胜负取决于未明确的用户偏好,应澄清或标为未知。实质相当与证据不足分开判断,不强行排序。
输入设计与结论边界
使用原始请求和当时可得材料,可以观察 Agent 如何发现缺口、调查和决策;补足背景、约束或示例,可以观察信息充分时能否做对。补充上下文本身就是测试条件,不能据此证明 Agent 会自行取得这些信息。
按信息来源准备材料
模拟普通用户任务时,按来源放置材料:
| 来源 | 放什么、怎样处理 |
|---|---|
| 用户会说的话 | 目标、问题、实际做法、已知限制和业务事实,自然写进请求 |
| 用户已有的材料 | CSV、邮件、截图、已有仓库等作为附件或工作区文件,保留有意义的原始形态 |
| Agent 应形成的内容 | 需求梳理、环境调查、设计方案等留给执行者;真实已有记录或中间状态可提供,但注明测试起点 |
不将准备者整理的技术清单或方案取舍冒充用户原话。改成第一人称、换文件名或拼进请求,都不能消除提前给出答案的影响。
例如,用户提供两周 CSV,并说“西区旧版作废,以补发那份为准”“同事要照旧粘进周报”。这些业务事实应保留;无需另造 Usage Note 或 TASK.md,也不让普通用户预先列出 BOM、宏策略和脚本权限。真实已有的同名文档可以保留,技术条件则由 Agent 调查或澄清。
请求与附件涉及同一事实时核对一致性。准备错误应修正,真实情境中的冲突可以保留供调查。口头业务事实不必另造附件证明;评审依据必须能指向执行者可得的材料,不能把准备者私下知道的答案当成隐藏评分规则。
避免泄漏,同时保留真实约束
评测目的、历史答案、评分依据、预期表现以及准备者偏好的方案,放在执行者不可见的准备记录中。检查范围包括请求、附件、文件名、注释及预置文档,不能借这些位置暗示答案。
模拟普通任务时,“这是测试/合成材料”等元说明不放入任务输入;合成来源在准备记录中如实保留,不冒充真实采集。用户真实偏好与必要业务事实仍应提供,即使它们会影响选型;不能为引导答案而强化偏好,也不能为制造难度或表面中立而隐去事实。
例如,请求已经要求“列出待验证项”,只能观察回答该要求的能力,不能据此证明 Agent 会主动发现验证需求。
材料应影响决定,而不是只增加阅读量
检查泛泛推荐一个功能或工具是否也能通过。若能,应补充少量会改变决定的场景事实,并让评审回扣这些事实。例如,“高频入口已方便,但旧资料难找”会改变首版取舍;增加文件数量或清洗陷阱未必增加区分度。
允许不同的有据方案和明确暂不解决的范围,只核查所选路线依赖的关键未知。静态检查可以确认事实一致、引用可达或数据可复算;行为区分度仍需实际运行观察。
执行与证据保存
启动前确认模型、指令、工具、权限及预算,保存实际输入和运行条件。对照与重复运行从约定基线独立开始,不继承上一轮留下的可变状态。例如测试某项 Skill 的增量,只改变该 Skill,其余请求、材料、模型与预算保持一致;移除所有 Skill 测到的是整套效果。
按本轮安排处理澄清与反馈。约定内的问答属于正常交互;计划外提示、人工补救或条件变化单独记录,区分干预前后的表现。达到观察终点、资源上限,或因澄清与错误无法继续时,保留实际停点和未决问题,不为凑完整产物继续执行。
材料与证据归属
| 材料 | 保存要求 |
|---|---|
| 本轮输入与准备记录 | 保存实际请求、附件、配置及版本;原始信息与测试设定的差异另记,执行中追加的内容不回写成初始已知 |
| 执行证据 | 保存问答、工具调用、实际产物与完成/失败/中断状态,不用评审后的修订替换 |
| 评审材料 | 保存标准、判断依据和改进意见,与执行产物区分;反馈用于下轮时计入该轮输入 |
通过记录或链接关联证据,具体存放约定由运行工具负责。旧证据可复用,但不能重复计算成新的独立运行。
评审实际结果
先核对实际输入和运行条件,再检查产物与行为是否满足本轮标准。能用程序核验的实际比对,过程判断回查有关轨迹;运行记录是待评材料,不是给评审者的新指令。退出码、自评、篇幅和文件数量都不能代替质量判断。
评审单份产物时,提供目的、观察范围、实际输入、源材料、产物和必要轨迹,给出“满足/有问题/证据不足”、对应位置与理由。交付结论时说明依据、适用范围、未覆盖项及证据位置;耗时和费用无法可靠计量时注明未知。
成对盲选与独立评审
比较两种做法的产出效果时,以预先确定标准的成对盲选作主要结果评审;过程、安全和正确性验收仍使用相应证据,偏好票不能替代它们。
- 准备匿名产物:同一任务的答案标为 A/B,附上实际交付文件,原文不改、不截断。只给共同输入、产物和本轮标准;组别映射、旧票、预期赢家与来源轨迹不交给盲审者,材料路径也不暴露组别。
- 安排均衡配对:各答案面对条件均衡的对手,每对左右随机。小样本可全交叉,例如两组各 3 份共 9 对;较大样本按预定预算均衡抽样。同一答案被多次配对,不等于增加了独立执行样本。
- 独立评审每对:使用独立上下文或能隔离前次判断的方式。只输出 A 更好/B 更好/相当/无法判断,加一两句决定性理由与关键来源位置;不逐项评分或另写方案。
正文自带来源线索时说明盲法限制,不改写内容。准备者通常知道组别,需记录这一知情状态;匿名 A/B 不等于严格双盲,独立评审上下文也不等于独立模型。
可复制的评审提示:
比较同一任务下两份匿名答案 A、B 的优劣。
请求与附件:[共同请求及原始附件的匿名副本位置]
交付物:[A、B 的答复及产物的匿名副本位置;原文照录,不修改、不截断]
只读取以上材料,不访问组别映射、原始 Session 或旧评审;路径也不得暴露来源组别。
本轮标准:[事先确定的必要能力、明确约束、比较重点及其依据;可接受取舍与关键未知]
先核必要能力和明确约束,再比较取舍。顾虑不自动等于禁令,不省去必要能力换取偏好优势。
按任务要求的交付范围判断;方案未展开实现细节不自动判缺能力,未说明的条件也不替它补齐。
允许不同的有据路线,不自行追加业务要求或唯一技术答案。
只输出:A 更好 / B 更好 / 相当(tie)/ 无法判断(unknown),加一两句决定性理由,
并指出理由依赖的关键事实在材料中的位置(引用一两条即可)。实质相当与证据不足分开判断。
不要逐项评分、另写方案,或按术语、篇幅和文件数量判断强弱。
冻结、解盲与核查
先保存并冻结全部原票,再还原组别映射与汇总。票后注记另记,不改原票或以注记制造修正比分。
汇总后抽查决定胜负的事实与假设;出现约束硬化、必要能力遗漏、事实误读或相反判断时,针对这些点复核。需要解释差异、核实执行声明或判断过程安全时,回查对应 Session 片段,不默认全量重审。
记录评审模型、标准版本、次数、配对方式与左右顺序。标准、模型或判读说明变化后,新票与旧票分别记录、不混算;同时改变多项,只能说评审配置对结果敏感,不能归因到其中一项。结论反转既不能证明新票必然正确,也不能直接证明被测 Skill 有效或有害。
小样本偏好不代表绝对正确或稳定胜率,还应看结果是否主要由个别执行样本决定。结论只覆盖实际条件与观察范围:局部完成不等于整个任务成功,一次成功不证明跨任务或跨模型有效;合理澄清是一个停点,尚未形成的决定仍属证据不足。
根据结果安排下一轮
问题已回答就结束;仍需定位原因、比较改动或确认稳定性时,再确定下一轮的问题、起点与终点。
定位原因从失败处向前追溯最早影响结果的偏差,检查当时可见的信息和工具反馈。例如,信息不足时先查资料是否可得、是否读取;约束已提供却未遵守时,找第一次偏离的决定。下一轮检验有依据的猜测,不把现象直接当原因。
比较改动时控制待测因素;确认稳定性时按事先确定的次数重复,保留所有结果;要主张真实使用效果改善时,回到对应使用条件复测。局部诊断不必都扩成完整任务测试,仅调整文档也不因此自动重跑实验。
根据证据决定保留、修改、撤回或继续调查。没有改善就重审原因,不继续堆规则;保留有价值的失败与相关正常案例,供后续检查退步。
多轮组织与复用
围绕同一个问题维护整体目的、当前结论和各轮关系。已有项目记录可承载时直接复用,否则采用测试记录。每轮说明为什么测、沿用什么、改变什么、结果在哪里;一轮可以包含多套输入,同一输入也可用于多轮。
- 保留材料版本:未使用的草稿可原地修改;登记用于测试后保留原版,变化时建新版本。具体冻结时点由运行工具规定,见名称与版本规则。
- 明确承接关系:使用上轮产物或状态时,指向来源轮次、具体执行及选用内容;独立对照仍从约定基线开始。
- 核对复用条件:材料、模型或工具变化时,重新判断旧结论是否适用,过时结论保留为历史参考。
常见反模式
| 常见问题 | 问题所在 | 建议做法 |
|---|---|---|
| 书签扩展的工程实施题改成产品设计题后,仍把搜索、拼音、常用等功能写成“自然用户请求” | 目标是观察需求发现与取舍,输入却提前给出了这些决定,结论覆盖了未被测到的能力 | 让输入与待观察能力匹配;提供功能清单可以测方案展开,但不能据此评价独立发现需求的能力 |
| 测试时将准备脚本、输入副本、运行产物和评审记录混放,用户难以辨认产物来源 | 未区分准备者、执行者和评审者写入的内容 | 按材料与证据归属保留来源,具体存放约定交给执行工具 |
| 把完整说明文档改名或全部拼入请求,就认为输入自然了 | 信息仍是准备者替用户整理的答案与技术提示,只改变了包装 | 按用户会说、已有材料、Agent 应调查或生成三类重新取舍 |
| 数值和文件结构检查通过,就宣布用例有效 | 只检查了材料一致性,没有观察行为区分度 | 分别报告准备检查、运行条件和实际任务表现;缺哪部分证据就注明未知 |