Zum Inhalt springen

Playground

Was soll die Figur als Nächstes tun?

Was soll die Figur als Nächstes tun? Bei niedriger Gesundheit trinkt sie einen Trank; bei hoher greift sie an.

Was dieses Beispiel zeigt. Game-AI steckt voller „wähle einen Zug aus einer festen Liste“-Entscheidungen, oft als if-else. Hier geht der Figurenzustand an ein Entscheidungsmodell als einzelne Choice-Frage: angreifen, Trank trinken, fliehen, Waffenruhe erbitten oder verspotten. Zurück kommt eine Aktion, die Ihre Spielschleife so ausführen kann, plus Wahrscheinlichkeit je Option.

Beispieleingabe und Ergebnis (Beispieldaten, kein Live-Modelllauf). Ein Grenzwächter steht auf einer engen Brücke bei 12 % Gesundheit, 3 Gegnern, 1 Heiltrank, kein Verbündeter in der Nähe. Ergebnis: Trank trinken, 58 %. Fliehen 24 %, Waffenruhe 9 %, Angriff 7 %, Verspotten 2 %. Nur Gesundheit auf 80 % ändern. Die Wahl kippt zu Angriff 64 %, Verspotten 18 %, Trank 3 %.

Warum Wahrscheinlichkeiten zählen. Bei niedriger Gesundheit gewinnt der Trank mit 58 %, Fliehen hält 24 %. Aus der Verteilung sampeln oder bei zu geringer Konfidenz der Top-Option auf eine Skriptregel zurückfallen — der Wächter verhält sich nicht jedes Mal gleich.

Wann dieser Ansatz passt. Wenn der Zustand in wenige Felder passt, Züge fest sind und Sie eine ausführbare Antwort statt eines Begründungstexts wollen. Die Beispielanfrage nutzt Decider (decider-v1.1). Enthält der Zustand einen Screenshot, wechseln Sie zu einem Clef-Modell mit Bildsupport.

Häufig gestellte Fragen

Werden die Wahrscheinlichkeiten auf dieser Seite live berechnet?

Nein. Es sind Beispieldaten und ändern sich nicht beim Modellwechsel. Melden Sie sich an, um eigenen Spielzustand auszuführen.

Kann ich eigene Aktionen definieren?

Ja. Das Modell wählt aus dem, was Sie in criteria auflisten. Die Maximalzahl steht in der Model info jedes Modells.

Ist es günstig genug für jeden Frame?

Kosten hängen von Anfragegröße und Fragenanzahl ab; siehe Preise. Latenz im eigenen Spiel messen, bevor Sie pro Frame aufrufen.

Beispieldaten ändern sich nicht mit dem gewählten Modell.

Anfrage

state
application/json
{  "npc": "Border guard",  "hp": "12%",  "enemies": 3,  "inventory": {    "healing_potion": 1  },  "terrain": "narrow bridge",  "ally_nearby": false}

Ergebnisse

Beispieldaten
Zwei Beispiele vergleichen

Diese beiden Beispiele unterscheiden sich in einem Detail. Das Ergebnis ändert sich mit ihnen.

Was sich geändert hatNiedrige Gesundheit → hohe Gesundheit

Diese Ergebnisse sind Beispieldaten, kein Live-Modelllauf. Melden Sie sich an, um eigene Inhalte zu testen.
action: attack · Angreifen → potion · Trank trinken
actionchoice
potion · Trank trinken
Konfidenz pro Option
Angreifen
7%
Trank trinken
58%
Fliehen
24%
Waffenruhe erbitten
9%
Verspotten
2%

Code kopieren

SYSTEM_ONE_API_KEY setzen. Das Snippet nutzt eine veröffentlichte Katalog-Modell-ID.

Request-JSON
application/json
{"model":"decider-v1.1","state":{"npc":"Border guard","hp":"12%","enemies":3,"inventory":{"healing_potion":1},"terrain":"narrow bridge","ally_nearby":false},"questions":{"action":{"type":"choice","instructions":"Choose the NPC's next action given the game state.","criteria":{"attack":"Angreifen","potion":"Trank trinken","flee":"Fliehen","parley":"Waffenruhe erbitten","taunt":"Verspotten"}}}}
cURL · POST /v1/systemone
sh
curl "https://system-one.dev/v1/systemone" \  -H "Authorization: Bearer $SYSTEM_ONE_API_KEY" \  -H 'Content-Type: application/json' \  -H 'Idempotency-Key: saved-operation-id' \  --data '{"model":"decider-v1.1","state":{"npc":"Border guard","hp":"12%","enemies":3,"inventory":{"healing_potion":1},"terrain":"narrow bridge","ally_nearby":false},"questions":{"action":{"type":"choice","instructions":"Choose the NPC'\''s next action given the game state.","criteria":{"attack":"Angreifen","potion":"Trank trinken","flee":"Fliehen","parley":"Waffenruhe erbitten","taunt":"Verspotten"}}}}'
TypeScript
TypeScript
// npm install @system-one-ai/core@0.8.0 @system-one-ai/adapter-system-one@0.7.0 @system-one-ai/transport-fetch@0.8.0import { createSystemOne, choice, score, booleanQuestion } from '@system-one-ai/core';import { systemOneAdapter } from '@system-one-ai/adapter-system-one';import { createFetchTransport } from '@system-one-ai/transport-fetch';const client = createSystemOne({  baseURL: "https://system-one.dev/v1",  apiKey: process.env.SYSTEM_ONE_API_KEY!,  model: "decider-v1.1",  adapter: systemOneAdapter,  transport: createFetchTransport(),  timeoutMs: 30_000,  maxRetries: 0,});const result = await client.evaluate({  state: {    "npc": "Border guard",    "hp": "12%",    "enemies": 3,    "inventory": {      "healing_potion": 1    },    "terrain": "narrow bridge",    "ally_nearby": false  },  questions: {  action: choice("Choose the NPC's next action given the game state.", {    attack: "Angreifen",    potion: "Trank trinken",    flee: "Fliehen",    parley: "Waffenruhe erbitten",    taunt: "Verspotten",  }),  },}, { headers: { 'Idempotency-Key': crypto.randomUUID() } });result.answers.action.choiceresult.response.requestId;