测试目标:把「上下文装得下」和「模型真的读到了」这两件事分开验证。下面 6 项测试都可以直接落地,工具链以 Python 脚本加主流模型 API 为主。
测试一:位置效应扫描(Lost in the Middle 复现)
- 用同一个模型、同一套问题,准备 21 个候选事实(fact_01 到 fact_21),只有 1 个是正确答案。
- 依次把正确答案分别放在位置 1、3、5、7、9、11、13、15、17、19、21,其余位置填充无关但语义相近的内容。
- 每个位置跑 3 次取多数结果,共 33 次调用。
- 工具:自己写 30 行 Python 循环即可,不需要专门框架;要可视化就用 RAGAS 的 Faithfulness 指标做交叉验证。
- 评估指标:各位置召回准确率、U 形曲线是否存在、头尾位置与中段位置的准确率差值。
- 判定线:中段比头尾低 10 个百分点以上,说明该模型的位置效应显著,生产环境必须固定关键信息的落位。
测试二:长度梯度衰减测试
- 固定正确答案位置在开头,把总长度从 1k、5k、10k、20k、50k、100k、200k Token 逐档拉长,填充内容保持同类语义。
- 工具:脚本自动生成填充语料,用 tiktoken 精确计数。
- 评估指标:召回准确率随长度的衰减曲线、P95 响应时延、每档 Token 成本。
- 判定线:找出准确率开始陡降的拐点 Token 数,这就是该模型在生产里的实际上限,比官方标称值更有用。
测试三:工具结果保真度测试
- Agent 先调用工具拿到一段 JSON 结果(含账号、金额、日期等字段),把结果注入上下文。
- 接着插入 3 轮无关对话,再让 Agent 基于该结果做后续动作。
- 工具:一个返回固定 JSON 的 Mock Server 即可。
- 评估指标:字段保真率(每个字段单独统计)、数值抄错率、格式破坏率。
- 判定线:数值型字段保真率必须 100%,任何一位小数抄错都算失败,因为金融场景不接受四舍五入的巧合。
测试四:历史指令保持率测试
- 在第 1 轮注入约束,例如「输出必须是 JSON」「金额单位是元」「禁止推测」。
- 分别在第 3、5、10、20 轮插入新指令并观察 Agent 是否仍然遵守旧约束。
- 工具:自己写脚本做规则匹配校验。
- 评估指标:约束违反率随轮次的变化曲线、首次违反发生在第几轮。
- 判定线:核心安全约束(越权、涉密、格式破坏)的违反率必须为 0,出现一次就要调整上下文装配顺序或改用结构化笔记。
测试五:子智能体上下文隔离测试
- 主智能体只收结论摘要(1000 到 2000 Token),子智能体在独立窗口里处理全量资料。
- 对照实验:同一批任务分别走单智能体全量上下文和子智能体隔离上下文。
- 工具:任何支持多轮会话的模型 API 都可以搭,对照组用 Anthropic 公开报告的多智能体研究系统作为参照。
- 评估指标:任务完成率对比、Token 消耗对比、跨窗口信息丢失率。
- 判定线:隔离方案在完成率不低于对照组的前提下,Token 消耗应显著下降,否则说明摘要压缩丢掉了关键信息。
测试六:压缩触发点回归测试
- 开启自动压缩(例如 Anthropic Agent SDK 的 compaction_control,默认阈值 100000 Token)。
- 构造超长任务,观察压缩是否触发、触发时保留了几条关键决策。
- 评估指标:压缩触发次数、压缩前后关键决策保留率、压缩后任务完成率变化。
- 判定线:压缩后完成率下降超过 5 个百分点,说明摘要策略有信息损失,需要自定义 summary_prompt 或在压缩前把关键决策写进结构化笔记。
补充建议:这 6 项测试全部沉淀成 CSV 用例集(用例编号、前置条件、注入位置、预期结果、实测结果、判定线),就能接 JMeter 或 Python Runner 做每日回归。