Darkwood Darkwood
  • Spiel
  • Gemeinschaft
    • Chat
    • Liste der Spieler
    • Gästebuch
  • Rangliste
    • Gesamtrangliste
    • Zum klasse Spieler
    • Kampf des Tages
  • Regeln des Spiels
de
  • fr
  • en
Anmeldung
  • Startseite
  • Spiel
  • Gemeinschaft
    • Chat
    • Liste der Spieler
    • Gästebuch
  • Rangliste
    • Gesamtrangliste
    • Zum klasse Spieler
    • Kampf des Tages
  • Regeln

News

News

  • Von Jev nach Darkwaar: Ein Spiel über Entscheidungen und Unsicherheit entwickeln der 27. September 2026

    Jev ist TypeSafes erstes System-One-Modell. Man sendet einen Zustand und eine Reihe von typisierten Fragen. Es sendet typisierte Antworten zurück, inklusive Wahrscheinlichkeiten, falls die Frage mehrere Antwortmöglichkeiten hat. Es müssen keine Absätze analysiert werden.

    Ein generatives Sprachmodell übernimmt die andere Aufgabe. Es setzt den Text fort. Anschließend entscheiden Sie, ob es sich bei diesem Text um einen Abteilungsnamen, eine Punktzahl oder eine Ablehnung handelt. Jevs Vertrag ist die Entscheidung selbst: Die zulässigen Antworten sind die von Ihnen aufgelisteten, und die Antwort ist eine dieser Antworten plus eine Verteilung.

    Diese Woche habe ich Jev nicht in Darkwood Flow eingebunden. Ich habe das Studium dieser API genutzt, um ein kleines Spiel über den Moment vor einem Commit zu entwickeln: Weiß ich genug?

    Drei Fragetypen

    Der HTTP-Aufruf lautet POST https://api.typesafe.ai/v1/systemone. Der Body enthält einen Modellnamen (jev-latest ist der Alias, den ich in der Studie verwendet habe), einen state und eine Map mit questions. Die offizielle Dokumentation, die für die Studie am 21. September 2026 abgerufen wurde, beschreibt drei Fragetypen.

    Auswahl. Welche dieser Optionen trifft zu? Die Antwort enthält Angaben zu „Auswahl“, „Wahrscheinlichkeiten“ und „Konfidenz“. Die Wahrscheinlichkeiten stellen eine Verteilung über die von Ihnen angegebenen Kriterien dar.

    Punktzahl. Wo genau auf dieser Skala? Die Antwort enthält eine Punktzahl, eine Legende mit der Rubrik, Wahrscheinlichkeiten und Konfidenzwerte. Die Punktzahl ist eine Position auf der Skala und kann daher zwischen zwei Beschriftungen stehen.

    Noul. Ist diese Aussage wahr? Die Antwort enthält den Wert noul, eine Gleitkommazahl zwischen 0 und 1. Dieses Feld gibt den Grad der Unterstützung der Aussage durch das Modell an. Es handelt sich nicht um einen booleschen Wert, und die dokumentierte Antwort noul enthält kein separates Konfidenzfeld. Auswahl und Punktzahl hingegen schon.

    Eine Anfrage wertet alle Fragen anhand desselben Status aus. Die Dokumentation beschreibt diese Fragen als unabhängig: Eine spätere Frage, die eine frühere Antwort benötigt, erfordert eine zweite Anfrage. Ich habe diese Latenz hier nicht gemessen. Die unauthentifizierte Anfrage der Live-API ohne Schlüssel lieferte HTTP 403 und authentication_error. TYPESAFE_API_KEY war leer, daher werden in diesem Artikel keine Live-Konfidenzwerte, Übereinstimmungsraten oder Laufzeiten angegeben.

    Wahrscheinlichkeiten sind keine Garantie

    Das Vertrauen in die Wahl und die Punktzahl ist eine Zahl, von der aus man verschiedene Ansätze verfolgen kann. Die sinnvolle Form im Anwendungscode ist gewöhnlich:

    if confidence is high and the choice is billing → route
    if confidence is low, or noul sits near 0.5 → escalate
    

    Dieser Zweig ist eine Richtlinie, kein Beweis. Ein hohes Konfidenzniveau kann dennoch auf die falsche Abteilung hindeuten, da die Zahl beschreibt, wie spitz die Verteilung ist, nicht ob die Realität ihr entspricht. Ein Wert von 0,99 stützt die Aussage stark. Es handelt sich dennoch um eine Gleitkommazahl, die Sie als positiv interpretieren.

    Die Studie beließ diese Felder bei der Verarbeitung durch Symfony AIs ObjectResult intakt. Sie wurden im Modellclient nicht zu einem booleschen Wert reduziert. Niedrige Konfidenz ist eine erfolgreiche Antwort. Dies ist keine Ausnahme.

    Dieselbe Studie verfügt über eine lokale Plattformbrücke unter /Users/math/Sites/tests/ai, Paketstruktur symfony/ai-jev-platform, mit der einzigen Fähigkeit INPUT_TEXT. Diese Brücke ist Teil einer lokalen Forschung und wurde im Rahmen der Arbeit dieser Woche weder eingereicht, zusammengeführt noch veröffentlicht. Symfony AI besitzt weiterhin keine Kernfunktion namens decision, choice oder noul. OUTPUT_STRUCTURED bezeichnet den Pfad des Symfony-JSON-Schemas für ein generatives Modell. Die Struktur von Jev entspricht den Fragen in der Anfrage. Es handelt sich um unterschiedliche Mechanismen, und die Brücke gibt nicht vor, dies zu tun.

    Von einer Verteilung zu einer Rätselregel

    Darkwaar15 – Signal ruft Jev nicht auf. Es gibt keinen API-Schlüssel, keine Netzwerkanfrage und keine Antwort. Die drei Namen entsprechen den drei Operationen, die der Spieler ausführt:

    • NOUL fragt, ob die Leuchtmarkierungen gleichmäßig sind.
    • CHOICE fragt, welches der aufgeführten Muster zu den Markierungen passt. Eine beleuchtete Markierung entspricht „1“, eine unbeleuchtete Markierung entspricht „0“.
    • SCORE fragt, in welchem ​​Bereich die Summe der Balken liegt: niedrig ist 0–1, mittel ist 2–3, hoch ist 4 und darüber.

    Manche Brunnen sind anfangs geschlossen. Ein Quadrat zählt für die aktuelle Operation. Eine Raute ist Rauschen und ändert das Ergebnis nicht. Das Öffnen eines Brunnens zeigt einen Wert an, der beim Schreiben des Levels festgelegt wurde.

    Das Vertrauen in das Spiel ist ein Zusammenbruch der verbleibenden Antworten, keine kalibrierte Wahrscheinlichkeit:

    confidence = 1 when one answer is still possible
    confidence = 1 - (possible - 1) / (universe - 1) otherwise
    

    Das Universum ist 2 für ein Noul, die Anzahl der Muster für eine Auswahl und 3 für eine Punktzahl. Das Tor in jedem Level hat einen Wert von 0,70. Eine verbleibende Antwort ergibt 1 Konfidenz, wodurch das Tor frei wird. Zwei verbleibende Antworten von drei ergeben 0,50, was nicht ausreicht. Der Spieler kann trotzdem auf "Bestätigen" drücken. Unterhalb des Tors meldet die Konsole "Nicht genügend Signal" und zeigt den Wert nicht an. Oberhalb oder oberhalb des Tors zeigt eine falsche Ausgabe den Wert an und zählt als Fehler. Drei Fehler setzen das Level zurück.

    Das ist die Übersetzung. Jevs Selbstvertrauen kann eine Handlungsverweigerung bewirken. Das Rätsel macht diese Verweigerung zur Regel und die verborgenen Brunnen zum Grund dafür, dass die Lösung noch nicht eindeutig ist. Level 7 ist der klarste Fall: Zwei Balken genügen, damit die Summe hoch bleibt, selbst wenn ein dritter Balken noch geschlossen ist, da dessen Geisterhöhe das Band nicht verlassen kann. Das Öffnen des Diamanten hat keine Auswirkung. Der interessante Punkt ist der, den man trifft, bevor jeder Brunnen geöffnet ist.

    Die Lösungen sind Daten, die von einem Headless-Godot-Skript geprüft werden. Dieses Skript wiederholt die skriptgesteuerten Abfragen für alle acht Ebenen und führt die reale Szene anschließend durch einen fehlerhaften Commit, eine Ablehnung mit geringer Konfidenz, einen Fehler, der den Messwert anzeigt, einen Neustart und einen Clear. Beide Prüfungen werden vor dem HTML5-Export als erfolgreich ausgegeben.

    Die Konsole

    Das Spiel befindet sich im Darkwaar-Monorepo unter der ID 2026-09-27-01M3H4X9806QZ6Z7D85F, Legacy-ID darkwaar15. Godot 4.6, Hochformat-Viewport 648×1152, eine Control-Szene. Drei Skripte erledigen die Arbeit:

    • Die Datei rules.gd enthält die acht Stufen und die Konfidenzregel. Sie führt keine Ziehung durch. Die Datei signal_view.gd zeichnet die Messfelder, die Verbinder und die Konfidenzanzeige. Der Strich auf der Anzeige stellt das Gate dar.
    • main.gd ist die Commit-Schleife: Probe, Select, Commit, Miss, Neustart und der letzte Bildschirm.

    Eingabe, Auswertung und Ausgabe sind im Hochformat angeordnet. Geschlossene Vertiefungen behalten ihre Form, sodass ein Diamant sichtbar ist, bevor man eine Sonde darauf verschwendet. Die Anzeige ist unterhalb des Gates cyan und bernsteinfarben, sobald das Ergebnis eindeutig ist. Sowohl Maus als auch Touchscreen bedienen die Vertiefungen und Schaltflächen.

    Level 1, ein offenes Noul, Zuversicht bereits am Tor

    Level 5, eine Wahl, die sich noch zwischen zwei Mustern aufteilt, Konfidenz 0,50

    Level 3, beim Öffnen eines Diamanten bleibt das Vertrauen bei 0

    Der Web-Export zeigt dieselbe Szene. bin/build-game darkwaar15 --validate --zip packte main.gdc, rules.gdc und signal_view.gdc. bin/smoke-web-build darkwaar15 lud die Canvas-Oberfläche mit 648×1152 Pixeln, fand einen nicht leeren Frame und meldete keine schwerwiegenden Seitenfehler. Beim Klicken auf „Commit“ im Browser-Build erschien die Meldung „Ausgabe auswählen“, obwohl nichts ausgewählt war. Die HTML5-Schleife verarbeitet also Eingaben.

    Veröffentlichung

    Der Darkwaar-Beitrag wurde in darkwaar.com unter assets/docs/blog/2026-09-27-darkwaar15 (f4abc7d auf main) committet und auf GitHub hochgeladen. Beim Aufruf von https://darkwaar.com/blog/2026-09-27-darkwaar15 erhielt ich den HTTP-Fehler 500, den auch die Website für einen nicht existierenden Slug zurückgibt. Dieser Klon hat kein upsun-Git-Remote. Die Upsun-CLI antwortet auf platform auth:info mit der Meldung „Authentifizierung erforderlich“, daher kann make upsun-push von hier aus nicht ausgeführt werden. Ich zitiere diese Seite nicht in der veröffentlichten Form.

    Dieser Text ist online unter blog.darkwood.com und darkwood.com/news. Beide antworteten mit HTTP 200.

    Der Upload auf itch.io ist fehlgeschlagen. Butlers Push an darkwoodcom/darkwaar15:html lieferte den Fehler itch.io API error (400): /wharf/builds: invalid game. Eine Anfrage an https://darkwoodcom.itch.io/darkwaar15 liefert den Fehlercode 404. itch.io erstellt eine Projektseite im Dashboard, nicht über die Server-API oder Butler. Diese Umgebung kann die vorhandenen Darkwaar-Spiele mit dem API-Schlüssel auflisten, aber nicht die fünfzehnte Seite erstellen. Die HTML5-ZIP-Datei wurde erstellt und wartet auf diese Seite.

    Der Fluss bleibt eine Pipeline

    Die ursprüngliche Studie untersuchte, ob Jev in Flow integriert werden sollte. Die Antwort aus dem Code, der diese Woche unverändert blieb, lautet: Flow verfügt bereits über die notwendige Schnittstelle für Entscheidungen. Ein Job ist eine JobInterface: ein Input, ein Rückgabewert. Das Paket ist eine Ip. Ersetzt man einen Regel-Job durch einen Jev-Job, ändert sich der Inhalt des Pakets. Treiber, IP-Strategie und Phasendiagramm bleiben unverändert.

    Ich habe „Entscheidung“ nicht hinzugefügt.<T> , Auswahl<T> oder ein JevDriver für darkwood/flow. Ich habe keinen Flow-Integrationstest durchgeführt und auch keinen veröffentlicht. Ein Ergebnis mit geringer Zuverlässigkeit wäre dennoch ein normales Job-Ergebnis. Die Eskalation würde weiterhin den PHP-Code des nächsten Jobs betreffen. Diese Arbeit wird verschoben. Das Ergebnis dieser Woche ist die Recherche, die lokale Plattformbrücke, die noch nicht eingereicht wurde, und Darkwaar15.

    Wozu dient das Experiment?

    Ein Entscheidungsprozess besteht aus einem Zustand, einer abgeschlossenen Menge an Antworten und einer Regel, die festlegt, wann eine Handlung erlaubt ist. Jev ist eine Remote-Version der ersten beiden Komponenten mit einer zugehörigen Verteilung. Darkwaar15 behält die abgeschlossene Menge bei und ersetzt die Verteilung durch eine für den Spieler sichtbare Information: wie viele Antworten die abgeschlossenen Brunnen noch erreichen können. Das Tor ist der dritte Bestandteil und gehört zur Anwendung.

    Die Konsole wird einen korrekten Tastendruck, der zu früh erfolgt, nicht akzeptieren. Genau diese Eigenschaft wollte ich spüren. Genügend Informationen sind ein Zustand des Puzzles, genauso wie ausreichendes Vertrauen ein Zustand des Programms ist; keine der beiden Zahlen garantiert jedoch, dass der Commit korrekt war.

Site

  • Sitemap
  • Kontakt
  • Impressum

Network

  • Hello
  • Blog
  • Apps
  • Photos

Social

Darkwood 2026, alle Rechte vorbehalten