Entwurf für ein Incident-Postmortem mit KI erstellen

Ein Agent verbindet einen Vorfall von der Statusseite mit einer betroffenen Zahlung und füllt eine Postmortem-Vorlage ohne Schuldzuweisung aus.

  • Dateien
  • Schreibgeschützte Verbindung
  • Web
  • Budgetlimit

Eine echte Ausführung ansehen

Eine echte Ausführung vom 7. Okt. 2026, erneut abgespielt. Modell: openai/gpt-6-luna.

Eingabe
{
  "payment_id": "pay_124",
  "status_url": "https://ephemer.al/api/samples/status"
}
Erfolgreichrun_19f2f90e2a609356f9dfd2cee0bc326a$0.004235 von $0.05
  1. In WarteschlangeBudget $0.05 reserviert
  2. MicroVMmicroVM ready
  3. MicroVMworker started · shell off · web on
  4. Verbindungpayments GET /payments/pay_124
  5. Verbindungpayments GET /payments/pay_124/attempts
  6. Webweb_fetch https://ephemer.al/api/samples/status
  7. Dateiread postmortem-template.md
  8. Ergebnispayments GET → 200
  9. Ergebnispayments GET → 200
  10. Ergebnisweb https://ephemer.al/api/samples/status → 200
  11. MicroVMmicroVM destroyed
  12. Erfolgreich2 Modellaufrufe, 4,039 TokensAufgezeichnete Ausgabe (Englisch)

    Postmortem: Elevated card payment errors in Europe

    Blameless. Describe what happened and what the system allowed, not who did it.

    Summary (2 sentences)

    On 2026-10-05, some EU card payments failed with processor timeouts during an incident. Payment pay_124 failed with a processor timeout and was not retried in the recorded attempt.

    Impact (who, how many, how long, money if known)

    One failed payment is documented: €129.00. Total customers and payments affected are not known. The incident timeline says affected failures occurred between 13:25 and 14:15 UTC.

    Timeline (UTC, one line each, only facts from the sources)

    • 2026-10-05 13:31 UTC — Incident investigating: some EU card payments failed with a processor timeout.
    • 2026-10-05 13:42:51 UTC — pay_124 failed; its attempt recorded a processor timeout.
    • 2026-10-05 13:58 UTC — Incident identified as a network change at one acquiring partner.
    • 2026-10-05 14:20 UTC — Incident resolved; card payments in Europe were processing normally. Failed payments from 13:25–14:15 UTC could be retried.

    Cause

    The incident source attributes the errors to a network change at one acquiring partner.

    What went well

    The incident was identified and resolved, and the status update said affected payments could be retried.

    Action items (owner role, not a person)

    Not known from the sources.

  13. Worker zerstört$0.004235 berechnet, $0.045765 freigegeben
Modell $0.000435 · Web $0.001 · Rechenleistung $0.0028

Selbst ausführen

Öffnen Sie das Beispiel im Playground, mit der vollständig ausgefüllten Anfrage. Es läuft in Ihrem eigenen Konto, innerhalb des angezeigten Budgets, gegen dieselben schreibgeschützten Beispielsysteme.

Budget für dieses Beispiel: $0.05

So funktioniert es

Zwei schreibgeschützte Quellen, eine Vorlage. Der Agent liest den Vorfallsverlauf von der Statusseite und die fehlgeschlagene Zahlung aus der Payments-API und schreibt nur, was diese Quellen sagen. Maßnahmen nennen Rollen, keine Personen.

Was der Agent tun kann und was nicht

Die Berechtigungen sind Teil der Anfrage. Alles, was hier nicht aufgeführt ist, steht der Ausführung nicht zur Verfügung.

EinstellungErlaubt
Verbindungen
payments: nur GET, unter ephemer.al/api/samples/payments-api
WebNur ephemer.al
ShellAus
Dateienpostmortem-template.md (schreibgeschützt)
Null-DatenspeicherungAus: Das Protokoll wird 30 Tage lang gespeichert
Budget$0.05, ein festes Limit
Timeout120 Sekunden

Zugangsdaten gelangen nie in die Maschine: Ein Broker ergänzt sie bei jedem Aufruf und erzwingt die oben genannten Methoden.

Der Code

Das ist die genaue Anfrage, die das Beispiel sendet. Setzen Sie EPHEMERAL_API_KEY auf einen Mitgliedsschlüssel Ihrer Organisation.

curl -X POST $EPHEMERAL_URL/v1/runs \
  -H "Authorization: Bearer $EPHEMERAL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d @request.json

Dateien in der Anfrage

Inline übergeben, es wird also nichts vorher hochgeladen. Der Agent sieht jede einzelne als schreibgeschützte Datei.

postmortem-template.md
postmortem-template.md
# Postmortem: <title>

Blameless. Describe what happened and what the system allowed, not who did it.

## Summary (2 sentences)
## Impact (who, how many, how long, money if known)
## Timeline (UTC, one line each, only facts from the sources)
## Cause
## What went well
## Action items (owner role, not a person)
Vollständiger Anfragetext request.json

Derselbe Text, mit den Dateien inline.

request.json
{
  "prompt": "Write a postmortem draft for the incident that affected the payment in input.payment_id. Read the payment and its attempts from the payments connection, and the incident timeline from input.status_url with web_fetch. Fill postmortem-template.md, at most 250 words in total. Put every timeline line in UTC and only from the sources. If the sources do not show something (such as the number of customers affected), write 'not known' instead of estimating. Use only what the data returns and never guess; if a call fails or a field is missing, say so.",
  "input": {
    "payment_id": "pay_124",
    "status_url": "https://ephemer.al/api/samples/status"
  },
  "files": [
    {
      "path": "postmortem-template.md",
      "content": "# Postmortem: <title>\n\nBlameless. Describe what happened and what the system allowed, not who did it.\n\n## Summary (2 sentences)\n## Impact (who, how many, how long, money if known)\n## Timeline (UTC, one line each, only facts from the sources)\n## Cause\n## What went well\n## Action items (owner role, not a person)\n"
    }
  ],
  "connections": {
    "payments": {
      "type": "http",
      "url": "https://ephemer.al/api/samples/payments-api",
      "auth": {
        "type": "bearer",
        "token": "sample_read_key"
      },
      "allowed_methods": [
        "GET"
      ],
      "instructions": "GET /payments/{id} returns a payment (status, amount in cents, currency, failure_code, failure_message, attempt_count). GET /payments/{id}/attempts returns its attempts."
    }
  },
  "web": {
    "allow": [
      "ephemer.al"
    ],
    "search": false
  },
  "shell": false,
  "timeout_seconds": 120,
  "max_cost_micros": 50000
}

Mehr erfahren

Ähnliche Beispiele

esc

Keine Treffer für „“.