6.5 KiB
Erster LLM-Test
Der einmalige Testtreiber verbindet vorhandene Komponenten. Er ist kein Daemon: genau ein Fall, begrenzte Dispatches, keine Hintergrund-Wiederholungen, keine automatische Wiederaufnahme blockierter Fälle. Architektur und Projektcode bleiben unverändert. Die bekannte Fehlerlösung gehört nicht in Eingaben oder Prompts.
Vorbereitung in PowerShell
Alle Befehle aus dem Repository-Hauptverzeichnis ausführen, nicht aus config/.
Python 3.11+ und die installierte Projektumgebung werden vorausgesetzt. Die lokale
Datei config/llm.local.toml muss existieren; API-Schlüssel kommen ausschließlich
aus den darin benannten Umgebungsvariablen. Das Programm muss aus der PowerShell
mit diesen Variablen gestartet werden. Es lädt keine .env automatisch.
.\.venv\Scripts\python.exe -m viano_bug_analysis.trial check
CONFIG_READY bestätigt gültige Konfiguration und vorhandene Schlüssel aller
aktivierten, zulässigen Anbieter. Es prüft keine Erreichbarkeit, Modellfreigabe,
Abrechnung oder JSON-Kompatibilität. Es sendet keine Netzwerkanfrage und gibt
keine Schlüssel aus. Ohne API-Key erscheint LLM_CREDENTIALS.
Import des Beispielpaars ohne LLM:
.\.venv\Scripts\python.exe -m viano_bug_analysis.trial prepare --workspace service-data --wowdiag "C:/Users/User/Desktop/Cata Bug fixes/BUG-000020-20261008-130429.tar.gz" --wowsrc "C:/Users/User/Desktop/Cata Bug fixes/WOWSRC-BUG-000020-20261008-130446.tar.gz" --case-id BUG-000020 --package-id trial-BUG-000020
Die Ausgabe PREPARED nennt den vollständigen package-Pfad in
service-data/inbox/. IDs werden explizit vergeben; Dateinamen liefern keine
Identität. Ohne --package-id entsteht eine UUID. Identische erneute Vorbereitung
überschreibt keine vorhandene Datei. service-data/ und config/*.local.toml
sind durch Git ausgeschlossen. Originalarchive bleiben unverändert.
Echte Verarbeitung
Nur dieser Schritt kann kostenpflichtige LLM-Aufrufe auslösen und bei
cloud_allowed zusammengestellte Falldaten an Cloud-Dienste senden:
.\.venv\Scripts\python.exe -m viano_bug_analysis.trial run --workspace service-data --package "VOLLSTAENDIGER_PACKAGE_PFAD_AUS_PREPARED"
Der erste Lauf validiert die Inbox-Datei, sichert den Original-ZIP im Cache und übernimmt ihn in die verwalteten Generationen. Nach bestätigter Aufnahme wird die Inbox-Datei quittiert. Andere Inbox-Dateien werden nicht verarbeitet. Phase und Dispatchnummer erscheinen auf stderr; das finale JSON auf stdout enthält Identität, Zustand, Generation, Routing und ggf. Export-/Retry-Pfad.
Für den ersten Verbindungstest --max-dispatches 2 ergänzen: Bei einem frischen
Paket wird der Case deterministisch gebaut und anschließend die Interpretation
angefragt. Bei Erfolg endet dieser kurze Lauf mit YIELDED. Anschließend mit
den stabilen IDs weiterarbeiten. Bereits bestätigte Schritte werden wiederverwendet.
Nach Aufnahme mit der stabilen Identität fortsetzen:
.\.venv\Scripts\python.exe -m viano_bug_analysis.trial run --workspace service-data --case-id BUG-000020 --package-id trial-BUG-000020
Ein Prozess führt standardmäßig höchstens 100 Dispatches aus. Das ist eine
konfigurierbare Testlaufgrenze (--max-dispatches), kein neues Hypothesenbudget
und keine Geldgrenze. Investigation macht einen kontrollierten Schritt pro
Dispatch. Die bestehenden Hypothesenbudgets und Iterationsgrenzen gelten weiter.
Bei YIELDED setzt derselbe Resume-Befehl die Analyse fort.
RETRY_PENDING/DEFERRED beendet den Lauf sofort mit dem frühesten nächsten
Zeitpunkt. Nach diesem Zeitpunkt denselben Resume-Befehl ausführen. Kein Sleep
oder automatischer Neustart: zehn Provider-Runden benötigen wiederholte fällige
Dispatches. BLOCKED bleibt blockiert, auch wenn eine Frist vergeht. Externe
Testanfragen erhalten ihre Reservierungen; die spätere bestätigte Feedback-
Integration ist für deren Wiederaufnahme zuständig.
Interpretation/Hypothesen mit ungültiger Antwort verwenden die begrenzte
Korrekturschleife: standardmäßig drei ungültige Antworten
pro Phase/Revision, einschließlich vorheriger Fehlversuche. Neue Antworten
erhalten Validierungsfeedback. --attempt-id setzt diese Grenze nicht zurück.
Nach Ausschöpfung erfolgt früher Review ohne Diagnose/Coding-Auftrag. Die späteren
Phasen behalten ihre bestehenden Grenzen. Keine automatische neue Analysis
Revision oder Budgetzurücksetzung findet statt.
Optionale Konfigurationspfade: --analysis-config, --budget-config,
--investigation-config, --diagnosis-config, --change-request-config,
--telemetry-config, --llm-config, --correction-config. Ohne Pfade gelten die bestehenden Defaults.
Bereits eingefrorene Policies nicht zwischen Resume-Läufen ändern; dieselben
Optionen erneut angeben. Der gesamte Gateway-Konfigurationsfingerprint ist Teil
der Operation; Änderungen können kontrolliert als Konflikt abgelehnt werden.
Ergebnis und Diagnose
OUTPUT_READY: validiertes ZIP mit Diagnose und Coding-Auftrag inoutbox/.REVIEW: validiertes ZIP mit Untersuchungsbericht inreview/; kein Coding-Auftrag.BLOCKED: langlebiger verwalteter Fall; Grund und Budgets bleiben erhalten.YIELDED,RETRY_PENDING,DEFERRED,REJECTED: kontrollierter Zwischenstand.ERROR/QUARANTINED: Fehlercode und ggf. Quarantäne-Diagnose prüfen.
Exitcodes: 0 für erfolgreiche Vorbereitung/Prüfung/lokale Ausgabe, 3 für einen Zwischen-/Wartezustand, 2 für Fehler, 130 für Abbruch mit Ctrl+C. Ein Review ist ein erfolgreiches kontrolliertes Analyseergebnis, kein bewiesener Fix.
.\.venv\Scripts\python.exe -m viano_bug_analysis.telemetry status --workspace service-data
.\.venv\Scripts\python.exe -m viano_bug_analysis.telemetry errors --workspace service-data
.\.venv\Scripts\python.exe -m viano_bug_analysis.telemetry events --workspace service-data
Logs, Status und Prometheus-Text liegen in service-data/runtime/telemetry/.
STOPPED nach einem beendeten Testlauf ist normal. Stack-Diagnosen enthalten
keine freien Exceptiontexte, Prompts oder Schlüssel. Der Treiber bleibt bei
kontrollierten Fehlern ohne rohe Tracebacks. Fallartefakte enthalten hingegen
die fachlichen LLM-Anfragen/-Antworten und sind entsprechend vertraulich.
Vergleiche anschließend Diagnose, Evidenz und ggf. Änderungsauftrag mit der bekannten Fehlerlösung. Ein Live-Test beweist die Modellqualität noch nicht; insbesondere fehlende Sollinformationen oder nicht angeschlossene externe Research-/Tester-Dienste können zu Wartezuständen oder Review führen.