From 2e91fde1b16e3f08bb39e5735f6dbbfd9065bc8b Mon Sep 17 00:00:00 2001 From: Nitsu45 Date: Fri, 16 Oct 2026 23:22:59 +0200 Subject: [PATCH] Record working brief live trial metrics and validation friction --- .../working-brief-live-test-20261016.json | 195 ++++++++++++++++++ docs/working-brief-live-test-20261016.md | 104 ++++++++++ 2 files changed, 299 insertions(+) create mode 100644 docs/measurements/working-brief-live-test-20261016.json create mode 100644 docs/working-brief-live-test-20261016.md diff --git a/docs/measurements/working-brief-live-test-20261016.json b/docs/measurements/working-brief-live-test-20261016.json new file mode 100644 index 0000000..57662e2 --- /dev/null +++ b/docs/measurements/working-brief-live-test-20261016.json @@ -0,0 +1,195 @@ +{ + "measurement": "live_working_brief_trial_comparison_v1", + "costs": { + "previous_eur": 0.34, + "current_eur": 0.31, + "current_balance_start_eur": 7.4, + "current_balance_end_eur": 7.71 + }, + "test_data_bytes_after_run": 18092447774, + "comparisons": [ + { + "workspace": "service-data\\trials\\bug17-working-brief-20261016", + "generation": 114, + "calls": 21, + "investigation_calls": 17, + "tokens": { + "input_tokens": 576864, + "output_tokens": 45814, + "reasoning_tokens": 31279, + "cached_input_tokens": 367761, + "cache_created_tokens": 43266, + "elapsed_seconds": 409.32800000000003, + "estimated_cache_storage_cost": 0.0018027499999999999 + }, + "inv_tokens": { + "input_tokens": 506697, + "output_tokens": 38473, + "reasoning_tokens": 26767, + "cached_input_tokens": 367761, + "elapsed_seconds": 355.26500000000004 + }, + "cache_statuses": { + "created": 2, + "reused": 15 + }, + "cached_tokens_per_inv": { + "21633": 17 + }, + "live_total": 396109, + "errors": [ + { + "hypothesis": "H1", + "code": "INVESTIGATION_BRIEF_CHANGE", + "kind": "invalid_response", + "llm_ref": "llm/operations/b5de43dfa1122fa86decfa538047ee813621839eded8ed15356d341f3439e383/round-0001.json" + }, + { + "hypothesis": "H2", + "code": "LLM_OUTPUT_SCHEMA", + "kind": "invalid_response", + "llm_ref": "llm/operations/a4ed5334e4125ed14bcbca18629a561513bba48ef92afecc570c14d9e90e05cc/round-0001.json" + }, + { + "hypothesis": "H2", + "code": "INVESTIGATION_BRIEF_REFERENCE", + "kind": "invalid_response", + "llm_ref": "llm/operations/ddf237df888a860f57b91498528fd599614514dff235353c4f61410ff3594423/round-0001.json" + }, + { + "hypothesis": "H2", + "code": "INVESTIGATION_BRIEF_CHANGE", + "kind": "invalid_response", + "llm_ref": "llm/operations/23e886f4a2c5eeadfea37a9114a2282780ab8a12c14b970fdcc26da184fc793b/round-0001.json" + }, + { + "hypothesis": "H2", + "code": "INVESTIGATION_CAUSAL_EFFECT", + "kind": "invalid_response", + "llm_ref": "llm/operations/dc6beafc7db15bec5af22b3b34f0fd40506f577c3921f56d87190df9faf8d348/round-0001.json" + }, + { + "hypothesis": "H2", + "code": "INVESTIGATION_BRIEF_REFERENCE", + "kind": "invalid_response", + "llm_ref": "llm/operations/bbf03137db61614a7898353127aae3d114e56606ca757881038446b590a4cc21/round-0001.json" + }, + { + "hypothesis": "H3", + "code": "LLM_OUTPUT_SCHEMA", + "kind": "invalid_response", + "llm_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json" + } + ], + "hypotheses": { + "H1": { + "confidence": "weakened", + "disposition": "active", + "iterations": 5, + "invalid_responses": 0 + }, + "H2": { + "confidence": "plausible", + "disposition": "active", + "iterations": 5, + "invalid_responses": 1 + }, + "H3": { + "confidence": "unassessed", + "disposition": "active", + "iterations": 1, + "invalid_responses": 0 + } + }, + "duration_seconds": 522.340196, + "rejected_calls_usage": { + "input_tokens": 219430, + "output_tokens": 16370, + "reasoning_tokens": 11234, + "cached_input_tokens": 151431, + "elapsed_seconds": 139.73299999999998, + "estimated_cost": 0.123744075 + } + }, + { + "workspace": "service-data\\trials\\bug17-stable-case-cache-20261016", + "generation": 148, + "calls": 21, + "investigation_calls": 17, + "tokens": { + "input_tokens": 658995, + "output_tokens": 31378, + "reasoning_tokens": 22227, + "cached_input_tokens": 339779, + "cache_created_tokens": 79948, + "elapsed_seconds": 275.453, + "estimated_cache_storage_cost": 0.0033311666666666667 + }, + "inv_tokens": { + "input_tokens": 589053, + "output_tokens": 24345, + "reasoning_tokens": 18356, + "cached_input_tokens": 339779, + "elapsed_seconds": 219.109 + }, + "cache_statuses": { + "created": 4, + "reused": 13 + }, + "cached_tokens_per_inv": { + "19987": 17 + }, + "live_total": 645032, + "errors": [ + { + "hypothesis": "H1", + "code": "PROJECT_SOURCE_RANGE", + "kind": "invalid_response", + "llm_ref": "llm/operations/9ca4b010c7ebc9e0ae40a106866bbb196dd23366b2e453b50c4a6e629b9f6874/round-0001.json" + } + ], + "hypotheses": { + "H1": { + "confidence": "supported", + "disposition": "active", + "iterations": 13, + "invalid_responses": 0 + }, + "H2": { + "confidence": "unassessed", + "disposition": "active", + "iterations": 1, + "invalid_responses": 0 + }, + "H3": { + "confidence": "unassessed", + "disposition": "active", + "iterations": 1, + "invalid_responses": 0 + }, + "H4": { + "confidence": "unassessed", + "disposition": "active", + "iterations": 1, + "invalid_responses": 0 + } + }, + "duration_seconds": 1202.567749, + "rejected_calls_usage": { + "input_tokens": 43739, + "output_tokens": 1166, + "reasoning_tokens": 820, + "cached_input_tokens": 19987, + "elapsed_seconds": 11.0, + "estimated_cost": 0.023685525 + } + } + ], + "limitations": [ + "Both runs stopped at 20 dispatches, neither completed.", + "Different hypothesis sets and 7 versus 1 rejected replies; not a controlled equal-progress cost benchmark.", + "Input tokens include cached tokens. Output includes reasoning; reasoning is not additional to output.", + "Provider elapsed times are not total runtime.", + "No additional paid API calls during evaluation." + ] +} diff --git a/docs/working-brief-live-test-20261016.md b/docs/working-brief-live-test-20261016.md new file mode 100644 index 0000000..2f69ca3 --- /dev/null +++ b/docs/working-brief-live-test-20261016.md @@ -0,0 +1,104 @@ +# Bug 17: Live-Test des Investigation-Arbeitsstands + +Code: `816f525`. Workspace: `bug17-working-brief-20261016`. +Vergleich: `bug17-stable-case-cache-20261016`, historischer v11-Stand. +Beide auf 20 Dispatches begrenzt, beide YIELDED, keine abgeschlossene Diagnose. +Referenzlösung nicht an das Modell übergeben. Der ursprüngliche Fehler ist im +bereitgestellten Source-Stand bereits behoben; ein begründetes ergebnisloses +Analyseende wäre fachlich akzeptabel. Ein technischer Block ist davon zu trennen. + +## Gemessene Werte + +| Metrik | Vorher | Neuer Lauf | +|---|---:|---:| +| Nutzerberichtete Kosten | 0,34 EUR | 0,31 EUR (7,40 → 7,71) | +| Gesamtdauer, Observer-Start bis -Ende | 20:02,6 | 8:42,3 | +| Summierte Provider-Zeit, alle Phasen | 275,453 s | 409,328 s | +| LLM-Antworten gesamt / Investigation | 21 / 17 | 21 / 17 | +| Inputtokens gesamt, einschließlich Cache | 658.995 | 576.864 | +| Outputtokens gesamt, einschließlich Thinking | 31.378 | 45.814 | +| Thinkingtokens, Teilmenge des Outputs | 22.227 | 31.279 | +| Gecachte Eingabetokens gesamt | 339.779 | 367.761 | +| Investigation: ungecachte Eingabetokens | 249.274 | 138.936 | +| Investigation: Outputtokens einschließlich Thinking | 24.345 | 38.473 | +| Investigation: Live-Transport, UTF-8 | 645.032 B | 396.109 B | +| Intern abgelehnte Investigation-Antworten | 1 | 7 | + +Die Gesamtlaufzeit umfasst lokale Verarbeitung und Modellaufrufe. Die deutlich +kleinere lokale Restzeit ist mit der zuvor implementierten Checkpoint-Optimierung +vereinbar, aber der Test isoliert diese Ursache nicht. Der neue Provider-Anteil +ist trotz kürzerer Gesamtdauer höher. Die Eingangsdaten sind dieselben, aber +Hypothesenanzahl, Queries und Fortschritt verschieden; der Vergleich ist kein +kontrollierter Nachweis einer pro erfolgreichem Untersuchungsschritt erreichten +Kostenersparnis. + +## Inhaltliche Bewertung + +- Der Arbeitsstand wurde angelegt, versioniert und weitergeführt. +- H1 wechselte von einer anfangs noch falschen Unterstützungseinstufung zu + `weakened`: der belegte QuestAccept-Override, die passende Quest-ID und der + Aufruf von StartEvent wurden schließlich als Gegenbelege eingeordnet. +- Danach wechselte der Scheduler zu H2. H1 wurde nicht mehr wie im alten Lauf + über 13 Iterationen bei `supported` bevorzugt weiterverfolgt. +- H2 ist im gespeicherten Zustand noch `plausible`. Die letzte Modellantwort + wollte H2 wegen des gefundenen Core-Dispatchs ebenfalls abschwächen; diese + Antwort wurde jedoch wegen Referenzinkonsistenz verworfen. Das ist kein + fehlendes Gegenargument, sondern ein technischer Vertragsfehler. +- H3 ist nach dem initialen Durchlauf noch `unassessed`. Budgets sind erhalten: + H1 76, H2 79, H3 90. Es wurde kein Budgetabbruch ausgelöst. +- Die Briefs enthalten teilweise veraltete neutrale Aussagen, etwa einen noch + unbestätigten Callback, obwohl andere Hypothesen inzwischen weiter sind. + Vollständige Belege sind weiterhin vorhanden; ihre semantische Zusammenführung + ist nicht durch das Speicherformat garantiert. + +## Technische Reibung und wirtschaftliche Bewertung + +Alle 17 Investigation-Antworten nutzten den Cache mit je 21.633 gecachten Tokens: +2 Erstellungen, 15 Wiederverwendungen. Der Cache funktioniert. + +Sieben Antworten wurden verworfen: + +- 2 × `INVESTIGATION_BRIEF_CHANGE`: ein bestehender Befund wurde ohne den + vorgeschriebenen Änderungseintrag umformuliert/erweitert. +- 2 × `INVESTIGATION_BRIEF_REFERENCE`: fortgeschriebene neutrale Befunde + referenzierten E000001, das in `update.evidence_refs` fehlte. +- 1 × `INVESTIGATION_CAUSAL_EFFECT`: `mixed` ohne Gegenbelege. +- 2 × `LLM_OUTPUT_SCHEMA`: `additionalProperties` beziehungsweise `oneOf`. + Die gespeicherten sicheren Diagnosen enthalten nicht die exakten fehlerhaften + Antwortfelder; eine genauere Behauptung wäre nicht belegt. + +Die neue Pflicht, dieselben Referenzen zusätzlich an mehreren Stellen aufzuführen, +und eine exakte Gleichheit auch bei rein redaktionellen Befundänderungen erzeugen +vermeidbare Reibung. Die Ablehnungen erfolgten kontrolliert und vor Toolausführung/ +Budgetabrechnung; dennoch kosten ihre Modellantworten Tokens und Zeit. Sie +verbrauchten 16.370 Outputtokens und 139,733 s Provider-Zeit; der konfigurierte +Schätzwert beträgt 0,123744075 USD, ausdrücklich nicht EUR-Rechnungsbetrag. + +Der Input wurde kleiner, aber der Gesamterfolg ist wirtschaftlich noch nicht +ausreichend: nur 10 von 17 Investigation-Antworten wurden angenommen, gegenüber +16 von 17 vorher. Outputtokens steigen insgesamt um rund 46 %, in der Investigation +um rund 58 %. Die berichtete Kostenersparnis von 0,03 EUR rechtfertigt keine +Behauptung gleicher Qualität bei gleichem Fortschritt. + +## Nächster sinnvoller Schritt + +Vor einer Fortsetzung die Brief-Schnittstelle vereinfachen: + +1. Redundante Referenzmengen deterministisch ableiten, statt das Modell dieselben + IDs mehrfach fehlerfrei wiederholen zu lassen. Unbekannte Belege bleiben + verboten; keine unbemerkte Umwandlung einer semantisch falschen Bewertung. +2. Die Nachvollziehbarkeit kleiner Text-/Scope-Präzisierungen möglichst beim + Controller protokollieren. Explizite Begründungen für entfernte oder in ihrer + kausalen Richtung geänderte Befunde weiterhin verlangen. Das Erkennen einer + rein redaktionellen Änderung ist semantisch schwierig; keine pauschale + Akzeptanz beliebiger Änderungen ohne Prüfung. +3. Bei Ablehnungen die konkrete fehlende ID oder das betroffene Feld angeben, + nicht nur einen allgemeinen Fehlercode. Keine zusätzliche LLM-Abfrage. +4. Vor weiterem Kürzen alter Recherchepayloads zunächst diese Reibung beseitigen. + +Es wurden nur Messungen und diese Testbeschreibung gespeichert, keine +Programmänderung und keine zusätzliche API-Anfrage vorgenommen. Erfasste +Testdaten nach dem Lauf: 18.092.447.774 Bytes, unter der 20-GB-Vorgabe. Ein weiterer +großer Lauf benötigt vorher wieder eine Prüfung/Bereinigung der Testdaten. + +Aggregierte Messdaten: `measurements/working-brief-live-test-20261016.json`.