Scope budget assessments and recover valid research after recall
This commit is contained in:
1 parent
3eb0972395
commit
cb61ac8cd6
8 files changed
+300
-1
No files matched your search
@@ -0,0 +1,56 @@
|
||||
# Budgetbewertung nach erneutem Belegabruf
|
||||
|
||||
Bug17 wurde an Generation 103 blockiert, weil drei Antworten nach Recall eine
|
||||
Bewertung enthielten, obwohl `previous_result` null war. Die nächste Source-Abfrage
|
||||
war plausibel und vollständig. `assessment` betrifft ausschließlich die einmalige
|
||||
Budgetabrechnung eines neuen Rechercheergebnisses, nicht eine erneute Bewertung
|
||||
alten Inhalts. Recall selbst erzeugt keinen neuen abrechenbaren Auftrag.
|
||||
|
||||
## Kontextabhängiger Vertrag
|
||||
|
||||
Neue begrenzte Untersuchungskontexte enthalten `assessment_scope_version: 1`.
|
||||
Damit erlaubt ihr Antwortschema bei null `previous_result` nur null `assessment`,
|
||||
bei einem offenen Ergebnis dagegen nur ein vollständiges Bewertungsobjekt.
|
||||
Das optionale Kontextfeld erhält bestehende gespeicherte Anfragen unverändert.
|
||||
Bereits eingefrorene Kontexte werden nicht nachträglich umgeschrieben; die
|
||||
Controllerprüfung und neue Rückmeldungen gelten trotzdem auch bei ihnen.
|
||||
Fehlerhinweise nennen `/assessment` und erklären das erforderliche Verhalten.
|
||||
|
||||
## Eng begrenzte Übernahme
|
||||
|
||||
Bei aktivierter Antwortreparatur und begrenztem Fenster v2 kann ein normaler
|
||||
`investigate_one_step` mit ausdrücklich null `previous_result` eine überflüssige
|
||||
Budgetbewertung neutralisieren. Voraussetzung sind:
|
||||
|
||||
- Ausschließlich `assessment`, `observation`, `next` an der Antwortwurzel.
|
||||
- Vollständige Bewertung mit Integer-Score 0–100 und nicht leerem Grund.
|
||||
- Keine zusätzlichen Belegfelder und keine unbekannten E-Referenzen im Grund.
|
||||
- Eindeutige Aktion `tool`/`project.query` mit einem bekannten lesenden Query-Kind.
|
||||
- Die Antwort besteht nach Setzen von `assessment: null` das Antwortschema.
|
||||
|
||||
Beobachtung und Auftrag bleiben unverändert. Original und Regel
|
||||
`non_applicable_budget_assessment:/assessment` werden im Aufruf gespeichert;
|
||||
die entfernte Bewertung wird weder als Erkenntnis noch als Gutschrift übernommen.
|
||||
Anschließend gelten weiterhin sämtliche Controller-, Beleg-, Projekt- und
|
||||
Budgetprüfungen vor der Ausführung. Unbekannte Aktionen, fehlerhafte Scores,
|
||||
zusätzliche Findings, unklare Belegangaben und ausstehende neue Ergebnisse fallen
|
||||
nicht unter diese Reparatur. Fehlende Bewertungen werden nicht erfunden.
|
||||
|
||||
## Nachweis
|
||||
|
||||
`test-results/token-usage/bug17-assessment-recovery-offline-20261020.json`
|
||||
protokolliert die Übernahme aller drei Originalantworten gegen die exakten
|
||||
ursprünglichen Kontexte und die konfigurierte Source-Prüfung. Keine Ausführung,
|
||||
keine Budgetänderung, keine neuen bezahlten API-Anfragen.
|
||||
|
||||
Tests prüfen kontextabhängige Schemas, historische Kontextkompatibilität,
|
||||
Originalantworten, Idempotenz, Audit, Ausschluss mehrdeutiger Fälle und einen
|
||||
Controllerdurchlauf nach Recall: Ein gültiger Rechercheauftrag kostet genau seine
|
||||
regulären Einheiten, ohne zusätzliche Rückerstattung für den bereits bekannten
|
||||
Beleg und ohne zusätzlichen LLM-Korrekturaufruf.
|
||||
|
||||
Prüfergebnis: 212 Tests der breiteren Prüfung bestanden (191,46 Sekunden).
|
||||
Die gezielten Tests wurden nach der letzten Präzisierung erneut ausgeführt:
|
||||
24 bestanden (6,48 Sekunden); die Mengen überlappen. `git diff --check` ohne Befund.
|
||||
Der bestehende Fall ist ohne Budget-/Artefaktänderung von Generation 103 auf 104
|
||||
manuell wieder freigegeben. Keine kostenpflichtigen API-Aufrufe.
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"format": "viano-offline-recovery-regression",
|
||||
"date": "2026-10-20",
|
||||
"source_run": "bug17-bounded-full-20261020",
|
||||
"source_generation": 103,
|
||||
"cases": [
|
||||
{
|
||||
"call_ref": "llm/operations/8f58f73379896f4edda417f564668be151dea6f1dd75d1872c8aeb64d0cef5ce/round-0001.json",
|
||||
"normalization_rules": [
|
||||
"non_applicable_budget_assessment:/assessment"
|
||||
],
|
||||
"query_preserved": true,
|
||||
"observation_preserved": true,
|
||||
"full_controller_validation": "passed"
|
||||
},
|
||||
{
|
||||
"call_ref": "llm/operations/6ccfd3edde468aa5c42f40ec7c75c2117ae13bf79c3eddd91eb4335ab02d4482/round-0001.json",
|
||||
"normalization_rules": [
|
||||
"non_applicable_budget_assessment:/assessment"
|
||||
],
|
||||
"query_preserved": true,
|
||||
"observation_preserved": true,
|
||||
"full_controller_validation": "passed"
|
||||
},
|
||||
{
|
||||
"call_ref": "llm/operations/4115b3b2b3e209ed778e9ec0c51f6e5ce3a4249e00f87c89aeeedead0841f6a2/round-0001.json",
|
||||
"normalization_rules": [
|
||||
"non_applicable_budget_assessment:/assessment"
|
||||
],
|
||||
"query_preserved": true,
|
||||
"observation_preserved": true,
|
||||
"full_controller_validation": "passed"
|
||||
}
|
||||
],
|
||||
"budgets_unchanged": true,
|
||||
"paid_api_calls": 0,
|
||||
"scope": "Exact saved request and context; recovery followed by full controller validation including configured project source validation. No action execution or result accounting.",
|
||||
"tests": {
|
||||
"broad_suite_passed": 212,
|
||||
"broad_elapsed_seconds": 191.46,
|
||||
"final_targeted_passed": 24,
|
||||
"final_targeted_elapsed_seconds": 6.48,
|
||||
"note": "Targeted suite rerun after tightening query-kind whitelist and pending-result feedback. Counts overlap; do not add."
|
||||
},
|
||||
"manual_resume": {
|
||||
"from_generation": 103,
|
||||
"to_generation": 104,
|
||||
"state": "INVESTIGATING_HYPOTHESES",
|
||||
"unchanged_artifact_sha256": {
|
||||
"investigation_state": "1c71126a1460f71c51a1d2866aab07b37797aaf835f6891f1df46529d2bfc476",
|
||||
"budget_ledger": "68e74e2f64e0d0b43f002a8c6bfe7ba4d765a72a568012e7dd19a939f55f80eb",
|
||||
"case_interpretation": "0fd3c2a1efe0f229592b3038b66db26e704f2fb1a03b7321ceb76450e3f98cb4",
|
||||
"hypotheses": "30494a06ce373f4c497b3964524cee21bdf5350eac515f7a0022619879d125c8"
|
||||
},
|
||||
"budgets_reset": false,
|
||||
"invalid_responses_reset": false
|
||||
},
|
||||
"source_sha256": {
|
||||
"src\\viano_bug_analysis\\analysis\\investigation_lean_v20.py": "f58df59fdd423f515dd439dc90479c815918a42856e9c1cb2ae96f1c572a04f2",
|
||||
"src\\viano_bug_analysis\\analysis\\investigator.py": "ee3db3cb9bfa9a5f6eedf255283a620a77a7d29ee950d4d6adac263e05400d03",
|
||||
"src\\viano_bug_analysis\\llm\\response_recovery.py": "faabf4e34542375f9d881303bf4c95ba1f0af10e3fab7236b5786a2d99eb222f"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user