4.5 KiB
4.5 KiB
Taktik-Erkennungsmodul – Requirements
Ziel und Rolle im System
- Ergänzt die vorhandene Engine- und LLM-Pipeline: wird nach der Engine-Analyse eingeschoben, bevor das LLM Feedback generiert.
- Aufgabe: Wenn der Spieler nicht den Engine-Bestzug gespielt hat, identifiziert das Modul, ob der Bestzug ein klassisches taktisches Motiv auslöst (z. B. Figurgewinn, Pin, Fork) und stellt diese Information strukturiert für das LLM bereit.
- Nichts bestehendes wird ersetzt; es liefert nur zusätzliche, konservative Taktik-Hinweise.
Eingaben (pro Spielerzug)
- Ausgangsstellung als FEN.
- Spielerfarbe.
- Gespielter Zug des Spielers.
- Engine-Bestzug für die Ausgangsstellung.
- Optional: 1–2 Halbzüge der PV des Bestzugs (z. B. Bestzug + Antwort).
- Optional: Eval-Infos vor/nach dem Zug bzw. nach Bestzug, falls zur Filterung genutzt.
- Das Modul ruft selbst keine Engine auf; es nutzt nur bereitgestellte Daten.
Ausgabe
- Liste erkannter Motive (leer, wenn nichts gefunden), jedes mit:
tactic_type– z. B.win_material,win_pawn,pin,fork,skewer,check,hanging_piece,improve_activity,none.affected_squares– optionale Felderliste.piece_roles– beteiligte Figuren, inkl. Farbe (z. B. „weißer Läufer“, „schwarzer Springer“).material_delta– grobe Materialeinschätzung (Centipawns, z. B. +100 Bauer, +300 Leichtfigur).move– der Engine-Bestzug, auf den sich das Motiv bezieht.
- Diese Struktur wird an das LLM weitergereicht, damit es textuelle Hinweise erzeugt (z. B. „Mit Lxd5 hättest du einen Bauern gewinnen können“).
Wann das Modul aktiv wird
- Nur prüfen, wenn der Engine-Bestzug vom gespielten Zug abweicht.
- Optionaler Filter: Eval-Verlust über Schwellwert (z. B. >50–100 Centipawns) als Signal für Relevanz.
- Ziel: Rechenaufwand sparen und Rauschen vermeiden.
Ablauf pro relevanter Stellung
- Stellung herstellen: FEN laden, Spielerfarbe setzen.
- Bestzug anwenden: Hypothetisch Engine-Bestzug ausführen.
- Resultierende Stellung prüfen: Regelbasierte Checks (ohne neue Engine-Aufrufe) für taktische Muster.
- Motive sammeln: Alle erkannten Motive in strukturierter Form zusammenstellen.
- An LLM übergeben: Zusammen mit gespielt vs. Bestzug und ggf. Eval-Verlust.
Taktik-Checks (konservativ)
- Materialgewinn / Capture
- Prüfen, ob Bestzug eine gegnerische Figur/Bauern schlägt.
- Figurwert bestimmen; Plausibilität, dass die schlagende Figur nicht sofort mit klarem Materialverlust verloren geht.
- Ergebnis:
tactic_type=win_pieceoderwin_pawn.
- Pin / Fesselung
- Nach Bestzug: greift ein Läufer/Turm/Dame eine gegnerische Figur an, hinter der auf derselben Linie König oder wertvolle Figur steht?
- Ergebnis:
tactic_type=pin.
- Fork / Gabel
- Greift die ziehende Figur gleichzeitig ≥2 wertvolle gegnerische Ziele (z. B. König+Dame, Dame+Turm, zwei Leichtfiguren)?
- Ergebnis:
tactic_type=fork.
- Skewer
- Linienangriff, bei dem eine höherwertige Figur vor einer weniger wertvollen steht und nach Abzug Material fällt.
- Ergebnis:
tactic_type=skewer.
- Schach / direkte Drohung
- Bestzug gibt Schach; ggf. kombinieren mit PV-Infos, wenn das Schach Materialgewinn erzwingt.
- Ergebnis:
tactic_type=checkoder kombiniert mit Material-Hinweis.
- Hanging Piece
- Nach Bestzug ist eine gegnerische Figur angegriffen und unzureichend gedeckt.
- Ergebnis:
tactic_type=hanging_piece.
- Weiche Motive (optional/später)
- Aktivitätsverbesserung, Outpost-Kontrolle, Königssicherheit.
- Ergebnis:
tactic_type=improve_activityo. Ä.
Qualität, Priorisierung und Konfiguration
- Konservativ melden: lieber weniger Motive als falsche Treffer.
- Priorisierung (wenn mehrere Motive): Materialgewinn > Fork > Pin > Check > positionelle Motive.
- Konfigurierbar: Schwellwerte für Eval-Verlust, Materialdelta, Prioritätsregeln je Spielstärke.
Verhalten bei "nichts gefunden"
- Leere Motivliste oder
tactic_type = "none"liefern. - Damit kann das bestehende System weiterhin neutralere Hinweise geben (z. B. „Aktivierungschance verpasst“).
Integrationshinweise
- Modul wird zwischen Engine-Auswertung und LLM-Ausgabe aufgerufen.
- Nutzt bereitgestellte Bestzug- und PV-Daten; keine zusätzlichen Engine-Anfragen nötig.
- Output-Format so halten, dass LLM klar referenzieren kann, was mit dem Bestzug möglich gewesen wäre.