LCJ steht für Lightweight Candidate Journal. Nova nutzt es als schlankes Journal für lernrelevante Ereignisse und Kandidaten: Evidenz, die nützlich werden kann, aber noch nicht als geprüftes Langzeitwissen gilt.
LCJ hält fest, was bei echter Agentenarbeit auf Websites passiert ist: Werkzeugergebnisse, Beobachtungen, wiederkehrende Blocker, Selektor-Drift, Navigationsmuster und kurze Lernansprüche, die später geprüft werden können.
LCJ liefert Evidenz an ALP. ALP kann nur dann Lernchancen vorschlagen, Kandidaten erzeugen, Wissen promoten oder verwerfen, wenn genug reale Evidenz vorhanden ist. PKS bleibt für geprüftes Website-Wissen reserviert, das die Lern-Gates bestanden hat.
Die meiste LCJ-Evidenz entsteht automatisch, während normale Nova-Werkzeuge laufen. Agenten und Integratoren nutzen LCJ direkt, wenn sie Gedächtnisstatistiken lesen oder in einem beanspruchten Arbeitskontext ausdrücklich einen Kandidaten ergänzen.
Kurz gesagt
- LCJ speichert Lernevidenz, keine ausführbare Orientierung.
- Normale Werkzeugarbeit erzeugt viele LCJ-Beobachtungen automatisch.
- Manuelle Kandidaten brauchen einen beanspruchten Zielkontext.
- Kandidaten nutzen die Zustände unverified, verified oder disproven.
- Bestätigte Kandidaten werden erst mit genug Evidenz promotierbar.
- LCJ ersetzt nie aktuelle Seitenbestätigung oder Sicherheitsgates.
Was LCJ erfasst
LCJ hält das Rohmaterial fest, das spätere Lernentscheidungen brauchen. Es bewahrt Evidenz, bevor daraus handbuchartige Orientierung wird.
- Werkzeugereignisse LCJ kann festhalten, ob ein Werkzeug erfolgreich war, fehlgeschlagen ist, wie lange es gedauert hat und welcher Website-Kontext relevant war. Dadurch unterscheidet spätere Prüfung echten Erfolg von bloßer Behauptung.
-
Beobachtungen
Beobachtungen beschreiben bedeutsame Signale wie
action_success,action_failure,blocker_dismissed,selector_drift,perceive_signatureodertelemetry_confirmed. -
Kandidaten
Ein Kandidat verbindet
component,claim,statusundconfidence. Er beschreibt, was lernenswert sein könnte, ohne daraus aktives Wissen zu machen. - Evidenzstärke Finalize-Prüfung trennt schwache, mittlere und starke Evidenz. Ein bestätigter Kandidat wird erst promotierbar, wenn sein Evidenzwert die Promotionsschwelle erreicht.
-
Statistiken
Gedächtnisstatistiken zeigen LCJ-Zähler, Verifikationsraten, Kurationsraten, Finalize-/Outbox-Zustand und Rollout-Readiness-Signale über
nova.memory_stats. - Lernhistorie Promotion- und Feedback-Ereignisse halten den Entscheidungsweg sichtbar, damit spätere Agenten verstehen, warum ein Kandidat weiterging, stehenblieb oder verworfen wurde.
Wann brauche ich LCJ?
Nutze LCJ, wenn wiederholte Website-Arbeit Evidenz hinterlassen soll: wiederkehrende Consent-Dialoge, Selektoren, die brechen und wieder funktionieren, gleiche Formularmuster, fragile Navigationswege, Handlungsergebnisse, die geprüft werden sollten, oder Aufgaben-Evidenz, aus der später wiederverwendbare Orientierung entstehen kann.
Wissensmodell für Agenten
Für einen Agenten beantwortet LCJ vier Fragen: Wo ist die Evidenz entstanden, welcher Anspruch wird formuliert, wie reif ist dieser Anspruch, und was muss vor Wirkung auf spätere Arbeit geprüft werden?
- Arbeitskontext
- Manuelle Kandidaten sind an ein beanspruchtes Ziel gebunden. Ohne aktuellen
nova.tab_claim-Kontext kann ein Agent keine LCJ-Kandidaten sicher ergänzen. - Beobachtung
- Ein normalisiertes Lernsignal aus echter Arbeit: erfolgreiche Handlung, Fehler, Blocker, Drift-Signal oder Seitensignatur.
- Kandidat
- Ein kurzer wiederverwendbarer Anspruch, der nach Evidenz und Prüfung nützlich werden kann. Er bleibt Kandidat, nicht geprüftes Wissen.
- Komponente
- Der Kategorie-Schlüssel in
component. Er bündelt verwandte Kandidaten, etwa Blocker, Navigation, Automationssperre oder UI-Verhalten. - Status
unverifiedist der Standardzustand,verifiedbedeutet stützende Evidenz, unddisprovenhält Evidenz gegen den Anspruch fest.- Confidence
- Ein Wert von
0.0bis1.0. Er hilft beim Einordnen des Kandidaten, macht ihn aber nicht ausführbar. - Finalize Stats
finalizeStatsberichtet, wie viele LCJ-Kandidaten beim Finalisieren berücksichtigt, bestätigt, promotierbar oder für kuratierte Wissensschreibungen vorbereitet wurden.- Memory Stats
nova.memory_statsliest LCJ-, Finalize-, Outbox- und Runtime-Lernmetriken für ein gewähltes Zeitfenster.
So nutzen Agenten LCJ-Infos
LCJ ist ein Journal, keine Abkürzung. Der Agent erzeugt oder nutzt zuerst reale Evidenz, liest oder schreibt kleine Kandidatensignale und lässt ALP entscheiden, was dauerhaftes Wissen werden darf.
-
Arbeitskontext beanspruchen
Ein Agent beansprucht den relevanten Tab mit
nova.tab_claim. Dadurch werden manuelle LCJ-Kandidaten an das richtige Ziel und den richtigen Owner gebunden. -
Normale Arbeit erzeugt Evidenz
Browser-Werkzeuge wie
nova.perceive,nova.click_selectorodernova.type_selectorerzeugen Ergebnisse, die zu LCJ-Beobachtungen werden können. -
Ausdrückliche Kandidaten sparsam ergänzen
Wenn ein wiederverwendbares Muster klar ist, kann ein Agent oder eine Integration
nova.memory_add_candidatemit konkretemcomponentund kurzemclaimaufrufen. -
Gedächtniszustand prüfen
nova.memory_statsliefert LCJ-Zähler, Verifikationsraten, Kurationsraten, Finalize-Entscheidungen, Outbox-Zustand und ausgewählte Runtime-Lernsignale. -
ALP prüft die Evidenz
ALP-Werkzeuge wie
nova.learn_suggest,nova.learn_generateundnova.learn_feedbackmachen aus LCJ-Evidenz geprüfte Lernentscheidungen. -
Finalisieren ohne Handlungsauslösung
finalizeStatskann LCJ-Kandidaten beim Freigeben eines Claim-Kontexts zusammenfassen. Die Zusammenfassung kann Prüfung oder Promotion vorbereiten, führt aber keine Website-Handlung aus.
Wann LCJ-Evidenz gilt
LCJ-Zustand beschreibt die Reife von Evidenz. Er kann ein Muster sichtbar machen, aber erst promotiertes PKS-Wissen darf spätere Arbeit leiten, und auch dann nur nach aktueller Seitenbestätigung.
context_missing
- Bedeutung
- Das Ziel ist für den aktuellen Agenten nicht beansprucht, daher können manuelle Kandidaten nicht sicher zugeordnet werden.
- Benötigte Evidenz
- Kein aktiver
nova.tab_claim-Kontext für das Ziel. - Agentenverhalten
- Tab zuerst beanspruchen oder ohne manuelle Kandidaten weiterarbeiten.
- Darf Handlung leiten
- Nein.
tool event
- Bedeutung
- Ein reales Werkzeugergebnis oder Seitensignal wurde als Lernevidenz festgehalten.
- Benötigte Evidenz
- Werkzeugergebnis, Kontext, Art, Ergebnis, Schweregrad und optionaler Selektor oder Kandidatenschlüssel.
- Agentenverhalten
- Als Roh-Evidenz behandeln. Erst Wiederholung macht daraus einen Lernkandidaten.
- Darf Handlung leiten
- Nein.
unverified
- Bedeutung
- Ein wiederverwendbarer Anspruch existiert, ist aber noch nicht stark genug bestätigt.
- Benötigte Evidenz
- Pflichtfelder:
targetId,componentundclaim. Standard:confidence=0.65. - Agentenverhalten
- Mehr Evidenz sammeln oder ALP-Prüfung abwarten.
- Darf Handlung leiten
- Nein.
verified
- Bedeutung
- Für den Anspruch gibt es stützende Evidenz. Der Kandidat kann in Finalize und ALP-Prüfung berücksichtigt werden.
- Benötigte Evidenz
- Status
verifiedplus stützende Werkzeug- oder Auflösungsevidenz. - Agentenverhalten
- Evidenz prüfen und ALP entscheiden lassen, ob Promotion angemessen ist.
- Darf Handlung leiten
- Nein.
disproven
- Bedeutung
- Evidenz spricht gegen den Anspruch; er sollte nicht als nützliches Wissen übernommen werden.
- Benötigte Evidenz
- Status
disprovenoder widersprechende Ergebnisse. - Agentenverhalten
- Nicht promoten. Nur mit frischer Evidenz und neuem Prüfpfad ersetzen.
- Darf Handlung leiten
- Nein.
evidenceScore >= 1.45
- Bedeutung
- Ein bestätigter Kandidat hat genug kombinierte Evidenz, um für Promotion geprüft zu werden.
- Benötigte Evidenz
- Quellevidenz, Auflösungsevidenz, Verifikationszeitpunkt, hochwertige Erfolgssignale, Erholung von Fehlern und Confidence können den Score erhöhen.
- Agentenverhalten
- Durch ALP/PKS-Promotion führen. Nicht direkt aus LCJ anwenden.
- Darf Handlung leiten
- Nein.
nach Promotion
- Bedeutung
- Wissen ist über LCJ hinausgewachsen und kann als geprüfte PKS-Orientierung erscheinen.
- Benötigte Evidenz
- Promotion oder kuratierter Write nach Prüfung, nicht nur ein Kandidateneintrag.
- Agentenverhalten
- Als Orientierung nutzen und die aktuelle Seite vor Handlung bestätigen.
- Darf Handlung leiten
- Ja, nach sichtbarer Bestätigung und normalen Sicherheitsgates.
Fehler- und Schutzbedingungen
Diese harten Kanten sollten Agenten und Integrationen bei LCJ-nahen MCP-Werkzeugen erwarten.
| Bedingung | Beobachtetes Signal | Agentenverhalten |
|---|---|---|
| Unbekanntes Argument | nova.memory_add_candidate und nova.memory_stats weisen unbekannte Top-Level-Felder zurück. |
Nur die dokumentierten Felder des jeweiligen Werkzeugs senden. |
| Kein beanspruchter Arbeitskontext | nova.memory_add_candidate meldet lcj.context_missing, wenn der Ziel-Tab nicht beansprucht ist. |
Tab vor manuellen Kandidaten mit nova.tab_claim beanspruchen. |
| Pflichtfelder fehlen | targetId, component und claim sind laut Schema erforderlich. Leere component- oder claim-Werte werden abgelehnt. |
Konkretes Ziel, kompakten Kategorie-Schlüssel und einen einzeiligen Lernanspruch senden. |
| Kandidatenfeld zu lang | component ist auf 64 Zeichen begrenzt; claim auf 280 Zeichen. |
Kategorie kürzen oder den Anspruch in einen klareren Kandidaten aufteilen. |
| Ungültiger Kandidatenstatus | status muss unverified, verified oder disproven sein. |
Den nächsten unterstützten Evidenzzustand nutzen; keine Zwischenzustände erfinden. |
| Confidence außerhalb des Bereichs | confidence muss endlich und zwischen 0.0 und 1.0 liegen. |
Vor dem Senden im Caller begrenzen und schwache Claims nahe am Standard lassen. |
| Confidence-Kompatibilität | Schema-konforme Clients senden confidence als JSON-Zahl. Die Runtime kann numerische Strings aus Agentenkompatibilität tolerieren. |
Getypte JSON-Werte bevorzugen und neue Integrationen nicht auf String-Coercion aufbauen. |
| Memory-Stats-Zahl außerhalb des Bereichs | windowHours muss 1-720 sein; topComponents, maxSkipReasons, topRoutes, topHosts und topSelectors müssen 1-20 sein. |
Zeitfenster oder Ergebnisgrenzen reduzieren und erneut versuchen. |
| Memory-Stats-Typ falsch | Statistik-Limits müssen JSON-Integer sein. Komponentenfilter müssen String oder null sein. | Getypte JSON-Werte senden, keine Zahlen als Text. |
| Finalize Stats falsch geformt | finalizeStats muss beim Release/Finalize ein Objekt sein, wenn es gesendet wird. |
Bekannte Metrikfelder als Zahlen senden oder das Objekt weglassen. |
Agenteninterpretationsbeispiel
Das Beispiel zeigt LCJ als Evidenzvertrag: Der Agent schreibt einen kurzen Kandidaten, liest die zurückgegebenen Kennungen und wartet trotzdem auf Prüfung, bevor daraus Orientierung wird.
Kandidaten-Request
{
"tool": "nova.memory_add_candidate",
"arguments": {
"targetId": "active",
"agentId": "default",
"component": "consent-dialog",
"claim": "Consent banner disappears after clicking the footer reject link.",
"status": "unverified",
"confidence": 0.65
}
}
Relevante Antwortfelder
{
"structuredContent": {
"ok": true,
"targetId": "tab_12",
"taskId": "claim_4f9d",
"ownerAgentId": "default",
"candidateId": 42,
"created": true,
"status": "unverified",
"confidence": 0.65,
"updatedAtUtc": "2026-05-07T10:30:00.0000000Z"
}
}
Agenteninterpretation
{
"treatAs": "learning evidence candidate",
"mayExecute": false,
"beforePromotion": "gather repeated evidence and review through ALP",
"beforeUse": "only promoted PKS knowledge may guide action, and only after current-page confirmation"
}
MCP-Vertrag
Das ist die nüchterne Schicht unter der Erklärung. Sie beschreibt LCJ-Felder, die Agenten und Integratoren als Vertragssignale lesen sollen, nicht als freien Beschreibungstext.
Ausführungsregel: Kein LCJ-Feld darf eine Website-Handlung auslösen; LCJ-Evidenz muss ALP/PKS-Prüfung und aktuelle Seitenbestätigung durchlaufen, bevor sie Verhalten leitet.
| Variable | Typ / Werte | Standard | Wirkung |
|---|---|---|---|
nova.tab_claim |
MCP-Tool; Args: targetId, agentId, agentRole, ttlMs, debugLabel, reclaimReason | targetId active; agentId default; ttlMs durch Claim-Policy begrenzt | Beansprucht einen Tab für den aktuellen Agentenkontext und liefert Claim-Zustand einschließlich finalizationToken, leaseMs, ttlMs und Owner-Daten. |
nova.tab_release |
MCP-Tool; Args: targetId, agentId, finalizationToken, finalizeDecision, finalizeReasonCode, finalizeReasonText, coverageExhausted, coverageExhaustedReason, finalizeOutboxJobType, finalizeOutboxPayload, finalizeStats | finalizationToken für finalizeDecision-Override erforderlich | Gibt den beanspruchten Kontext frei oder finalisiert ihn und liefert releaseState, releaseAuthorization, hadActiveClaim, released, finalized sowie Lern-/Finalize-Zusammenfassung. |
nova.memory_add_candidate |
MCP-Tool; Args: targetId, agentId, component, claim, status, confidence | beanspruchter Zielkontext erforderlich | Erstellt oder aktualisiert einen leichten LCJ-Kandidaten für eine beanspruchte Aufgabe bzw. einen Tab. |
targetId |
string; Tab-ID, Sandbox-ID, active | laut Schema erforderlich | Wählt den beanspruchten Zielkontext für den Kandidaten. |
agentId |
string | default | Kennzeichnet den aufrufenden Agenten und muss zum Claim-Owner passen. |
component |
string; max. 64 Zeichen | erforderlich | Bündelt den Kandidaten unter einem kompakten Kategorie-Schlüssel; wird normalisiert kleingeschrieben gespeichert. |
claim |
string; max. 280 Zeichen | erforderlich | Einzeiliger wiederverwendbarer Lernanspruch. |
status |
unverified | verified | disproven | unverified | Definiert, ob der Kandidat frische Evidenz, gestützt oder widerlegt ist. |
confidence |
number 0.0-1.0 | 0.65 | Gewichtet Kandidatenstärke, ohne Ausführungserlaubnis zu geben. |
candidateId / created / updatedAtUtc |
Integer; Boolean; ISO-Zeitstempel | Antwortfeld | Zeigt, ob der Kandidat erstellt oder aktualisiert wurde und wann er geändert wurde. |
taskId / ownerAgentId |
string; string | Antwortfeld | Zeigt den LCJ-Arbeitskontext und den Agenten-Owner, dem der Kandidat gehört. |
nova.memory_stats |
MCP-Tool; Args: windowHours, topComponents, maxSkipReasons, topRoutes, topHosts, topSelectors, componentFilter | 24h-Fenster; Top-Werte 8 | Liest LCJ-, Finalize-, Outbox- und Runtime-Lernmetriken. |
windowHours |
integer 1-720 | 24 | Zeitfenster für fensterbasierte Gedächtnisstatistiken. |
topComponents |
integer 1-20 | 8 | Begrenzt zurückgegebene LCJ-Komponentengruppen. |
maxSkipReasons |
integer 1-20 | 8 | Begrenzt Finalize-Skip-Reason-Buckets. |
topRoutes |
integer 1-20 | 8 | Begrenzt Route-Gruppen in Runtime-Lernstatistiken. |
topHosts |
integer 1-20 | 8 | Begrenzt Host-Gruppen in Runtime-Lernstatistiken. |
topSelectors |
integer 1-20 | 8 | Begrenzt Selektor-Gruppen in Runtime-Lernstatistiken. |
componentFilter |
string | null | null | Filtert LCJ-Kandidaten- und Kurationsaggregate auf einen normalisierten Komponenten-Schlüssel. |
structuredContent.kpis |
Raten und Health-Zähler | berechnet | Fasst Commit-, Verifikations-, Kurations-, Outbox- und Runtime-Readiness-Raten zusammen. |
structuredContent.lcj |
toolEvents*, candidates*, curated*, topComponentsWindow | berechnet | Berichtet LCJ-Ereignis-, Kandidaten-, Verifikations-, Disproven- und Kurationszähler. |
structuredContent.finalize |
decisions*, outbox*, skipReasonsWindow | berechnet | Berichtet Finalize-Entscheidungen, Commit-/Skip-Zähler, Outbox-Zustand und Gründe für übersprungene Promotion. |
scrollSmart / clickNavigation / dismissBlockers / screenshotCapture / rolloutDecision |
Runtime-Statistikobjekte | berechnet | Zeigt ausgewählte Runtime-Lernsignale, die Memory Stats neben LCJ ausgeben. |
finalizeStats |
object | optional bei Release/Finalize | Trägt LCJ-Kandidatenmetriken, wenn ein beanspruchter Kontext finalisiert wird. Muss ein Objekt sein, wenn gesendet. |
finalizeStats.candidatesTotal / candidates_total |
integer | optional | Gesamtzahl der LCJ-Kandidaten, die beim Finalize Planning berücksichtigt wurden. |
finalizeStats.candidatesVerified / candidates_verified |
integer | optional | Bestätigte LCJ-Kandidaten zum Finalize-Zeitpunkt. |
finalizeStats.candidatesPromotable / candidates_promotable |
integer | optional | Bestätigte Kandidaten, die in Langzeitgedächtnis promotierbar wirkten. |
finalizeStats.curatedUpserts / curated_upserts |
integer | optional | Kuratierte Wissensschreibungen, die aus bestätigten Kandidaten vorbereitet oder ausgegeben wurden. |
finalizeStats.evidenceMinScore / evidence_min_score |
number | optional | Niedrigster Evidenzwert unter den berücksichtigten Kandidaten. |
finalizeStats.evidenceAvgScore / evidence_avg_score |
number | optional | Durchschnittlicher Evidenzwert der berücksichtigten Kandidaten. |
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.tab_release |
Gibt einen beanspruchten Tab frei und kann Finalize-Statistiken für den LCJ-Arbeitskontext tragen. |
nova.memory_stats |
Lernspeicher-Statistiken prüfen |
nova.memory_add_candidate |
Ausdrücklichen Lernkandidaten notieren |
nova.learn_suggest |
Liest gesammelte LCJ-Beobachtungen und priorisiert Lernchancen für ALP. |
nova.learn_generate |
Macht aus geprüften LCJ-Chancen Kandidatenvorschläge für PKS oder Domain-Hinweise. |
nova.learn_promote |
Geprüftes Wissen Richtung aktiver Nutzung bewegen |
nova.learn_feedback |
Zeigt aktuelle Lern- und Promotion-Ereignisse aus LCJ/ALP-Prüfung. |
nova.tab_claim |
Beansprucht einen Ziel-Tab, damit manuelle LCJ-Kandidaten dem richtigen Arbeitskontext zugeordnet werden. |