Zum Inhalt springen

Provenienz und Routing-Tiers

Jede Verb-Antwort trägt einen Provenienz-Block. Was jedes Feld bedeutet, woran du ein Replay ganz ohne Modellaufruf erkennst und was tier dir verrät.

Zuletzt aktualisiert:

Wofür Provenienz da ist

Jede Verb-Antwort — observe, act und extract gleichermaßen — trägt einen provenance-Block. Er beantwortet die Fragen, die du sonst aus Logs und Rechnungen rekonstruieren würdest: Hat dieser Aufruf den Plan-Cache getroffen, wie viele Inferenzaufrufe hat er gemacht, welches Routing-Tier hat ihn bedient, und wo im Browser der Wahrnehmungscode gelaufen ist.

Die Provenienz-Felder

Name Typ Beschreibung
planCacheHit boolean True, wenn ein zwischengespeicherter Plan abgespielt wurde statt neu zu planen. Ein Replay macht keinen Modellaufruf.
healApplied boolean True, wenn der Plan aus dem Cache nicht mehr exakt zur Seite passte und vor dem Replay repariert wurde.
inferenceCalls integer Wie viele Modellaufrufe dieser Request gemacht hat. Null bei observe ohne Anweisung und bei sauberen Cache-Replays.
tier string | null Welches Routing-Tier die Inferenz bedient hat: performance oder sovereign, null wenn kein Modell aufgerufen wurde. Das Enum ist offen.
world string Wo die Wahrnehmung lief. extension heißt: das Bundle in der Browser-Extension der Session; cdp-fallback heißt: stattdessen über CDP injiziert.
requestId string Die id für eine Support-Anfrage — oder zum Abgleich mit dem Audit-Log.
durationMs integer Wanduhrzeit des Verbs, Ende zu Ende.

Provenienz auslesen

Der Block sitzt auf jeder Antwort — ihn nach einem observe ohne Anweisung auszugeben zeigt den Fall ganz ohne Inferenz.

Voraussetzungen: api-key

import { Browserberg } from '@browserberg/sdk';

const bb = new Browserberg({
  apiKey: process.env.BROWSERBERG_API_KEY!,
  baseUrl: 'https://browserberg.com',
});

await using session = await bb.sessions.create({ ttlSeconds: 300 });
await session.act({
  steps: [{
    encodedId: null, action: 'navigate', role: 'none',
    description: 'open example.com', value: 'https://example.com',
  }],
});

// An instruction-free observe reads the page without a model call, and the
// provenance block says so: this is how you tell a cached replay from a paid
// inference call without reading your bill.
const observed = await session.observe();
console.log(JSON.stringify(observed.provenance, null, 2));

Die Ökonomie des Plan-Caches

Ein abgespielter Plan kostet keine Inferenz: planCacheHit: true mit inferenceCalls: 0 ist der Normalzustand einer stabilen Automatisierung. healApplied markiert den Mittelweg — die Seite hat sich verschoben, der Plan aus dem Cache wurde repariert, und die Reparatur kann einen Aufruf gekostet haben, den das saubere Replay nicht gebraucht hätte. Diese drei Felder über eine Woche zu beobachten sagt dir, was deine Automatisierungen wirklich kosten und welche vom Cache leben.

Weiterlesen

  • Die drei Verben Die Aufrufe, die einen Provenienz-Block erzeugen
  • Isolation und Souveränität Warum das sovereign-Tier verweigert statt herabzustufen
  • Protokoll-Versionierung Warum unbekannte tier-Werte dich nicht brechen dürfen