feat(agent): add odoo review mode with plausibility verdict

This commit is contained in:
2026-09-17 00:29:03 +02:00
parent 7162726b66
commit ba4bf57dcf
10 changed files with 670 additions and 34 deletions
+12 -5
View File
@@ -469,12 +469,19 @@ im Agenten per Feature-Flag (`PV_REVIEW_MODE`, default aus) freigeschaltet.
Verdict (verdict plausible/implausible/not-checkable + checks mit
erwartet/erhalten/⚠/source_id) → Anzeige im Dialog; keine automatische
Korrektur, Odoo bleibt autoritativ.
5. **Agent-seitig (M4.2):** v1.x-Contract `mode=review` + `context`-Feld
(extra=forbid, Whitelist-Schema); Prompt-Regeln erweitert um drei
Beweisklassen (KB-Beleg vs. übermittelter Kontextwert vs. Odoo-Berechnung),
5. **Agent-seitig (M4.2, umgesetzt 2026-09-16):** v1.x-Contract `mode=review`
+ `context`-Feld (extra=forbid, Whitelist-Schema: facts ≤40 mit key-Muster
`[a-z0-9_.-]`/value ≤200, computation mit components ≤40). Prompt-Addendum
mit drei Beweisklassen (KB-Beleg vs. übermittelter Wert vs. Odoo-Berechnung),
Injection-Abgrenzung (Kontext ist Daten, keine Anweisungen) und
Verdict-Format; Post-Validierung: KB-IDs weiter strikt, Kontextwerte ohne
KB-ID als „übermittelt“ referenzierbar; Eval um Review-Fälle ergänzen.
Verdict-Format (Abschnitt „Plausibilitätsprüfung:“ mit OK/WARN ⚠/OFFEN-
Zeilen; OK/WARN brauchen KB-Beleg, sonst Regenerierung → bleibt der
Abschnitt aus, fällt das Verdict ehrlich auf `not_checkable` statt die
zitiergültige Fachantwort zu verwerfen). Feature-Flag `PV_REVIEW_MODE`
(default aus — Test-Agent bleibt knowledge-only). `grounding.data_scope`
im Review: `knowledge_base_plus_review_context`. Audit speichert den
Kontext in `context_json` (Metadatenmodus: ohne Freitext). Tests
`tests/test_review.py` (8 Fälle, offline).
6. **Audit:** Odoo protokolliert gesendete facts/Ergebnis + request_id;
agentseitig deckt sich `data/audit.db` über dieselbe Request-ID.
7. **Nicht-Ziele Phase B:** keine Lohnart-Erstellung durch den Agenten, keine