core: Policy, Pflege-Agent (HITL), Healer, Lifecycle-Pipeline, Graduierung + Konfiguration

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 00:43:26 +02:00
co-authored by Claude Opus 5.5
parent f79e2a8556
commit f2da893f71
28 changed files with 2179 additions and 10 deletions
+47
View File
@@ -0,0 +1,47 @@
---
name: rechnung-extrahieren
description: Extrahiert Rechnungsnummer, Rechnungsdatum, Netto-, Steuer- und Bruttobetrag sowie den Rechnungssteller aus dem Text einer Rechnung als JSON.
metadata:
knaster:
version: 1
status: draft # wird nach erfolgreicher Graduierung "active", stage 1
stage: 0
cluster: rechnungen
slot: tier1-general
threshold: 0.80
triggers:
- "Lies die Rechnungsdaten aus diesem PDF-Text aus"
- "Welche Rechnungsnummer und welcher Betrag stehen auf der Rechnung?"
max_output_tokens: 400
output:
format: json
schema:
type: object
required: [rechnungsnummer, datum, brutto, waehrung]
properties:
rechnungsnummer: {type: string}
datum: {type: string, pattern: "^\\d{4}-\\d{2}-\\d{2}$"}
netto: {type: [number, "null"]}
steuer: {type: [number, "null"]}
brutto: {type: number}
waehrung: {type: string, minLength: 3, maxLength: 3}
steller: {type: [string, "null"]}
verifier:
- type: judge
slot: verifier-small
rubric: "Stimmen Rechnungsnummer und Bruttobetrag exakt mit dem Text überein? Netto + Steuer = Brutto, falls angegeben."
---
# Rechnung extrahieren
Du extrahierst strukturierte Daten aus dem Text einer Rechnung.
## Regeln
1. Gib nur Werte aus, die wörtlich im Text stehen. Erfinde nichts; fehlende optionale Werte sind `null`.
2. Datum immer als `YYYY-MM-DD`.
3. Beträge als Zahl mit Punkt als Dezimaltrenner, ohne Tausendertrennzeichen und ohne Währungssymbol.
4. Währung als ISO-Code (EUR, CHF, USD).
5. Gibt es mehrere Beträge, ist `brutto` der zu zahlende Gesamtbetrag.
## Beispiele
Eingabe: „Rechnung Nr. RE-2024-118 vom 03.04.2024 … Nettobetrag 1.000,00 € zzgl. 19 % MwSt. 190,00 € Gesamtbetrag 1.190,00 €“
Ausgabe: {"rechnungsnummer": "RE-2024-118", "datum": "2024-04-03", "netto": 1000.0, "steuer": 190.0, "brutto": 1190.0, "waehrung": "EUR", "steller": null}
+22
View File
@@ -0,0 +1,22 @@
---
name: ticket-kategorisieren
description: Ordnet ein IT-Support-Ticket genau einer Kategorie zu (drucker, netzwerk, zugang, hardware, software, sonstiges).
metadata:
knaster:
version: 1
status: draft
stage: 0
execution: classifier # Ziel: Stufe 3, sobald genug gelabelte Fälle für den Classifier vorliegen
classifier: ticket-kategorie
min_confidence: 0.7
llm_fallback: true
slot: tier1-general
threshold: 0.78
max_output_tokens: 10
verifier:
- {type: regex, pattern: "^(drucker|netzwerk|zugang|hardware|software|sonstiges)$"}
---
# Ticket kategorisieren
Antworte mit genau einem Wort aus: drucker, netzwerk, zugang, hardware, software, sonstiges.
Passwort- und Berechtigungsprobleme sind `zugang`.
+22
View File
@@ -0,0 +1,22 @@
---
name: zusammenfassung
description: Fasst einen deutschen Text sachlich in höchstens fünf Stichpunkten zusammen.
metadata:
knaster:
version: 1
status: draft
stage: 0
slot: tier1-general
threshold: 0.80
max_output_tokens: 300
verifier:
- {type: regex, pattern: "^- "}
- {type: max_chars, value: 1200}
- type: judge
slot: verifier-small
rubric: "Gibt die Zusammenfassung nur Inhalte des Textes wieder (keine Erfindungen) und enthält sie die Kernaussage?"
---
# Zusammenfassung
Fasse den Text in höchstens fünf Stichpunkten zusammen. Jeder Stichpunkt beginnt mit „- “.
Keine Einleitung, keine Wertung, nichts erfinden.