feat(agent): harden API-first service

This commit is contained in:
2026-09-16 21:12:47 +02:00
parent aa637270b7
commit c8b55fbd38
12 changed files with 839 additions and 162 deletions
+29 -5
View File
@@ -5,11 +5,10 @@ Rollender Übergabe-Log für agent-Threads. Workflow: `.agents/SKILL.md`
## Current focus
Decision-Support-Tuning (D16) ist stabilisiert und im 53-Fragen-
Bestätigungslauf zitierseitig validiert. Verbleibend ist die bekannte
stochastische Survey-Fehlverweigerung q-029; danach folgen Rechtsprechungs-
Publikations-/Lizenzfreigabe und M4 (API-first Odoo-Integration inkl.
Privacy-Grenze für Lohndaten).
API-first-Festigung (D19): Der eigenständige Wissensdienst erhält einen
versionierten, authentisierbaren v1-Vertrag und eine explizite Privacy-Grenze.
Als Nächstes folgt der dünne Odoo-Client; Lohndaten bleiben bis zum separaten
tenant-autorisierten Datenvertrag außerhalb der Agenten-API.
## Completed (2026-09-14)
@@ -255,6 +254,15 @@ Privacy-Grenze für Lohndaten).
bisherigen Expected-ID. Optional später Goldset-Expected-IDs fachlich
rekalibrieren, aber kein Release-Blocker.
- **D18 (Rechtsprechungsnutzung, 2026-09-16, User-Freigabe):** Auf
gerichtliche Entscheidungen darf in Antworten verwiesen werden. Ihr Inhalt
darf in eigenen Worten wiedergegeben und stellenweise zitiert werden. Die
Agentenantwort muss weiterhin die retrieved `rj-*`-/RIS-KB-ID nennen,
nichtamtliche Wiedergaben ausdrücklich kennzeichnen und darf keine nicht
retrieved Entscheidung ergänzen. Diese Freigabe umfasst Referenz,
Zusammenfassung und auszugsweise Zitate; sie ist keine pauschale Freigabe
zur Veröffentlichung vollständiger quellentreuer Entscheidungstexte.
## Open issues / blockers
- **Push**: Remote localhost:3003 aus der Sandbox nicht erreichbar — User
@@ -414,6 +422,20 @@ Privacy-Grenze für Lohndaten).
erwartete Quelle 92,7 %, Latenz mean 39,6 s / p95 78 s (+5 s:
vollstaendige statt abgeschnittener Antworten). q-024: 4/4 stabil.
Tests 59 → 60. Report `data/eval-qwen38-lengthfix.json`.
- **D19 (API-first-Vertrag, 2026-09-16):** `/v1/ask`, `/v1/health` und
`/v1/reindex` sind die stabilen Endpunkte; alte Pfade bleiben deprecated.
Der Ask-Response enthält Status, Quellen, belegte Konflikte, extrahierte
Rückfrage, Planungs- und Grounding-Metadaten sowie eine Request-ID. Optionaler
Bearer-Schutz über `PV_API_KEY`; Reindex kann mit `PV_ADMIN_API_KEY` getrennt
werden. Leere Keys sind nur lokaler Entwicklungsmodus. Health und öffentliche
Fehler nennen keine internen Hosts/Exceptions. v1 ist zustandslos,
`knowledge_base_only`, lehnt unbekannte JSON-Felder ab und akzeptiert keine
Payroll-/Mitarbeiterobjekte. Odoo-Lohndaten erfordern später einen separaten
tenant-autorisierten Vertrag mit Datensatzregeln, Datenminimierung, Audit und
Cross-Tenant-Tests. Vertrag: `docs/API.md`. Der gemeinsame SQLite-Retriever
ist durch `check_same_thread=False` plus `RLock` worker-thread-sicher. Neue
Nicht-lokaler CLI-Bind ohne `PV_API_KEY` wird fail-closed abgelehnt. Neue
API-/Concurrency-Tests erhöhen die Offline-Suite von 75 auf **82 grüne Tests**.
- **Bake-off-Protokoll** (Skill): Modellwechsel nur über dokumentierten
Goldset-Vergleich; Kriterium: Zitier-Präzision > Verweigerungs-
korrektheit > Latenz.
@@ -423,6 +445,8 @@ Privacy-Grenze für Lohndaten).
- `planung.md` — Plan + Entscheidungspunkte (Abschnitt 12) + Stand.
- `.agents/skills/pv-rag-agent/SKILL.md` — verbindliche Regeln.
- `agent/README.md` — Betrieb, Konfiguration, Host-Schritte.
- `docs/API.md` — v1-Vertrag, Authentisierung, Privacy-Grenze und Odoo-Aufruf.
- `agent/api.py` — versionierte Service-Oberfläche und Sicherheitsgrenzen.
- `agent/eval/goldset.yaml` — Goldset (IDs gegen kb.json verifiziert).
- `agent/generate.py` — Grounding-Kern (Prompt, Post-Validierung).
- `wissensbasis/README.md` — Layer-2-Schema + Rechtsprechungs-Provenance.