The extra-context layer for AI agents — L1 eviction, sticky L2/L3 context pools, context paging, cold-tier compression.
This report validates the dedicated current-model profiles (GPT-6.1 Sol / Terra / GPT-6 Astra, Claude Opus 5.5 / Sonnet 5.5 / Fable 5.1 / Haiku 5.5, DeepSeek Flash) against their family base profiles, at the integration layer (MCP server cold start, retrieval, injection budgets, token accounting). It does not call live model endpoints; true answer-quality A/B remains a manual follow-up.
Raw data: docs/assets/benchmarks/profile-validation.json · reproduce: node --import ./test/register.mjs scripts/profile-validation.mjs docs/assets/benchmarks/profile-validation.json (12 profiles, seeded throwaway store, load ≈3.5–5).
INC-<n> in title/summary), 120 hot-body answer records (answer token only in the body), 60 title/summary decision facts with unique CUE-<n>.incident INC-60…99 …), 30 cold-body, 40 title/card (… CUE-<n>).rerank weights and queryTerms.maxTerms; token estimates via its charsPerToken; catalog injection clipped by its budget; cold start = fresh MCP process initialize + first memory_search, median of 3.| Profile | init p50 | first search p50 | first search result chars |
|---|---|---|---|
claude (base) |
47 ms | 2 ms | 382 |
claude-opus-5-5 |
48 ms | 2 ms | 700 |
claude-sonnet-5-5 |
46 ms | 2 ms | 382 |
claude-fable-5-1 |
46 ms | 2 ms | 700 |
claude-haiku-5-5 |
46 ms | 2 ms | 310 |
openai (base) |
46 ms | 2 ms | 346 |
gpt-6.1 |
45 ms | 2 ms | 700 |
gpt-6.1-terra |
47 ms | 2 ms | 346 |
gpt-6-astra |
45 ms | 2 ms | 700 |
deepseek (base) |
46 ms | 2 ms | 346 |
deepseek-flash |
47 ms | 2 ms | 382 |
generic |
50 ms | 3 ms | 346 |
Result: dedicated profiles add no cold-start regression (45–50 ms init, 2–3 ms first search). Result size is the only difference, driven by recall budget.
| Profile | hot-body hit@1 | hot-body hit@5 | cold hit@5 | title hit@5 | tokens/answer |
|---|---|---|---|---|---|
claude (base) |
0% | 100% | 63% | 95% | 58 |
claude-opus-5-5 |
100% | 100% | 63% | 95% | 80 |
claude-sonnet-5-5 |
100% | 100% | 63% | 95% | 80 |
claude-fable-5-1 |
100% | 100% | 63% | 95% | 80 |
claude-haiku-5-5 |
100% | 100% | 63% | 95% | 80 |
openai (base) |
100% | 100% | 63% | 95% | 52 |
gpt-6.1 / terra / astra |
100% | 100% | 63% | 95% | 52 |
deepseek (base) |
100% | 100% | 63% | 95% | 61 |
deepseek-flash |
100% | 100% | 63% | 95% | 69 |
generic |
100% | 100% | 63% | 95% | 52 |
Findings
claude rank-1 weakness: base body weight (4.5) let card-heavy distractors outrank body evidence (0% hit@1), while the 5.5 variants (body 4.6–5.2) reach 100%. This is the main measurable long-horizon gain.memory_grep, not profile-tunable (documented limitation).| Profile | catalog tokens/turn | manual tokens | 50-turn catalog tokens |
|---|---|---|---|
claude (base) |
379 | 749 | 18,950 |
claude-opus-5-5 |
524 | 1,055 | 26,200 |
claude-sonnet-5-5 |
524 | 1,017 | 26,200 |
claude-fable-5-1 |
524 | 1,073 | 26,200 |
claude-haiku-5-5 |
524 | 1,014 | 26,200 |
openai (base) |
337 | 658 | 16,850 |
gpt-6.1 |
337 | 669 | 16,850 |
gpt-6.1-terra |
337 | 648 | 16,850 |
gpt-6-astra |
337 | 678 | 16,850 |
deepseek (base) |
396 | 740 | 19,800 |
deepseek-flash |
449 | 842 | 22,450 |
generic |
337 | 640 | 16,850 |
Findings
initialize.instructions, Claude CLAUDE.md), not per turn.claude-fable-5-1 initially lost rank-1 on hot-body probes because useWhen 1.9 let the read when continuing deployment retry budget work hint outweigh body evidence. Adjusted to useWhen 1.8, recency 0.25, body 5.2 — hit@1 is now 100% with the rest unchanged. This is exactly the kind of per-model tie-break the dedicated profiles exist for.
profileOverrides can adjust windows (e.g. GPT-6.1’s 500k Codex default).