Simulationsfehler und -warnungen diagnostizieren
Der Szenario-Diagnose-Tab zeigt Ihnen, ob ein Szenario gesund ist — Zyklen, unaufgelöste Referenzen, Laufzeitwarnungen, Skript-Fehler an einem Ort.
Wenn eine Formel nicht so berechnet, wie Sie es erwarten, eine Act-Methode sich falsch verhält oder Sie versehentlich eine zirkuläre Abhängigkeit erzeugt haben, ist die Szenario-Diagnose Ihre Anlaufstelle. Es ist ein einzelner Tab, der die Frage beantwortet: "Ist dieses Szenario gesund?".
Wo Sie sie finden
- Wählen Sie ein Szenario im Modellnavigator
- Öffnen Sie das Eigenschaften-Panel
- Wechseln Sie zum Tab Diagnose
Der Tab ist leer, wenn alles in Ordnung ist. Sobald Probleme auftauchen, werden sie in Abschnitte gruppiert, damit Sie sie Kategorie für Kategorie beheben können.
Was Sie sehen
Zyklen. Zirkuläre Formelverweise — org.team_cost → team_a.cost → team_a.personnel_cost → org.team_cost. Jede Zeile zeigt die Kette, sodass Sie der Schleife folgen und entscheiden können, wo Sie sie aufbrechen. Häufige Ursache: zwei Eigenschaften, die den aktuellen Wert der jeweils anderen lesen. Häufige Behebung: Verwenden Sie auf einer Seite agent.get_prop("x", -1), um stattdessen den vorherigen Zeitschritt zu lesen.
Unbekannte Namen. Ein Eigenschafts- oder Beziehungsname, den die Engine auf den übergebenen Agents nicht findet — Tippfehler, umbenannte Eigenschaft, gelöschter Beziehungstyp. Das ist heikel, weil die Aggregation nicht fehlschlägt, sondern still 0 beiträgt: Der Wert dahinter sieht plausibel aus. Die Diagnose nennt, was angefragt wurde und was verfügbar war.
Ungültige Offsets. Ein get_connected(agent, "rel", offset), dessen Offset keine endliche Zahl ≤ 0 ist — typischerweise ein Verzögerungsparameter, der das Vorzeichen gewechselt hat, oder ein Ausdruck, der durch Null geteilt und unendlich geworden ist. Der Aufruf liefert nichts zurück, statt den Offset umzudeuten: Beide Alternativen (die Zukunft lesen oder still den aktuellen Schritt lesen) erzeugen eine vollständige, selbstsichere, falsche Reihe.
Unaufgelöste dynamische Referenzen. Eine Formel, deren get_connected-Offset ein Ausdruck ist, den die Engine nicht vorab auflösen kann (Arithmetik, eine Bedingung). Die Ergebnisse sind korrekt, aber die Engine muss dafür den gesamten Verlauf jedes Agents aufbauen, und dieser Aufwand wächst mit dem Quadrat der Anzahl der Zeitschritte. Behandeln Sie das als Performance-Warnung: Verlagern Sie den Offset in eine eigene Eigenschaft und referenzieren Sie diese. Siehe Verbundene Agents in Rhai lesen.
Laufzeitwarnungen. Fehler, die während des jüngsten Simulationslaufs aufgetreten sind: Division durch null, NaN oder unendlich, Typkonflikte. Jede Warnung nennt den Agent, den Zeitschritt und die Formel oder Act-Methode, die sie verursacht hat.
Autorenfehler. Syntaxfehler und unbekannte Namensverweise in Ihren Formeln und Act-Methoden, zusammengefasst, sodass Sie jedes fehlerhafte Skript an einer Stelle sehen.
Ein nützlicher Arbeitsablauf
- Zuerst Zyklen. Sie bewirken, dass jede abhängige Eigenschaft auf Baseline-Werte zurückfällt, und verschleiern damit andere Probleme. Brechen Sie den Zyklus auf und lassen Sie neu laufen.
- Dann Autorenfehler. Alles, was zur Parse-Zeit kaputt ist, muss behoben werden, bevor man Laufzeitwarnungen trauen kann.
- Dann Laufzeitwarnungen, unbekannte Namen und ungültige Offsets. Sobald Formeln sauber kompilieren, sind diese meist lokal begrenzt und leicht aufzuspüren — und jede davon ist ein Wert, der still 0 oder nicht vorhanden ist.
- Zuletzt Performance-Warnungen. "Unaufgelöste dynamische Referenzen" machen die Ergebnisse nicht falsch; beheben Sie sie, wenn ein Lauf sich langsam anfühlt.
Tipps
- Ein Szenario kann teilweise gesund sein. Die Abschnitte sind unabhängig, sodass Sie einen funktionierenden Teil der Simulation ausliefern können, während Sie an einem problematischen Teil arbeiten.
- Der Diagnose-Tab zeigt nur Probleme für das aktuell ausgewählte Szenario. Wenn Sie mehrere Szenarien mit unterschiedlichen Überschreibungen haben, wechseln Sie nacheinander zu jedem.
- Ein Lauf, der leer zurückkommt, ist selbst ein Signal: Prüfen Sie diesen Tab, bevor Sie die Verbindung verdächtigen — ein Szenario ohne Agents oder eines, dessen einzige Formel nicht kompiliert, hat nichts zurückzugeben.
Nächste Schritte
- Eigenschaftsformeln schreiben — Formeln gleich beim ersten Mal richtig hinbekommen
- Act-Methoden schreiben — wenn Formeln für eine einzelne Eigenschaft nicht ausreichen
- Verbundene Agents in Rhai lesen — Graphdurchlauf-Muster
Dieser Inhalt wurde kollaborativ mit KI erstellt.