feat(agent): add index bootstrap and answer feedback

This commit is contained in:
2026-09-16 22:40:06 +02:00
parent 4f5107a46a
commit b42c326d7f
19 changed files with 757 additions and 41 deletions
+23 -6
View File
@@ -5,10 +5,10 @@ Rollender Übergabe-Log für agent-Threads. Workflow: `.agents/SKILL.md`
## Current focus
Der Docker-Compose-Stack (D21) für UI + API auf `100.103.83.12` ist lokal
gebaut und validiert. Offen ist nur der Zielhost-Smoke-Test samt Verifikation
des tatsächlichen Ollama-DNS-Alias im externen Netz `ollama-default`; danach
kann der dünne Odoo-Client folgen.
Automatischer Index-Bootstrap, detailliertes Q&A-Audit und Antwortbewertungen
(D22) sind umgesetzt; das externe Zielnetz ist auf `ollama_default` korrigiert.
Offen bleibt der Zielhost-Build/Smoke-Test samt Verifikation des Ollama-DNS-
Alias; danach kann der dünne Odoo-Client folgen.
## Completed (2026-09-14)
@@ -448,7 +448,8 @@ kann der dünne Odoo-Client folgen.
100.103.83.12` mit gesetztem `PV_API_KEY`; UI auf Port 8080. Tests 82 → 84.
- **D21 (Docker-Compose-Deployment, 2026-09-16):** `compose.yaml` baut einen
gemeinsamen UI-/API-Container, bindet Port 8080 nur an `100.103.83.12` und
tritt dem externen Netz `ollama-default` bei. Ollama wird nicht dupliziert;
trat zunächst dem externen Netz `ollama-default` bei; D22 korrigiert den
tatsächlichen Namen auf `ollama_default`. Ollama wird nicht dupliziert;
`OLLAMA_URL` ist konfigurierbar (Beispiel `http://ollama:11434`, Alias auf
Zielhost noch zu verifizieren). `data/` ist schreibbar, `wissensbasis/`
read-only; Root-FS read-only, Capabilities entfernt, no-new-privileges,
@@ -457,6 +458,21 @@ kann der dünne Odoo-Client folgen.
`requirements-runtime.txt`. Compose `config --quiet`, Image-Build und
read-only Import-/Asset-Smoke-Test bestanden. Deployment: `docs/DOCKER.md`.
Statische Deploymenttests erhöhen die Suite von 84 auf **87 Tests**.
- **D22 (Bootstrap, Audit und Bewertungen, 2026-09-16):** Das Container-CMD
führt vor FastAPI `agent.bootstrap` aus. Ein Index gilt nur bei vorhandenen
Chunks und vollständiger Vektorabdeckung für `PV_EMBED_MODEL` als bereit;
andernfalls wird er im externen Netz `ollama_default` automatisch aufgebaut.
Embedding-Fehler stoppen den Container statt BM25-only in Produktion zu
starten. `agent.audit` protokolliert Interaktionen und Bewertungen in
`data/audit.db` mit konfigurierbarer 30-Tage-Aufbewahrung und optionalen
`AUDIT`-JSON-Zeilen nach stdout. `PV_AUDIT_LOG_CONTENT=false` entfernt alle
Freitexte inklusive indirekter Inhalte in Suchplan/Quellen/Konflikten. Die
authentisierte API `/v1/ratings` speichert `up|down` plus optionalen Kommentar;
das Frontend zeigt die Funktion nur bei aktiviertem Audit. Keys/Header werden
nie geloggt. Docker-JSON-Logs rotieren bei 50 MB × 5. Letzte Einträge:
`python -m agent.cli audit --limit 20`. Offline-Suite **93 Tests**; Compose-
Validierung, Image-Rebuild und unprivilegierter read-only Bootstrap-Smoke-Test
gegen den bestehenden vollständigen Index bestanden.
- **Bake-off-Protokoll** (Skill): Modellwechsel nur über dokumentierten
Goldset-Vergleich; Kriterium: Zitier-Präzision > Verweigerungs-
korrektheit > Latenz.
@@ -469,7 +485,8 @@ kann der dünne Odoo-Client folgen.
- `docs/API.md` — v1-Vertrag, Authentisierung, Privacy-Grenze und Odoo-Aufruf.
- `agent/api.py` — versionierte Service-Oberfläche, UI-Auslieferung und Sicherheitsgrenzen.
- `web/` — dependency-freies Test-Frontend.
- `compose.yaml`, `Dockerfile`, `.env.example`, `.dockerignore` — Zielhost-Stack.
- `compose.yaml`, `Dockerfile`, `.env.example`, `.dockerignore` — Zielhost-Stack und automatischer Bootstrap.
- `agent/bootstrap.py`, `agent/audit.py` — Indexbereitschaft, Q&A-Log und Bewertungen.
- `docs/DOCKER.md` — Deployment, Indexaufbau und Smoke-Tests.
- `agent/eval/goldset.yaml` — Goldset (IDs gegen kb.json verifiziert).
- `agent/generate.py` — Grounding-Kern (Prompt, Post-Validierung).