Record working brief live trial metrics and validation friction

This commit is contained in:
Nico committed 2026-10-16 23:22:59 +02:00
1 parent 816f525ef4
commit 2e91fde1b1
2 files changed
+299

No files matched your search

@@ -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."
]
}
+104
View File
@@ -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`.