LongMemEval live validation — 2026-07-29
This record validates the 0.16.0-beta LongMemEval trustworthiness changes
against the Azure OpenAI deployment configured in the workspace. The user
explicitly authorized sending the reviewed LongMemEval corpus to that deployment.
No credential, endpoint, header, raw question, gold answer, agent response,
judge response, or evidence content is recorded here.
Fixed configuration
| Field | Value |
|---|---|
| Answer deployment | gpt-5.5 |
| Judge deployment | gpt-5.5 |
| Normal/oracle declared answer model | Identical: gpt-5.5 |
| Selection | 10 questions, stratified, seed 42 |
| Required regression question | d24813b1 included |
| Judge failure policy | RetryThenInconclusive |
| Maximum retries | 1 |
| Evidence capture | None |
| Judge evidence | Outcome |
| Normal history mode | TextBlob |
| Oracle | Isolated answer-session projection, same frozen IDs |
Selected IDs, in frozen execution order:
19b5f2b3
gpt4_15e38248
2e6d26dc
d24813b1
gpt4_7abb270c
8077ef71
gpt4_483dd43c
0e4e4c46
4d6b87c8
4388e9dd
The validation harness locally returned an empty response for the first normal
judge attempt and its one retry. This deliberately produced one final Empty
outcome without sending malformed content to Azure. It makes 90% the expected
normal-path judge-completion ceiling. The injection was exhausted before oracle
execution.
Before/after reliability table
Product accuracy is shown only over explicit Yes/No outcomes. Judge
completion is (Yes + No) / agent-completed questions. These are deliberately
separate signals.
| Stage and path | Product accuracy | Scored / selected | Judge completion | Yes / No / Empty / Invalid / ProviderError | Retry attempts | Agent / judge / total calls |
|---|---|---|---|---|---|---|
Before: explicit Temperature=0, 30-token budget — normal |
n/a | 0 / 10 | 0% | 0 / 0 / 1 / 0 / 9 | 10 | 10 / 20 / 30 |
Before: explicit Temperature=0, 30-token budget — oracle |
n/a | 0 / 10 | 0% | 0 / 0 / 0 / 0 / 10 | 10 | 10 / 20 / 30 |
| Temperature fixed, 30-token budget — normal | 100.0% | 8 / 10 | 80% | 8 / 0 / 1 / 1 / 0 | 4 | 10 / 14 / 24 |
| Temperature fixed, 30-token budget — oracle | 100.0% | 8 / 10 | 80% | 8 / 0 / 0 / 2 / 0 | 2 | 10 / 12 / 22 |
| Final: provider-default temperature, 256-token budget — normal | 88.9% | 9 / 10 | 90% | 8 / 1 / 1 / 0 / 0 | 1 | 10 / 11 / 21 |
| Final: provider-default temperature, 256-token budget — oracle | 100.0% | 10 / 10 | 100% | 10 / 0 / 0 / 0 / 0 | 0 | 10 / 10 / 20 |
Final task-averaged accuracy was 93.3% normal and 100.0% oracle. The oracle gap was 11.1 percentage points.
Findings and fixes
- The configured
gpt-5.5deployment accepted default chat options andMaxOutputTokens, but rejected requests carrying an explicitTemperature=0. The judge now uses provider-default temperature unlessExternalBenchmarkOptions.JudgeTemperatureis explicitly configured. - A 30-token output budget produced incomplete/invalid results on a reasoning
deployment because reasoning tokens share the output budget. The default is
now 256 and is configurable through
JudgeMaxOutputTokens. - The typed failure model worked as designed during both defects: provider failures, empty output, and invalid output stayed inconclusive; they never became ordinary incorrect answers or a passing zero-score run.
- Call totals matched real attempts. The final normal path made ten answer calls and eleven judge calls; the single extra judge call is the induced retry. Oracle made exactly ten plus ten.
Interpretation boundary
The move from n/a to 88.9% normal accuracy does not prove that the memory
product improved. It proves the judge request became compatible and sufficiently
budgeted, allowing nine product answers to be scored. Likewise, excluding the
deliberate empty judgment repaired denominator honesty but did not make that
answer correct.
The final comparison supports a narrower conclusion:
- judge reliability reached the expected 90% normal ceiling and 100% oracle;
- scored normal accuracy was 88.9%;
- oracle accuracy was 100%;
- the 11.1-point oracle gap is a retrieval/context diagnostic, not part of the normal score.
Final security and API review
| Review question | Result |
|---|---|
| Can gold labels reach the normal answer path? | No. Normal history is formatted from label-stripped turns; spy-agent tests cover IDs, answer-session IDs, and has_answer. |
| Can gold labels reach the oracle answer path? | No. The oracle projector deep-clones only answer sessions, then strips session IDs, answer-session IDs, and turn labels before the isolated reader exists. |
| Can arbitrary provider objects enter a native report as evidence? | No. Only QuestionEvidenceEnvelope.AdditionalPropertiesKey is read. Typed DTO, bounded JSON string, and bounded JsonElement are accepted; other objects are rejected to an owned code. |
| Is raw evidence enabled accidentally? | No. EvidenceCaptureMode.None is the default and returns before accessing AdditionalProperties. Full requires explicit programmatic configuration; CLI presets do not enable it. |
| Are sizes bounded before copying/serialization? | Yes. Reference/list/content bounds are checked before copies. JSON strings are length-checked before deserialization, and JsonElement now writes through a fixed-capacity buffer so an oversized element cannot force an unbounded duplicate allocation. |
| Are IDs normalized without changing equality semantics? | Yes. Evidence IDs receive outer whitespace trimming and control-character rejection only; comparisons remain ordinal with no case folding or hashing. Dataset question IDs are not rewritten. |
| Are embeddings, credentials, headers, and exception objects rejected? | Yes. Arbitrary objects are rejected; strict JSON disallows extra properties; credential-like IDs/content and unsafe controls are rejected; exception text is never persisted. |
| Are provider errors AgentEval-owned? | Yes. Results retain bounded codes such as provider_error, timeout, content_filtered, and invalid_finish_reason, never provider exception messages. |
| Are score-interpreting policies recorded? | Yes. Native results retain Options; safe report dimensions and canonical summary metrics record failure policy, retry bound, temperature configuration, output budget, judge evidence mode, evidence mode, and top-K. The shared manifest schema has no extensible metadata field, so it was not broadened for one benchmark. |
| Are normal/oracle state and counters isolated? | Yes. Normal completes before oracle projection/reader creation. Results, calls, evidence, and model declarations are separate; selected IDs are frozen once. |
| Are cancellation and concurrency semantics safe? | Yes. Cancellation propagates rather than becoming provider failure. Per-question state is cleared in finally; paired execution is deliberately sequential to enforce the oracle boundary. |
| Is migration clear? | Yes. The guide covers nullable 0–100 scores, denominators, failure/evidence modes, provider-compatible judge options, paired execution, privacy, and canonical inconclusive behavior. |