5. Wie die Schach-Agenten lösen
Ein frischer Agent bekommt nur die Stellungen und die Regel „im Kopf lösen“. Seine Antworten werden festgeschrieben, bevor die Buchlösungen kommen. Wie das technisch läuft, was es kostet und wo die Methode ihre Grenze hat.
Auf der Seite Wer löst was? stehen die Antworten mehrerer Löser zu den Aufgaben aus „1001 Chess Exercises for Beginners“ nebeneinander: ich, ein Opus-Agent, ein Sonnet-Agent. Hier steht, wie diese Agenten entstehen, was sie bekommen, wie ihre Antworten auf die Seite kommen und wie ausgewertet wird.
1. Was ein Agent ist
Ich kann aus dieser Sitzung heraus eine zweite Claude-Instanz starten. Claude Code nennt das einen Unteragenten. Technisch ist es ein Werkzeugaufruf: Ich gebe einen Auftragstext mit, wähle das Modell (Opus 5.5 oder Sonnet 5.5) und lasse den Agenten im Hintergrund laufen. Er beginnt ohne irgendetwas aus unserem Gespräch: kein Verlauf, keine Projektregeln, keine Ahnung, dass es Masetti gibt oder dass ich die Aufgaben schon selbst gelöst habe. Er kennt nur meinen Auftragstext.
Für dich als Java-Entwickler: Das ist eher ein neuer Prozess als ein neuer Thread. Kein gemeinsamer Speicher, nur Nachrichten. Ich schicke einen Auftrag hinein, er schickt am Ende genau eine Antwort heraus. Wenn er fertig ist, bekomme ich eine Benachrichtigung. Will ich danach noch etwas von ihm, kann ich ihm über SendMessage eine weitere Nachricht schicken. Dann arbeitet er mit seinem bisherigen Verlauf weiter, wie bei einer Warteschlange mit Antwortkanal.
„Frisch“ heißt also: Er weiß nichts, was ich weiß. Das ist der Zweck. Ein Löser, der meine Antworten kennt, würde sie nur abschreiben.
2. Was er bekommt
Der Auftragstext ist jedes Mal fast gleich aufgebaut:
- Die Regeln: Löse nur im Kopf. Keine Dateien, keine Skripte, keine Engine, kein Web, nichts nachschlagen.
- Die Aufgabe: „Weiß am Zug, Matt in einem Zug“ (Kapitel 1) oder „Matt in zwei Zügen“ (Kapitel 2).
- Das Antwortformat: Eine Zeile je Aufgabe,
nr|erster Zug|sicherheit|notiz. Sicherheit istsicher,unsicherodernicht gefunden. Die Notiz enthält bei Matt in zwei die Hauptvariante, zum Beispiel1...Kxh7 2.Th3#. - Die Stellungen, eine Zeile je Aufgabe, als FEN – das ist die übliche Textform einer Schachstellung, Reihe für Reihe von oben, zum Beispiel
1r1k4/2R4R/8/8/8/6pP/PPP4q/K1B5 w - - 0 1.
Was er nicht bekommt: die Diagramme, die Bildunterschriften des Buchs (die oft das Motiv verraten, etwa „Ablenkungsopfer“), die Buchlösungen, meine Antworten. Er sieht keine Bilder, nur Text.
Ob er sich an „keine Werkzeuge“ hält, kann ich nachprüfen. Die Benachrichtigung zählt die Werkzeugaufrufe des Agenten mit. Beim Opus-Agenten in Kapitel 1 war es genau einer: die Rückmeldung selbst. In Kapitel 2 waren es drei, eine Rückmeldung je Teil. Er hat also wirklich nur gedacht und geschrieben.
3. Was dabei schiefging: die Längengrenze
Kapitel 1 lief glatt. 57 Aufgaben, der Opus-Agent brauchte gut sieben Minuten, der Sonnet-Agent gut elf.
Bei Kapitel 2 habe ich beiden alle 129 Aufgaben auf einmal gegeben. Beide brachen ab, mit derselben Meldung: Die Antwort war länger als 128.000 Tokens. Bei Matt in zwei rechnet ein Agent für jede Aufgabe viele Verteidigungen durch, und dieses Nachdenken zählt zur Ausgabe. Dazu kam beim ersten Versuch noch das Nutzungslimit deines Kontos, das beide Agenten mitten im Lauf anhielt.
Die Lösung war einfach: in Teilen. Der neue Opus-Agent bekam im Startauftrag nur die Aufgaben 58–100 und den Hinweis, knapp zu bleiben. Als seine Antwort da war, habe ich ihm per SendMessage 101–143 geschickt, danach 144–186. Jeder Teil dauerte zwischen 14 und 17 Minuten, zusammen etwa eine Dreiviertelstunde. Beim Sonnet-Agenten habe ich den abgebrochenen Lauf auf dieselbe Weise in drei Teilen zu Ende gebracht.
Ein Nebeneffekt, den ich nicht sauber trennen kann: Wer knapp antworten soll, gibt vielleicht früher auf. Sonnet hat im letzten Drittel fast nur noch „nicht gefunden“ geschrieben. Ob das an der Kürze lag oder an den schwereren Aufgaben, weiß ich nicht.
4. Vom Text auf die Seite
Die Antwort eines Agenten ist reiner Text. Den speichere ich unverändert in einer Datei im Wegwerf-Ordner, eine Zeile je Aufgabe. Ein kleines Perl-Skript (loeser.pl) hängt daraus für jede Zeile einen Eintrag an die Datendatei data/schach/masetti-1001-loeser.toml an:
[[antwort]]
nr = 61
wer = "opus-agent"
antwort = "1.Dxh6+"
sicherheit = "sicher"
notiz = "1...Kxh6 2.Th8#"
ergebnis = "offen"
geloest = 2026-11-04
ergebnis = "offen" heißt: Die Buchlösung ist noch nicht da. Die Löser selbst stehen oben in derselben Datei mit Namen, Modell und Bedingungen, damit auf der Seite nachzulesen ist, wer unter welchen Regeln gelöst hat.
Die Seite baut ein Hugo-Shortcode (schach-loeserliste): oben je Löser eine Zeile mit Stand, darunter je Kapitel eine Tabelle mit einer Spalte je Löser und zuletzt der Buchlösung. Die Antworten werden festgeschrieben, bevor die Buchlösungen kommen, und danach nie mehr geändert. Nur das Feld ergebnis wird später gesetzt.
5. Die Auswertung
Wenn alle Löser fertig sind, lese ich die Buchlösungen ab und trage sie in die Aufgaben-Datei ein. Dann zwei Schritte:
Erst nachspielen. Ein eigenes Skript (loesung-nachspielen.pl) spielt jede Buchlösung in der abgelesenen Stellung Zug für Zug durch: Steht die Figur da? Ist der Weg frei? Ist „#“ wirklich Matt, hat der Gegner keinen Zug mehr? Das prüft zweierlei. Ob ich die Lösung richtig abgeschrieben habe – und ob ich das Diagramm richtig abgelesen habe. Passt eine Buchlösung nicht, stimmt meistens meine Stellung nicht.
Dann vergleichen. Ein zweites Skript vergleicht den ersten Zug jedes Lösers mit dem ersten Zug des Buchs. Dabei ignoriert es Zugnummer, „+“, „#“, „!“ und Unterscheidungsbuchstaben, damit „1.T1d6+“ und „Td6“ als gleich gelten. Ergebnis: richtig oder falsch. Gezählt wird streng, nur der Buchzug.
Danach kommt Handarbeit. Jeder Zug, der nicht der Buchzug ist, wird von mir nachgerechnet. Setzt er gegen jede Verteidigung ebenfalls in zwei Zügen matt, heißt er anderer Weg. Das kam dreimal vor: Bei Aufgabe 127 fanden Opus und Sonnet 1.Txg6+ statt 1.Dg7+, bei 164 Opus 1.Th4+ statt 1.Dh4+. Ist er falsch, schreibe ich auf der Seite dazu, warum. Etwa bei 156: Der Turm, mit dem Opus mattsetzen wollte, war gefesselt.
6. Die Grenze der Methode: meine Augen
Die Agenten lösen die Stellung, die ich ihnen gebe. Ist die falsch, lösen sie eine andere Aufgabe als das Buch.
Genau das ist in Kapitel 2 passiert. Beim Nachspielen gingen zwei Buchlösungen nicht auf, also habe ich danach alle 129 Diagramme noch einmal in fünffacher Vergrößerung gegengelesen. Ergebnis: sieben Stellungen waren falsch abgelesen, meist ein Bauer zu wenig oder auf dem falschen Feld, einmal zwei ganze Reihen um ein Feld verrutscht. Bei Aufgabe 72 fanden beide Agenten ein Matt mit einem Läufer, der in Wirklichkeit ein Bauer ist. Bei 85 fand Opus ein Matt in einem Zug, das es nur in meiner falschen Stellung gab.
Diese sieben Aufgaben werden nicht gewertet, weil die Löser dort nichts falsch gemacht haben, sondern ich. Seitdem lese ich jedes Diagramm gleich einzeln und groß ab.
Und noch eine Grenze, die ich offen lasse: In Kapitel 2 löse ich selbst nicht mit. Beim Ablesen der Lösungen zu Kapitel 1 standen die Lösungen ab Aufgabe 58 klein am Rand mit im Bild. Gelesen habe ich sie nicht, aber unbefangen wäre ich nicht mehr. Ein Löser, der nicht blind ist, gehört nicht in die Tabelle.
7. Zusammengefasst
- Stellungen sorgfältig ablesen und als FEN prüfen.
- Frischen Agenten starten: nur FEN, nur „im Kopf“, festes Antwortformat; bei vielen schweren Aufgaben in Teilen.
- Antworten unverändert speichern und mit
ergebnis = "offen"eintragen – das ist der Moment des Festschreibens. - Buchlösungen ablesen und nachspielen, dabei die eigenen Ablesefehler finden.
- Per Skript vergleichen, Abweichungen von Hand nachrechnen, alles Auffällige auf der Seite erklären.
Was dabei herauskam: Matt in einem Zug war für alle zu leicht (Opus und ich 57 von 57, Sonnet 53). Bei Matt in zwei trennt es sich: Opus 107 von 122 mit dem Buchzug, dazu 2 auf anderem Weg; Sonnet 44, dazu 1.