ALP steht für Agent Learning Pipeline. Nova nutzt ALP, um aus beobachteter Website-Arbeit geprüftes, erklärbares und erneut prüfbares Wissen zu machen.
ALP sitzt zwischen Live-Beobachtungen und PKS. Die Pipeline erkennt wiederholte Evidenz, schlägt Lernchancen vor, schreibt Kandidaten, prüft Promotionsgates, protokolliert Feedback und revalidiert gespeichertes Wissen gegen eine aktuelle Seite.
Die wichtige Grenze ist einfach: Wiederholtes Verhalten ist nicht automatisch zuverlässiges Wissen. ALP trennt ein nützliches Signal von ausführbarer Orientierung, indem der Evidenzzustand sichtbar bleibt.
ALP stützt außerdem den Learn Mode. Wenn ein Agent eine Plattform kartiert, kann Nova ein strukturiertes Playbook und Mindestabdeckung verlangen, bevor die Lernaufgabe als abgeschlossen gilt.
Kurz gesagt
- ALP ist Novas Qualitätspfad für Lernen aus wiederholter Website-Arbeit.
- Vorschläge und Proposals sind Evidenz, keine Handlungserlaubnis.
- Generierte Kandidaten starten als Prüf-Wissen und werden erst nach bestandenen Gates aktiver.
- Auch aktives PKS-Wissen braucht aktuelle Seitenbestätigung, bevor es eine Handlung leiten darf.
- Revalidierung prüft gespeicherte Signale, ohne das gespeicherte Playbook auszuführen.
- Learn Mode ergänzt Mindestabdeckung und ein festes Plattform-Playbook für Explorationsaufgaben.
Was ALP entscheidet
ALP ist eine Prüfschleife. Sie entscheidet, ob beobachtete Arbeit nur Rauschen, eine Lernchance, ein Kandidat, aktive Orientierung oder veraltetes Wissen ist, das repariert werden muss.
- Muster Wiederholt sich dieselbe Website-Situation, dasselbe Selektorverhalten, derselbe Blocker oder dieselbe erfolgreiche Handlung oft genug, um beachtet zu werden?
- Proposal Kann die Evidenz zu einem strukturierten PKS-Kandidaten, Domain-Hinweis oder Patch werden, ohne ungeprüfte Selektoren oder Ergebnisse zu erraten?
- Promotion Hat der Kandidat genug Support, Erfolgsevidenz, Vertrauen und wenig Drift, um von Candidate zu Shadow oder Active zu wechseln?
- Regression Beginnt aktives Wissen zu scheitern, zu driften oder zu verschwinden, sodass es vor weiterer Nutzung demoted, stillgelegt oder revalidiert werden sollte?
- Coverage Hat eine Learn-Mode-Aufgabe genug Flächen und Interaktionen erkundet, um ein nützliches Plattform-Playbook statt einer flachen Tour zu liefern?
Wann brauche ich ALP?
ALP ist wichtig, wenn Nova verwertbares Wissen hinterlassen soll: Plattform-Mapping, wiederholte Automationen, Consent- oder Login-Reibung, Selektor-Reparatur, wiederkehrende Blocker oder Aufgaben, bei denen spätere Agenten verstehen sollen, warum ein Muster zuverlässig ist.
Wissensmodell für Agenten
Für einen Agenten beantwortet ALP vier Fragen: welche Evidenz existiert, welchen Reifezustand sie hat, welches Gate blockiert oder genehmigt, und welches Feedback nach Nutzung oder Ablehnung zurückgemeldet werden muss.
- Beobachtungscluster
- Ein wiederholtes Muster aus Website-Ereignissen, zum Beispiel erfolgreiche Dismissals, Selektorfehler, Drift-Signale oder Handlungsergebnisse im Domain-Kontext.
- Lernchance
- Ein priorisiertes Signal in
opportunities[], wenn ALP ein Muster sieht, das geprüft werden sollte. - Proposal
- Ein generierter Kandidat in
proposals[]. Er kann ein neues Phänomen, einen Domain-Hinweis oder einen Patch für bestehendes Wissen beschreiben. - Stable ID
- Eine dauerhafte Kennung wie
stableIdfür Promotion, Erklärung, Feedback und Revalidierung. - Learning Level
- Der Reifezustand von PKS-Wissen: Candidate, Shadow, Active, demoted, deprecated oder zurück in Review revived.
- Gate
- Eine deterministische Prüfung hinter
nova.learn_promoteodernova.explain. Gates vergleichen Support, Erfolg, Fehler, Drift, Sessions und Vertrauen. - Semantische Lernchance
- Ein Runtime-Prompt in
pksSemanticLearningfür reichere Muster wie Consent-Dialoge, Login-Walls oder riskante Wiederholungen. - Learn-Mode-Coverage
- Die Explorationszähler in
learnMode.progress, die verhindern, dass eine Plattform-Lernaufgabe zu früh endet.
So nutzen Agenten ALP-Infos
ALP gibt Agenten einen Lernpfad, keine Abkürzung. Der Agent liest Evidenz, generiert oder prüft Kandidaten, promotet nur durch Gates und behandelt aktives Wissen als Orientierung, die weiterhin aktuelle Seitenbelege braucht.
-
Learn Mode beim Plattform-Mapping starten
Für Explorationsaufgaben ruft der Agent
nova.get_instructionsmitmode="learn"auf. Das erwartete Endartefakt istPLATFORM_PLAYBOOK, undlearnMode.progresszeigt, ob die Coverage-Floors erfüllt sind. -
Lernchancen lesen
Der Agent ruft
nova.learn_suggestmit optionalemscopeundlimitauf. Die Antwort priorisiert Muster nach Support, Erfolg, Fehlschlag, Recency und Drift-Signalen. -
Kandidaten nur für offenen Scope erzeugen
Wenn eine Lernchance dauerhaft nützlich ist, macht
nova.learn_generatedarausproposals[]und gestufte PKS-Kandidaten. Ein Schreibvorgang braucht einen konkreten Domain-Scope, der in einem aktuellen Tab oder Sandbox-Target offen ist. -
Vor Promotion erklären
Bevor ein Kandidat genutzt wird, kann der Agent
nova.explainmitstableIdund optionalobservedSignalsaufrufen, um Gate-Zustand und Match-Vertrauen zu sehen. -
Durch Gates promoten, demoten oder stilllegen
Der Agent nutzt
nova.learn_promote.dryRun=trueprüft ohne Schreiben; ein Non-Dry-Run wendet nur genehmigte Übergänge an und meldetapproved,rejected,appliedundwriteFailed. -
Semantische Prompts explizit auflösen
Wenn eine Tool-Antwort
pksSemanticLearningenthält, schreibt der Agent entweder den vorgeschlagenen PKS-Eintrag oder ruftnova.learn_resolve_opportunitymit klaremverdictauf. -
Vor Vertrauen in altes Wissen revalidieren
Der Agent ruft
nova.revalidatemittargetIdauf, um veraltete Fingerprints ohne Playbook-Ausführung zu prüfen. Die Antwort meldetresults[], Telemetrie-Status, verbleibendes Budget und Ablehnungsgründe. -
Feedback nach Änderungen lesen
Der Agent nutzt
nova.learn_feedback, um aktuelle Lernereignisse zu prüfen und zu verstehen, was wann und warum geändert wurde.
Wann ALP-Zustand gilt
ALP-Zustand beschreibt Wissensreife. Er erklärt, ob ein Muster vielversprechend, nutzbar, blockiert, veraltet oder stillgelegt ist, ersetzt aber weder aktuelle Seitenbeobachtung noch Sicherheitsfreigaben.
count=0
- Bedeutung
- ALP hat für den Scope oder Zeitraum kein wiederholtes Muster gefunden, das einen Vorschlag verdient.
- Erforderliche Evidenz
- Keine
opportunities[]oderproposals[]werden zurückgegeben. - Agentenverhalten
- Normal weiterarbeiten. Keinen Kandidaten ohne wiederholte Evidenz erfinden.
- Darf Handlung leiten
- Keine Lernorientierung.
opportunities[]
- Bedeutung
- Ein Muster ist sichtbar genug für Review, aber es wurde noch kein PKS-Kandidat geschrieben.
- Erforderliche Evidenz
- Priorisierte Felder wie
supportCount,successCount,failureCount,distinctSessionsundscoreBreakdown. - Agentenverhalten
- Muster prüfen und nur generieren, wenn es wiederverwendbares Website-Verhalten beschreibt.
- Darf Handlung leiten
- Nein.
generated candidate
- Bedeutung
- Ein PKS-Kandidat oder Domain-Hinweis existiert, ist aber noch Prüf-Wissen.
- Erforderliche Evidenz
- Generierte
proposals[]mit Vertrauen, Begründung, Candidate-Key und Stable ID. - Agentenverhalten
- Prüfen, erklären und mehr Evidenz sammeln, bevor Promotion erfolgt.
- Darf Handlung leiten
- Nein.
l0_to_l1
- Bedeutung
- Ein Kandidat hat das erste Promotionsgate bestanden und kann als Shadow-Wissen bewertet werden.
- Erforderliche Evidenz
- Mindestens 2 Support, mindestens 1 Success-Support, Vertrauen mindestens 0.70 und Evidence Score mindestens 0.55.
- Agentenverhalten
- Für Review und Matching-Kontext nutzen; aktuelle Seitenbestätigung bleibt Pflicht.
- Darf Handlung leiten
- Nicht allein.
l1_to_l2
- Bedeutung
- Wissen hat die Active-Promotion bestanden und kann späteres Matching orientieren.
- Erforderliche Evidenz
- Mindestens 3 Erfolge, mindestens 2 unterschiedliche Erfolgs-Sessions, höchstens 1 Fehlschlag und keine Drift in den letzten 7 Tagen.
- Agentenverhalten
- Als Orientierung nutzen, dann sichtbare Seite vor der Handlung bestätigen.
- Darf Handlung leiten
- Ja, nach sichtbarer Bestätigung.
demotion
- Bedeutung
- Früher aktives Wissen zeigte Drift oder wiederholten Fehlschlag und wurde zurück in Review gesetzt.
- Erforderliche Evidenz
- Hard Drift innerhalb von 24 Stunden oder mindestens 2 aufeinanderfolgende Fehlschläge.
- Agentenverhalten
- Nicht als aktive Orientierung behandeln; vor Nutzung reparieren oder revalidieren.
- Darf Handlung leiten
- Nein.
deprecation
- Bedeutung
- Wissen ist stillgelegt, weil Fehlerevidenz die Deprecation-Schwelle erreicht hat.
- Erforderliche Evidenz
- Mindestens 3 aufeinanderfolgende Fehlschläge für Shadow-Wissen oder 5 für Active-Wissen.
- Agentenverhalten
- Nicht matchen oder anwenden. Nur durch frische Evidenz ersetzen.
- Darf Handlung leiten
- Nein.
revive
- Bedeutung
- Ein stillgelegtes Muster wurde wieder vielversprechend und kann in Shadow-Review zurückkehren.
- Erforderliche Evidenz
- Mindestens 2 Erfolge in 30 Tagen, mindestens 2 unterschiedliche Erfolgs-Sessions und keine Drift in den letzten 7 Tagen.
- Agentenverhalten
- Als Review-Wissen behandeln, bis Active-Promotion erneut bestanden ist.
- Darf Handlung leiten
- Nein, bis Promotion erfolgt.
Fehler- und Schutzbedingungen
Diese harten Kanten sollten Agenten und Integrationen bei ALP-Werkzeugen erwarten.
| Bedingung | Beobachtbares Signal | Agentenverhalten |
|---|---|---|
| Unbekanntes Argument | Die meisten Learning-Tools lehnen unbekannte Top-Level-Properties ab. nova.learn_resolve_opportunity validiert die Pflichtfelder und kann fremde Zusatzfelder aus Kompatibilitätsgründen tolerieren. |
Nur die dokumentierten Argumente des jeweiligen Tools senden. |
| Erforderlicher Scope fehlt | nova.learn_generate und nova.learn_promote brauchen einen Domain-scope. |
Konkreten Domain-Scope senden, keinen leeren String und keinen breiten Wildcard. |
| Write-Scope ist nicht offen | Generierte Kandidaten und Non-Dry-Run-Promotions können abgelehnt werden, wenn die Domain nicht in einem aktuellen Tab oder Sandbox-Target offen ist. | Relevante Seite öffnen oder auswählen; alternativ Promotion nur mit dryRun prüfen. |
| Limit außerhalb der Grenzen | learn_suggest und learn_generate akzeptieren 1-20; learn_feedback 1-100; revalidate 1-5. |
Kleinere Batchgröße senden und erneut versuchen. |
| Ungültiger Stable-ID-Filter | stableIds muss ein Array aus Strings sein. Leere Arrays werden abgelehnt; ["all"] prüft den ganzen Scope. |
stableIds weglassen, ["all"] senden oder konkrete Stable IDs übergeben. |
| Ungültige Transition | transition muss l0_to_l1, l1_to_l2, demotion, deprecation oder revive sein. |
Unterstützte Transition nutzen oder weglassen, um alle passenden Übergänge zu prüfen. |
| Dry-Run als String gesendet | dryRun muss ein JSON-Boolean true oder false sein. |
Ein echtes Boolean senden, nicht "true" oder "false" als Text. |
| Explain-Alias widerspricht sich | stableId und stable_id müssen gleich sein, wenn beide gesendet werden. observedSignals und observed_signals ebenfalls. |
CamelCase-Namen bevorzugen und keine widersprüchlichen Aliase senden. |
| Revalidation ohne Target | nova.revalidate braucht targetId. Wenn scope fehlt, wird der Scope vom Target abgeleitet. |
Tab- oder Sandbox-Target angeben, auf dem geprüft werden soll. |
| Budget- oder Selektor-Ablehnung | ok=false, budgetRemaining und denied[] erklären Budgetmangel oder fehlende Fingerprint-Selektoren. |
Nicht eng wiederholen. Warten, Batch verkleinern oder gespeicherten Fingerprint reparieren. |
| Opportunity-Auflösung ungültig | opportunityId und verdict sind erforderlich. reason ist optional und auf 500 Zeichen begrenzt. |
Eines von upsert, not_applicable, unsafe, already_known oder defer nutzen. |
| Learn-Coverage-Floors nicht erfüllt | learnMode.progress.allFloorsMet=false oder Release-Fehler mit erforderlichen und aktuellen Coverage-Zählern. |
Weiter explorieren oder coverageExhausted=true mit coverageExhaustedReason setzen, wenn weitere Coverage wirklich blockiert ist. |
Agentenbeispiel
Das Beispiel zeigt ALP als Promotionsvertrag: Der Agent fordert eine Dry-Run-Promotion an, liest die Gate-Entscheidung und schreibt erst später, wenn die Prüfung beabsichtigt ist.
Promotion-Dry-Run-Request
{
"tool": "nova.learn_promote",
"arguments": {
"scope": "example.com",
"stableIds": ["lcj_8c1a2f9d44ab"],
"transition": "l1_to_l2",
"dryRun": true
}
}
Relevante Antwortfelder
{
"structuredContent": {
"ok": true,
"scope": "example.com",
"dryRun": true,
"approved": 1,
"rejected": 0,
"applied": 0,
"writeFailed": 0,
"total": 1,
"decisions": [
{
"stableId": "lcj_8c1a2f9d44ab",
"approved": true,
"applied": false,
"skippedBecause": "dry_run",
"reasonKind": "l1_to_l2",
"fromLevel": 1,
"toLevel": 2
}
]
}
}
Agenteninterpretation
{
"treatAs": "gate-approved review signal",
"writeStatus": "not applied because dryRun=true",
"beforeUse": "confirm the current page still matches the phenomenon",
"nextStep": "run non-dry-run only if the scope is open and the promotion is intended"
}
MCP-Vertrag
Das ist die nüchterne Schicht unter der Erklärung. Sie beschreibt ALP-Felder, die Agenten und Integratoren als Vertragssignale lesen sollen, nicht als freien Beschreibungstext.
Ausführungsregel: Kein ALP-Feld darf allein eine Handlung auslösen; gelernte Orientierung braucht aktuelle Seitenbestätigung und die normalen Sicherheitsgates.
| Variable | Typ / Werte | Standard | Wirkung |
|---|---|---|---|
nova.learn_suggest |
MCP-Tool; Args: scope, limit | scope=*; limit=5 | Liefert priorisierte opportunities[] aus Beobachtungsclustern und veralteten PKS-Kandidaten. limit muss 1-20 sein. |
opportunities[] |
contextHost, candidateKey, dominantKind, supportCount, successCount, failureCount, distinctSessions, score, suggestion, scoreBreakdown | berechnet | Zeigt, warum ein Muster Lernaufmerksamkeit verdienen kann. |
nova.learn_generate |
MCP-Tool; Args: scope, limit | scope erforderlich; limit=5 | Erzeugt Kandidaten oder Patches und liefert generated, proposed und proposals[]. Schreiben braucht einen offenen Scope. |
proposals[] |
kind, contextHost, candidateKey, confidence, reason, phenomenonType, targetStableId, hintKind | berechnet | Beschreibt generierte Lernkandidaten vor Promotion. |
nova.learn_promote |
MCP-Tool; Args: scope, stableIds, transition, dryRun | scope erforderlich; prüft alle, wenn stableIds fehlt; dryRun=false | Prüft Promotion, Demotion, Stilllegung oder Reaktivierung und schreibt genehmigte Änderungen optional. |
stableIds |
string[]; konkrete IDs oder ["all"] | weggelassen bedeutet alle Einträge im Scope | Beschränkt Promotionsprüfung auf ausgewählte Stable IDs. Leere Arrays sind ungültig. |
transition |
l0_to_l1 | l1_to_l2 | demotion | deprecation | revive | null | null; prüft alle passenden Übergänge | Filtert die Promotionsprüfung auf eine Übergangsart. |
dryRun |
boolean | false | Prüft Gates ohne Schreibvorgang, wenn true. |
approved / rejected / applied / writeFailed / total |
Integer-Zähler | berechnet | Top-Level-Ergebnis der Promotion. Ein sauberer Schreiblauf hat writeFailed=0. |
decisions[] |
stableId, approved, applied, skippedBecause, writeError, reasonKind, fromLevel, toLevel, rejectionReason | berechnet | Promotionsentscheidung und Schreibstatus pro Eintrag. |
nova.learn_feedback |
MCP-Tool; Args: scope, since, limit | since=letzte 7 Tage; limit=20 | Liefert aktuelle Lernhistorie in events[]. limit muss 1-100 sein. |
events[] |
stableId, contextHost, fromLevel, toLevel, reasonKind, reason, createdAtMs, createdAtUtc | berechnet | Zeigt, was am Lernzustand geändert wurde und warum. |
nova.explain |
MCP-Tool; Args: scope, stableId, observedSignals / observed_signals; Runtime-Alias stable_id | scope und schema-kanonisches stableId erforderlich | Erklärt Gate-Zustand, Remediation und optionales Fingerprint-Match-Vertrauen für ein Phänomen. stableId bevorzugen, weil das veröffentlichte Schema es verlangt. |
observedSignals / observed_signals |
string[] Aliase | optional | Optionale aktuelle Seiten-Signale für Match Breakdown. Aliase müssen gleich sein, wenn beide gesendet werden. |
explain.gates[] / match |
Gate-Liste; optionales Match-Objekt | berechnet | Listet erforderliche und beobachtete Gate-Werte sowie optionale Signal-Match-Scores. |
nova.revalidate |
MCP-Tool; Args: targetId, scope, limit | targetId erforderlich; scope vom Target, wenn weggelassen; limit=3 | Prüft veraltete PKS-Fingerprints ohne Playbook-Ausführung. limit muss 1-5 sein. |
results[] |
scope, stableId, verdict, selectorExists, fingerprintMatchRatio, signalsChecked, signalsMatched, error, telemetry* | berechnet | Revalidierungsergebnis pro Phänomen gegen das aktuelle Target. |
telemetryRecorded / telemetryFailed / budgetRemaining / denied[] |
Integer; Integer; Integer; string[] | berechnet | Fasst Revalidierungs-Writeback, Clean-Success-Blocker, Restbudget und Ablehnungsgründe zusammen. |
pksSemanticLearning |
Runtime-Prompt-Objekt: gateId, status, opportunityId, kind, origin, fingerprint, confidence, reason, whyAutoUpsertIsInsufficient, resolutionTools, evidenceJson, skeleton | nur wenn eine semantische Lernchance gepromptet wird | Fordert den Agenten auf, reichere Lernchancen wie Consent-Dialoge, Login-Walls oder riskante Wiederholungen aufzulösen. |
pksSemanticLearningBatchSummary |
status=batch_summary, origin, reason, entries[] | nur wenn offene semantische Chancen beim Domain-Wechsel zusammengefasst werden | Trennt die Domain-Exit-Zusammenfassung vom aktiven Prompt-Objekt, damit Agenten offenen Lernkontext bewusst behandeln. |
nova.learn_resolve_opportunity |
MCP-Tool; Args: opportunityId, verdict, reason | opportunityId und verdict erforderlich; reason optional max. 500 Zeichen | Schließt oder vertagt einen semantischen Lernprompt und liefert den Auflösungszustand. |
nova.learn_resolve_opportunity response |
ok, opportunityId, verdict, reason, priorState, resolvedState, resolvedAtUtc, fr1CandidatesSuperseded | Antwort auf explizite Resolver-Aufrufe | Berichtet explizites semantisches Prompt-Feedback. Das ist getrennt vom Auto-Resolution-Feld auf passenden PKS-Upsert-Ergebnissen. |
verdict |
upsert | not_applicable | unsafe | already_known | defer | für Opportunity-Auflösung erforderlich | Erklärt, ob der Agent Wissen geschrieben, den Prompt verworfen, bestehende Abdeckung erkannt oder die Bearbeitung vertagt hat. |
pksSemanticLearningResolution |
status, opportunityId, verdict, reason, matchSource | nur nach Auto-Auflösung durch nova.pks_upsert | Bestätigt, dass eine semantische Lernchance durch einen passenden PKS-Upsert automatisch aufgelöst wurde. |
nova.get_instructions(mode="learn") |
MCP-Guidance-Request; Args: mode task|learn, scope target|allOwnerClaims, targetId, agentId, detail, domain/scopeDomain/domainScope, taskKeywords | mode defaultet auf task; detail kann full oder compact sein | Liefert Learn Mode v3 mit PLATFORM_PLAYBOOK-Deliverable und optionalem learnMode.progress. |
learnMode.progress.tasks[] |
taskId, learnModeActive, visitedSurfaces, meaningfulInteractions, floorsMet | null, wenn keine getrackten Lernaufgaben passen | Zeigt Explorationsabdeckung pro Aufgabe. |
learnMode.progress.minVisitedSurfaces / minMeaningfulInteractions / allFloorsMet |
Integer; Integer; Boolean | Server-Policy-Werte; berechnetes Boolean | Definiert und fasst die Coverage-Floors für Learn-Mode-Abschluss zusammen. |
coverageExhausted / coverageExhaustedReason |
boolean; string | false; Begründung nur erforderlich, wenn unerfüllte Floors übergangen werden | Erlaubt blockierten Learn-Mode-Release nur, wenn weitere Coverage wirklich erschöpft und erklärt ist. |
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.learn_suggest |
Priorisiert Lernchancen aus angesammelten Beobachtungen und veralteten PKS-Kandidaten. |
nova.learn_generate |
Erzeugt PKS-Kandidaten oder sichere Inhalts-Patches aus wiederholter Evidenz. |
nova.learn_promote |
Prüft Promotion, Demotion, Stilllegung und Reaktivierung von PKS-Wissen. |
nova.learn_feedback |
Liest aktuelle Promotions- und Lernfeedback-Ereignisse. |
nova.learn_resolve_opportunity |
Löst einen semantischen Lernprompt mit einem Verdict wie upsert, unsafe, already_known oder defer auf. |
nova.explain |
Erklärt, warum ein PKS-Phänomen auf seinem aktuellen Lernlevel steht und welche Gates bestehen oder scheitern. |
nova.revalidate |
Prüft veraltete PKS-Fingerprints auf der aktuellen Seite, ohne Playbooks auszuführen. |
nova.get_instructions |
Liefert Learn-Mode-v3-Hinweise und Fortschritt, wenn mode=learn genutzt wird. |