Zum Inhalt springen

Workflow-Heilung: Drift und Vorschläge

Ändert sich ein Portal und ein Block beginnt zu scheitern, misst Browserberg die Drift und schlägt eine Korrektur vor — ein Mensch übernimmt oder verwirft sie.

Zuletzt aktualisiert:

Drift wird gemessen, nicht geraten

Portale ändern sich unter funktionierenden Workflows: Ein Button heißt plötzlich anders, ein Formular bekommt einen Schritt, ein Selektor veraltet. Browserberg nennt das Drift und erfasst sie pro Block. Eine Drift ist eine Episode — Ergebnisse werden je Block und Iteration gepuffert und erst am Blockende verbucht, damit ein maxRetries des Autors ein einzelnes Problem nicht zu einem alarmierenden Wert vervielfacht.

GET /v1/workflows/:id/health liefert den Drift-Score samt Episoden: welcher Block, welche Runs, was sich geändert hat.

Offene Vorschläge auflisten

Voraussetzungen: api-key

BASE="https://browserberg.com"
AUTH="Authorization: Bearer $BROWSERBERG_API_KEY"
JSON="Content-Type: application/json"

WFID=$(curl -s -X POST "$BASE/v1/workflows" -H "$AUTH" -H "$JSON" -d '{
  "title": "Healing walkthrough",
  "blocks": [ { "blockType": "navigation", "label": "Open_page", "url": "https://example.com" } ]
}' | python3 -c 'import json,sys; print(json.load(sys.stdin)["workflow"]["workflowId"])')

# A fresh workflow has no drift and therefore no proposals -- the empty list
# IS the healthy state. Proposals appear when runs start diverging from the
# published definition, and a human adopts or rejects each one.
curl -s "$BASE/v1/heal-proposals?workflowId=$WFID" -H "$AUTH" | python3 -m json.tool

Ein Vorschlag bleibt ein Vorschlag

Heilung editiert deinen Workflow nie hinter deinem Rücken. Ein Vorschlag trägt die baseVersion, gegen die er berechnet wurde, und einen Content-Hash der Änderung; du übernimmst ihn als neue Version oder verwirfst ihn — heute über die API, mit POST /v1/heal-proposals/:id/adopt oder /reject. Veröffentlichst du selbst eine neue Version, werden offene Vorschläge als veraltet markiert, weil sie einen Workflow beschreiben, den es so nicht mehr gibt.

Vorgeschlagen werden darf nur eine geschlossene Liste von Feldern auf einer geschlossenen Liste von Blocktypen — geschlossen auf beiden Achsen, denn auch ein login-Block hat eine url. Gegen einen code-Block gibt es nie einen Vorschlag: Ein Vorschlag, der Code umschreiben könnte, wäre ein Mechanismus, um beliebigen Code in deinen Account einzuschleusen.

Weiter mit

  • Workflows erstellen Die Blocktypen, die ein Vorschlag anfassen darf — und der eine, den nicht
  • Referenz Workflows Health- und Vorschlags-Endpunkte im Detail
  • Zeitplan-Trigger Bei unbeaufsichtigten Runs zeigt sich Drift zuerst