如果记忆探针在第50轮总返回“记得”它测到的是脚本分支不是模型记忆。探针应该接收真实回答再独立评分没有模型调用时最多只能验证评分器如何处理几类输入。另一个问题是把关键词命中当成理解。回答“端口不是8000了”包含8000却不应判成记住旧配置。程序评测可以先要求结构化回答再把无法解析、拒答和错误值分别记账。回答是输入不是答案模板下面的评分器读取模型本应返回的JSON。测试输入都是人工构造用来校准评分规则不构成模型记忆准确率。端口必须是整数布尔值也不能借Python的类型关系混过检查。图中只画正确/违反两条评分路径实际记录还要保存拒答与格式无效下面代码因此返回四种状态。import json def grade(raw, expected): try: reply json.loads(raw) except (json.JSONDecodeError, TypeError): return invalid_format if not isinstance(reply, dict): return invalid_format if reply.get(status) unknown: return abstained if reply.get(status) ! known or type(reply.get(port)) is not int: return invalid_format return correct if reply[port] expected else wrong_value fixtures [ ({status:known,port:9000}, correct), ({status:known,port:8000}, wrong_value), ({status:unknown}, abstained), (端口不是8000了, invalid_format), ({status:known,port:true}, invalid_format), ] for raw, expected_status in fixtures: assert grade(raw, 9000) expected_status print(grader calibration:, len(fixtures), fixtures PASS)真正测遗忘时需要两条时间线一条记录事实什么时候被引入、更新和撤销另一条记录探针在什么时候发出、回答来自哪次请求。重复询问本身也可能刷新记忆因此应考虑独立会话分支或者将探针影响作为实验条件报告。IBM关于混合记忆的研究提示不同模型与任务可能适合不同记忆支持方式不能预先把“记得最多”当成最好。对已撤销事实继续坚持也是一种失败。评测除保留率外还应检查更新采纳率、旧值回流率和合理拒答。本地执行的是5个评分器反例没有运行任何百轮对话。要发布模型成绩需保存原始响应、会话隔离方式、采样参数、无效响应分母与评分复核。把错误与格式失败都丢出分母会让记忆能力看起来比实际稳定。