TOB steht für Tool Observation Bus. Nova nutzt TOB, um Agenten-Werkzeugaktivität in beobachtete Evidenz zu übersetzen, die andere Bereiche mit Agentenbehauptungen vergleichen können.
TOB hält fest, was Nova während echter Ausführung beobachten kann: Eine Seite wurde gelesen, ein Selektor berührt, Text eingegeben, Navigation versucht, ein Werkzeug schlug fehl oder ein Gate stoppte einen Aufruf vor der Ausführung.
Eine Abschlussnotiz ist eine Behauptung. TOB-Evidenz ist die beobachtbare Spur hinter dieser Behauptung. ETM kann einen Aufgabenabschluss ablehnen, wenn geprüfte Einheiten nicht genug beobachtete Stützung haben; ALP, LCJ, PKS, OK, CLS und AAG können dieselbe Evidenz nach eigenen Regeln nutzen.
Nutzer bedienen TOB selten direkt. Agenten und Integratoren sehen TOB über Felder wie evidenceSummary, verificationResults, taskAwareness.completionAllowed, coverageEvidence und Task-URL-Coverage-Gates.
Kurz gesagt
- TOB speichert beobachtete Werkzeug-Evidenz, kein dauerhaftes Gedächtnis.
- TOB trennt Agentenbehauptungen von Ausführungssignalen.
- Evidenz wird erst nützlich, wenn sie an Aufgabe, Tab oder Scope gebunden ist.
- ETM kann voreiligen Abschluss mit reason=evidence_gap blockieren.
- Coverage Scan liefert serverregistrierte coverageEvidence für vollständige URL-Aufgaben.
- TOB-Evidenz umgeht nie Nutzerfreigaben oder Handlungsschutz.
Was TOB beobachtet
TOB hält evidenzrelevante Signale aus Agenten-Werkzeugarbeit fest. Es macht nicht jedes Ereignis zu geprüftem Wissen, sondern bewahrt Signale für spätere Prüfung.
- Werkzeugausführung TOB kann festhalten, welches Werkzeug lief, ob es erfolgreich war, wie lange es dauerte, welches Ziel genutzt wurde und ob ein logischer Erfolg oder Fehler entstand.
- Oberflächenkontext Bei Browserarbeit können Seiten-URL, Route, Tab, Dokument, Selektor, Eingabe und Vorher-/Nachher-Kontext erhalten bleiben, damit spätere Prüfungen wissen, was berührt wurde.
-
Handlungsart
Beobachtete Arbeit wird als
read,navigate,interact,writeodermetaeingeordnet. - Signale Gelesener Inhalt, sichtbare Oberfläche, DOM-Exposition, Selektorberührung, eingegebener Text, abgeschlossene Navigation, versuchte Mutation und bestätigte Mutation sind Beispiele für TOB-Signale.
-
Aufgaben-Evidenz
Für ETM vergleicht TOB geprüfte Aufgabeneinheiten mit beobachteter Evidenz und gibt das Ergebnis in
evidenceSummaryaus. -
Coverage-Evidenz
Für vollständige URL-Arbeit liefert
nova.coverage_scaneincoverageEvidence-Objekt aus registrierten Scans, statt agentenseitige Coverage-Behauptungen zu vertrauen.
Wann brauche ich TOB?
TOB ist relevant, wenn Nova beweisen muss, dass Arbeit wirklich stattgefunden hat, bevor ein Ergebnis akzeptiert wird: große URL-Reviews, Compliance- oder Accessibility-Prüfungen, Aufgabenläufe mit vielen Einheiten, Selektorreparatur, Lernen aus echten Ergebnissen oder jeder Ablauf, bei dem eine plausible Abschlussnotiz nicht reicht.
Wissensmodell für Agenten
Für einen Agenten beantwortet TOB vier Fragen: Welche Arbeit wurde behauptet, welche Signale wurden beobachtet, wie stark ist die Evidenz, und welche Entscheidung soll ein anderer Bereich daraus treffen?
- Behauptung
- Ein gemeldeter Zustand des Agenten, etwa eine geprüfte Aufgabeneinheit oder ein Abschlusswunsch für eine Instanz.
- Beobachtung
- Ein Signal aus Werkzeugausführung, das Nova sehen kann: Lesen, Klick, Eingabe, Navigation, Fehler, blockierter Aufruf oder strukturierter Scan.
- Scope
- Die Arbeitsgrenze, die Beobachtungen an eine Aufgabe oder ein Ziel bindet. Ohne Scope kann Evidenz existieren, aber keine Aufgabeneinheit sicher beweisen.
- Evidenzgrad
strongbedeutet starke beobachtete Stützung;weakbedeutet vorhandenes, aber unvollständiges Signal;nonebedeutet fehlende erwartete Evidenz nach vollständiger Aufnahme;unknownbedeutet, dass Nova noch nicht beurteilen kann.- Evidenzlücke
- Eine Differenz zwischen
claimedCheckedUnitsund der Evidenz, die die aktive Richtlinie akzeptiert. Ist die Lücke zu groß, kann Completionreason=evidence_gapzurückgeben. - Coverage Evidence
coverageEvidenceist ein Ergebnis registrierter Scans. Es wird erst trusted, wenn serverseitige Prüfungen passen, darunter URL-Konsistenz und Plausibilität zwischen behaupteter und gemessener Extraktion.- Verification Report
verificationResultsfasst explizite Verifikationsschritte zusammen, die überevidenceReporteingereicht wurden.
So nutzen Agenten TOB-Infos
TOB ist ein Evidenzweg, keine sichtbare Aufgabenliste. Der Agent arbeitet, meldet Fortschritt, liest Evidenzzustand und schließt erst ab, wenn beobachtete Evidenz die Behauptung stützt.
-
Aufgabe oder Claim scopen
Der Agent arbeitet in einem beanspruchten Tab oder in einer ETM-Instanz, die mit
nova.task_instance_createerstellt wurde. Dadurch bekommt TOB eine Grenze für Evidenzkorrelation. -
Normale Browser-Werkzeuge nutzen
Aufrufe wie
nova.perceive,nova.read_text,nova.navigate,nova.click_selectorodernova.type_selectorerzeugen beobachtbare Dispatch-Signale. -
Geprüfte Arbeit melden
Bei Aufgabeninstanzen markiert der Agent Einheiten über
nova.task_instance_progress. Diese geprüften Einheiten bilden die Behauptungsmenge, die TOB später gegen Beobachtungen prüft. -
Coverage Scan für vollständige URL-Arbeit nutzen
Wenn eine vollständige URL-Aufgabe blockfähige Evidenz braucht, nutzt der Agent
nova.coverage_scanmit registriertemscanIdstattcoverageEvidenceüber beliebige Evaluation zu behaupten. -
Evidenzzustand vor Abschluss lesen
nova.task_instance_getkannevidenceSummary,urlCoverageundtaskAwareness.completionAllowedliefern, damit der Agent sieht, ob Abschluss wahrscheinlich besteht. -
Nur mit ausreichender Evidenz abschließen
nova.task_instance_completekanncompleted=falsemitverification_failed,evidence_gapoder Task-URL-Coverage-Hinweisen zurückgeben, wenn beobachtete Evidenz nicht reicht.
Wann TOB-Evidenz gilt
TOB-Zustand beschreibt Evidenzreife. Er kann eine Behauptung stützen oder zurückweisen, gibt aber nie allein Erlaubnis für riskante Website-Handlungen.
scope missing
- Bedeutung
- Ein Werkzeugsignal existiert, ist aber nicht sicher an die Aufgabe oder das Ziel gebunden, das die Behauptung macht.
- Benötigte Evidenz
- Kein passender Aufgaben-, Tab- oder Workflow-Scope für den beobachteten Dispatch.
- Agentenverhalten
- Nicht als Beweis für eine Aufgabeneinheit zählen. Kontext neu herstellen und erneut beobachten.
- Darf Abschluss stützen
- Nein.
tool outcome
- Bedeutung
- Nova hat einen Werkzeugaufruf und sein Grundresultat beobachtet.
- Benötigte Evidenz
- Werkzeugname, Ziel, Erfolg/Fehler, Dauer, Handlungsart, Oberfläche und optionale Vorher-/Nachher-Hinweise.
- Agentenverhalten
- Als Roh-Evidenz nutzen. Ein einzelner Dispatch kann für Abschluss noch zu schwach sein.
- Darf Abschluss stützen
- Nicht allein.
weak
- Bedeutung
- Eine passende Beobachtung existiert, aber der Nachweis ist unvollständig.
- Benötigte Evidenz
- Eine passende Beobachtung ohne genug read-artige Stützung oder ohne starkes Besuchsfenster.
- Agentenverhalten
- Bessere Evidenz sammeln, meist durch erneutes Lesen oder Scannen des Ziels.
- Darf Abschluss stützen
- Hängt von der Richtlinie ab.
strong
- Bedeutung
- Die geprüfte Einheit hat beobachtete Stützung, die TOB verlässlich zählen kann.
- Benötigte Evidenz
- Eine passende read-artige Beobachtung und ein starkes Besuchs-/Lesefenster für dieselbe Aufgabeneinheit.
- Agentenverhalten
- Zu beobachteten geprüften Einheiten zählen und normale Abschlussprüfung fortsetzen.
- Darf Abschluss stützen
- Ja, wenn der Rest der Richtlinie passt.
none
- Bedeutung
- TOB erwartete Evidenz für eine deterministische Einheit, fand aber nach vollständiger Aufnahme keine passende Beobachtung.
- Benötigte Evidenz
- Deterministischer Locator existiert, Ingestion/Projection ist vollständig, aber keine passende Beobachtung wurde gefunden.
- Agentenverhalten
- Fehlende Einheit öffnen, beobachten, begründet ausschließen oder Aufgabe offen halten.
- Darf Abschluss stützen
- Nein, wenn die Lücke die Richtlinie überschreitet.
unknown
- Bedeutung
- Nova kann die geprüfte Einheit aus den aktuellen Signalen nicht beurteilen.
- Benötigte Evidenz
- Kein Locator, kein deterministischer Locator, fehlende Scope-Bindung, unvollständige Ingestion oder unvollständige Projection.
- Agentenverhalten
- Mehr Beobachtung oder bessere Unit-Locators bevorzugen. Die Richtlinie entscheidet, ob unknown als Lücke zählt.
- Darf Abschluss stützen
- Hängt von der Richtlinie ab.
reason=evidence_gap
- Bedeutung
- Die beobachtete Stützung liegt unter der aktiven Abschlussgrenze.
- Benötigte Evidenz
evidenceSummary.gapPercentüberschreitetevidenceSummary.maxGapPercent.- Agentenverhalten
- Nach fehlenden Beobachtungen reparieren und erneut versuchen. Die Ablehnung ist retryable.
- Darf Abschluss stützen
- Nein.
coverageEvidence.trust.trusted=true
- Bedeutung
- Ein registrierter Coverage-Scan hat die serverseitigen Vertrauensprüfungen bestanden.
- Benötigte Evidenz
- Registrierter Scan, passende effectiveUrl, gemessene Text-Plausibilität und Extraktionsmetriken.
- Agentenverhalten
- Für URL-Coverage-Fortschritt oder Reconcile nutzen, danach normal durch das Task-Gate abschließen.
- Darf Abschluss stützen
- Ja, nur als Coverage-Evidenz.
Fehler- und Schutzbedingungen
Diese harten Kanten sollten Agenten und Integrationen bei TOB-nahen Feldern erwarten.
| Bedingung | Beobachtetes Signal | Agentenverhalten |
|---|---|---|
| Unbekanntes Argument | Task-Instance-Werkzeuge und nova.coverage_scan weisen unbekannte Top-Level-Felder zurück. |
Nur die veröffentlichten Felder des jeweiligen Werkzeugs senden; nicht auf Metadaten-Passthrough verlassen, wenn das Schema ihn nicht ausweist. |
| Task-Snapshot ohne Evidenz | evidenceSummary fehlt, wenn keine geprüften Einheiten existieren oder Korrelation keine nützliche Zusammenfassung liefert. |
Zuerst Fortschritt melden oder den Task-Zustand lesen, statt Evidenz anzunehmen. |
| Completion-Richtlinie nicht erfüllt | nova.task_instance_complete liefert completed=false mit fachlichem Grund und currentState. |
Verbleibende, blockierte, fehlgeschlagene oder verpflichtende Einheiten vor erneutem Versuch bearbeiten. |
| Verifikation fehlgeschlagen | reason=verification_failed und verificationResults nennen erforderliche fehlgeschlagene Fast-Gate-Schritte. |
Sichtbare Ursache beheben oder den Verifikationsvertrag anpassen; fehlgeschlagenen Schritt nicht ignorieren. |
| Evidenzlücke | reason=evidence_gap, retryable=true, gapPercent, maxGapPercent und policyMode erklären den abgelehnten Abschluss. |
Stärkere Beobachtungen sammeln, Coverage Scan nutzen oder nicht belegbare Einheiten korrekt markieren. |
| Coverage Scan ohne Scan-ID | scanId ist für nova.coverage_scan erforderlich. Unbekannte Scan-IDs werden abgelehnt; bekannte IDs können zurückgegeben werden. |
Je nach Aufgabe nova_full_page_text_v1, nova_structured_dom_v1 oder nova_i18n_spellcheck_v1 nutzen. |
| Coverage-Trust fehlgeschlagen | coverageEvidence.trust.trusted=false mit Gründen wie scan_returned_null_or_empty, scan_result_not_json, effective_url_mismatch oder claimed_text_exceeds_measured. |
Payload als Telemetrie behandeln, nicht als blockfähige Coverage-Evidenz. Vom richtigen Ziel erneut scannen oder besseren Scan wählen. |
| Agentenbehauptete Coverage | Agentenseitig geliefertes coverageEvidence über beliebige Evaluation ist für Block-Mode-Coverage nicht trusted. |
Für serverregistrierte Coverage-Evidenz nova.coverage_scan nutzen. |
| Task-URL-Coverage-Gate | _aagGates.taskUrlCoverage kann offene URL-Einheiten melden und nova.coverage_scan empfehlen. |
Verbleibende URLs prüfen, legitime Ausnahmen ausschließen, Reconcile-Dry-Run ausführen oder User-Force-Complete nur nutzen, wenn erlaubt. |
Agenteninterpretationsbeispiel
Das Beispiel zeigt TOB als Abschlussvertrag: Der Agent liest Evidenz, erkennt unvollständige beobachtete Stützung und sammelt weitere Nachweise, bevor er Completion erneut versucht.
Task-Snapshot mit Evidenz
{
"tool": "nova.task_instance_get",
"arguments": {
"instanceId": "task_42"
}
}
Relevante Antwortfelder
{
"structuredContent": {
"evidenceSummary": {
"claimedCheckedUnits": 12,
"observedCheckedUnits": 9,
"strong": 7,
"weak": 2,
"none": 2,
"unknown": 1,
"ingestionComplete": true
},
"taskAwareness": {
"completionAllowed": false
}
}
}
Agenteninterpretation
{
"claim": "12 units marked checked",
"observedSupport": "9 units have TOB evidence",
"risk": "completion may be rejected as evidence_gap",
"nextStep": "inspect the none/unknown units before calling task_instance_complete again"
}
MCP-Vertrag
Das ist die nüchterne Schicht unter der Erklärung. TOB veröffentlicht kein einzelnes eigenes Werkzeug; Agenten lesen den Vertrag über Task-Instance-, Verifikations- und Coverage-Felder.
Ausführungsregel: Kein TOB-Feld darf allein eine Website-Handlung autorisieren; TOB-Evidenz darf Completion, Lernen oder Zustandsprüfung nur stützen, wenn Aufgabe und Sicherheitsgates es erlauben.
| Variable | Typ / Werte | Standard | Wirkung |
|---|---|---|---|
nova.task_instance_get |
MCP-Tool; Args enthalten instanceId und optionale include*-Limits | instanceId erforderlich | Liest aktuellen Task-Zustand und kann evidenceSummary, urlCoverage und taskAwareness ausgeben. |
nova.task_instance_create |
MCP-Tool; Args enthalten profileId, adHocContext, targetUrl, currentScope, agentId, unitSource, declaredTaskKind | profileId optional; adHocContext für Ad-hoc-Läufe erforderlich | Erstellt die gescopte ETM-Instanz, gegen die TOB-Evidenz später korreliert werden kann. |
nova.task_instance_progress |
MCP-Tool; Args enthalten instanceId, expectedInstanceRev, clientEventId, Unit-Updates | task-spezifisch | Schreibt geprüfte, ausgeschlossene, blockierte, fehlgeschlagene oder entdeckte Units, gegen die spätere Evidenz geprüft wird. |
nova.task_instance_complete |
MCP-Tool; Args: instanceId, expectedInstanceRev, clientEventId, note, completionNote, evidenceReport | instanceId, expectedInstanceRev und clientEventId erforderlich | Flusht Abschluss, prüft Richtlinie und TOB-Evidenz und gibt completed plus Ablehnungsgrund zurück. |
nova.task_instance_verify |
MCP-Tool; Args: instanceId | instanceId erforderlich | Liefert Verifikationsschritte, die später als evidenceReport[] eingereicht werden können. |
evidenceSummary |
object aus task_instance_get und task_instance_complete | nur wenn geprüfte Einheiten existieren | Fasst beobachtete Evidenz gegen behauptete geprüfte Einheiten zusammen. |
evidenceSummary.claimedCheckedUnits |
integer | berechnet | Geprüfte Aufgabeneinheiten, die der Agent durch Fortschritt oder Abschlusszustand behauptet hat. |
evidenceSummary.observedCheckedUnits |
integer | berechnet | Geprüfte Einheiten, die durch starke oder schwache TOB-Evidenz gestützt sind. |
evidenceSummary.strong |
integer | berechnet | Einheiten mit starker beobachteter Stützung. |
evidenceSummary.weak |
integer | berechnet | Einheiten mit passender, aber unvollständiger beobachteter Stützung. |
evidenceSummary.none |
integer | berechnet | Einheiten mit deterministischen Locators, aber ohne passende Beobachtung nach vollständiger Ingestion. |
evidenceSummary.unknown |
integer | berechnet | Einheiten, deren Evidenz wegen Locator, Scope, Ingestion oder Projection nicht beurteilbar ist. |
evidenceSummary.ingestionComplete |
boolean | berechnet | Zeigt, ob relevante Evidenzquellen für den Scope vollständig aufgenommen wurden. |
evidenceSummary.gapPercent / maxGapPercent / policyMode |
number; number; string | nur bei evidence_gap-Ablehnung | Erklärt, warum Completion von der aktiven Evidenzrichtlinie abgelehnt wurde. |
reason=evidence_gap / retryable=true |
task_instance_complete-Ablehnungsfelder | nur wenn Gap die Richtlinie überschreitet | Signalisiert, dass Abschluss nach stärkerer Evidenz erneut versucht werden kann. |
taskAwareness.completionAllowed |
boolean | berechnet in Task-Snapshots | Zeigt vor einem Abschlussversuch, ob die fachliche Completion-Richtlinie aktuell erfüllt ist. |
verificationResults |
phase, noRequiredFailed, summary, steps[], duplicateStepIds | nur bei Verifikationsvertrag/Evidenz | Berichtet explizite Verifikations-Evidenz, die eingereicht oder übersprungen wurde. |
verificationResults.summary |
total, passed, failed, inconclusive, skipped, failedRequired | berechnet | Aggregiert Ergebnisse der Verifikationsschritte. |
verificationResults.steps[] |
stepId, state, gate, required, detail | berechnet | Zeigt jeden Verifikationsschritt und ob er passed, failed, inconclusive oder skipped war. |
evidenceReport[] |
task_instance_complete-Arg; stepId, state, toolResult, detail | optional | Vom Agenten eingereichte Verifikations-Evidenz für einen Abschlussversuch. |
evidenceReport[].state |
passed | failed | inconclusive | skipped | pro Eintrag erforderlich | Agentenseitig bewertetes Verifikationsergebnis. Erforderliche fehlgeschlagene Fast-Gate-Schritte können Completion blockieren. |
nova.coverage_scan |
MCP-Tool; Args: scanId, targetId, scopeOptions | targetId=active; scanId erforderlich | Führt registrierten Coverage-Scan aus und gibt coverageEvidence zurück. Neue Clients sollten die veröffentlichten Schema-Felder nutzen. |
scanId |
nova_full_page_text_v1 | nova_structured_dom_v1 | nova_i18n_spellcheck_v1 | erforderlich | Wählt den registrierten Scan. Unbekannte IDs werden abgelehnt. |
scopeOptions.includeShadowDom / includeIframes / waitForHydration |
boolean-Felder | registry-definiert | Optionale Scope-Optionen aus dem Coverage-Scan-Schema. |
scopeOptions.hydrationTimeoutMs |
integer 0-30000 | registry-definiert | Optionales Hydration-Wartebudget aus dem veröffentlichten Schema. |
coverageEvidence |
version, registeredScanId, scanHash, document, extraction, trust, raw | Antwort von coverage_scan | Evidenzblock für Coverage-aware Tasks und Telemetrie. |
coverageEvidence.document.* |
effectiveUrl, visibleTextCharsMeasured, nodeCountMeasured, iframeCount, shadowRootCount | berechnet | Gemessene Dokumentfakten für Trust- und Coverage-Bewertung. |
coverageEvidence.extraction.textChars / textCoverageRatio |
integer; number 0.0-1.0 | berechnet | Zeigt, wie viel Text der Scan im Verhältnis zum gemessenen sichtbaren Text extrahiert hat. |
coverageEvidence.trust.trusted / reason |
boolean; string | berechnet | Zeigt, ob serverseitige Trust-Prüfungen bestanden wurden und warum. |
rawUrlBefore / rawUrlAfter / targetId |
string; string; string | Antwort von coverage_scan | Zeigt aufgelöstes Ziel und URL vor/nach dem registrierten Scan. |
urlCoverage |
coverageSchemaVersion, urlUnits*, reportingGroupsTotal, observations*, last* | nur bei Task-Instanzen mit URL-Einheiten | Fasst URL-Coverage in task_instance_get zusammen. |
_aagGates.taskUrlCoverage |
gateId, status, urlUnits, evidence, resolution | nur bei abgelehnter Completion mit offenen URL-Einheiten | Leitet den Agenten zu Coverage Scan, Exclusion, Reconcile-Dry-Run oder User-Force-Complete. |
nova.task_instance_reconcile_coverage |
MCP-Tool; Args: instanceId, dryRun, observationCutoff | dryRun=true | Spielt gespeicherte Beobachtungen gegen URL-Einheiten zurück und schlägt Coverage-Upgrades vor oder wendet sie an, wenn erlaubt. |
Agenten-Werkzeuge
MCP-Tools für Agenten. Diese Variablen und Werkzeugnamen sind für Agenten und Integratoren gedacht. Sie sind keine normalen Bedienbefehle für Menschen in der Oberfläche.
| Variable | Bedeutung |
|---|---|
nova.perceive |
Die sichtbare Seite verstehen |
nova.read_text |
Seitentext lesen |
nova.navigate |
Eine Seite öffnen |
nova.route |
In einer Web-App wechseln |
nova.click_selector |
Ein Element anklicken |
nova.type_selector |
Text in ein Feld schreiben |
nova.file_upload |
Eine Datei hochladen |
nova.dismiss_blockers |
Sichtbare Blocker entfernen |
nova.run_sequence |
Mehrere Schritte sicher ausführen |
nova.tab_claim |
Einen Tab reservieren |
nova.tab_release |
Einen Tab freigeben |
nova.task_instance_create |
Aufgabenlauf starten |
nova.task_instance_get |
Liest Task-Zustand und kann evidenceSummary, urlCoverage und taskAwareness.completionAllowed enthalten. |
nova.task_instance_complete |
Versucht den Abschluss nach TOB-Korrelation und kann ungestützte Behauptungen mit evidence_gap oder verification_failed ablehnen. |
nova.task_instance_progress |
Meldet geprüfte, ausgeschlossene, blockierte oder fehlgeschlagene Einheiten, die TOB später mit Evidenz vergleicht. |
nova.task_instance_verify |
Liefert Verifikationsschritte, deren Ergebnisse beim Abschluss als evidenceReport gesendet werden können. |
nova.coverage_scan |
Führt einen registrierten Scan aus und liefert coverageEvidence für vollständige URL-Coverage-Aufgaben. |
nova.task_instance_reconcile_coverage |
Spielt gespeicherte Beobachtungen gegen URL-Einheiten zurück und schlägt Coverage-Upgrades vor oder wendet sie an. |