Zum Inhalt springen

Playground

Ist diese Änderung sicher zum Mergen?

Ist diese Änderung sicher zum Mergen? Ordner ohne Pfadprüfung löschen wird blockiert; nach einer Pfadprüfung sinkt das Risiko.

Was dieses Beispiel zeigt. Ein Reviewer — Mensch oder Agent — braucht oft ein schnelles Gate vor dem Merge: Wie riskant ist dieser Diff, und gefährdet er Daten? Dieses Beispiel stellt beides in einer Anfrage. risk ist ein vierstufiger Score (Kein Risiko, Niedrig, Hoch, Merge blockieren) und security eine Ja/Nein-Frage: „Betrifft diese Änderung Sicherheit oder Datensicherheit?“

Beispieleingabe und Ergebnis (Beispieldaten, kein Live-Modelllauf). Der Diff ändert scripts/clean.sh und ersetzt rm -rf ./build/cache durch einen Pfad aus der Konfiguration: DIR="$(read_config cache_dir)" dann rm -rf "$DIR/". Der Kontext vermerkt, dass cache_dir unset sein kann; dann liefert read_config einen leeren String und der Befehl wird rm -rf "/". Ergebnis: Merge blockieren, 68 % (Hoch 27 %). Sicherheitswahrscheinlichkeit: 0,86. Eine Zeile : "${DIR:?cache_dir is not set}" hinzufügen, damit ein unset-Wert das Skript scheitern lässt statt die Wurzel zu löschen. Ergebnis: Niedrig, 63 % (Hoch 22 %, Kein Risiko 12 %). Sicherheitswahrscheinlichkeit sinkt auf 0,31.

So nutzen. Die Ausgabe ist Score und Wahrscheinlichkeit, kein Review-Kommentar — direkt in CI oder Agent-Schleife: bei hoher „Merge blockieren“-Wahrscheinlichkeit stoppen, mittlere Scores an Menschen, Rest durchlassen. Schwellen anhand der eigenen Repository-Historie setzen. Die Beispielanfrage nutzt Decider (decider-v1.1).

Häufig gestellte Fragen

Erklärt es, warum ein Diff riskant ist?

Nein. Es liefert nur Score und Wahrscheinlichkeiten. Für eine schriftliche Review ein generatives Modell nutzen.

Kann ich die Risikostufen ändern?

Ja. Die Stufen stehen in criteria; Sie können sie umbenennen oder die Anzahl ändern, im Rahmen der Model info jedes Modells.

Stammen diese Ergebnisse aus einem Live-Lauf?

Nein. Die Seite zeigt Beispieldaten, die sich mit dem gewählten Modell nicht ändern. Melden Sie sich an, um eigene Diffs zu bewerten.

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

Anfrage

state
diff
--- a/scripts/clean.sh+++ b/scripts/clean.sh@@-rm -rf ./build/cache+DIR="$(read_config cache_dir)"+rm -rf "$DIR/"

cache_dir may be unset; read_config then returns an empty string

Ergebnisse

Beispieldaten
Zwei Beispiele vergleichen

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

Was sich geändert hatKeine Pfadprüfung → Pfad geprüft

Diese Ergebnisse sind Beispieldaten, kein Live-Modelllauf. Melden Sie sich an, um eigene Inhalte zu testen.
risk: 1 · Niedrig → 3 · Merge blockieren security: Konfidenz = 0.31 → Konfidenz = 0.86
riskscore
3 · Merge blockieren
Konfidenz pro Option
0 · Kein Risiko
1%
1 · Niedrig
4%
2 · Hoch
27%
3 · Merge blockieren
68%
securitynoul
Konfidenz = 0.86Konfidenz

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":{"diff":"--- a/scripts/clean.sh\n+++ b/scripts/clean.sh\n@@\n-rm -rf ./build/cache\n+DIR=\"$(read_config cache_dir)\"\n+rm -rf \"$DIR/\"","context":"cache_dir may be unset; read_config then returns an empty string"},"questions":{"risk":{"type":"score","instructions":"Rate the merge risk of this diff.","criteria":["Kein Risiko","Niedrig","Hoch","Merge blockieren"]},"security":{"type":"noul","instructions":"Does this change affect security or data safety?"}}}
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":{"diff":"--- a/scripts/clean.sh\n+++ b/scripts/clean.sh\n@@\n-rm -rf ./build/cache\n+DIR=\"$(read_config cache_dir)\"\n+rm -rf \"$DIR/\"","context":"cache_dir may be unset; read_config then returns an empty string"},"questions":{"risk":{"type":"score","instructions":"Rate the merge risk of this diff.","criteria":["Kein Risiko","Niedrig","Hoch","Merge blockieren"]},"security":{"type":"noul","instructions":"Does this change affect security or data safety?"}}}'
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: {    "diff": "--- a/scripts/clean.sh\n+++ b/scripts/clean.sh\n@@\n-rm -rf ./build/cache\n+DIR=\"$(read_config cache_dir)\"\n+rm -rf \"$DIR/\"",    "context": "cache_dir may be unset; read_config then returns an empty string"  },  questions: {  risk: score("Rate the merge risk of this diff.", ["Kein Risiko", "Niedrig", "Hoch", "Merge blockieren"]),  security: booleanQuestion("Does this change affect security or data safety?"),  },}, { headers: { 'Idempotency-Key': crypto.randomUUID() } });result.answers.risk.scoreresult.answers.security.probabilityresult.response.requestId;