Plugin-Endpoints¶
Jede Plugin-Route mountet unter /api/plugins/{plugin-name}/.
Assessment-Plugin¶
Liefert das 12-Fragen-Pack mit text aufgelöst in der
angefragten Sprache. Jede Antwort trägt die per-Methode-
Gewichte.
[
{
"id": "q01",
"type": "multi",
"text": "Wie gehst du an ein neues Thema heran?",
"answers": [
{
"id": "a",
"text": "Ich lese erst die Regeln und Theorie.",
"weights": {"deductive": 1.0}
},
...
]
},
...
]
Body:
{
"project_id": "p1",
"answers": [
{"question_id": "q01", "answer_ids": ["a", "b"]},
{"question_id": "q02", "answer_id": "c"},
...
]
}
Sowohl Einfachauswahl (answer_id: string) als auch
Mehrfachauswahl (answer_ids: string[]) werden akzeptiert.
Liefert das erzeugte LearningProfile:
{
"id": "pr1",
"user_id": "abc-123",
"project_id": "p1",
"deductive": 0.4167,
"inductive": 0.1833,
"error_based": 0.0833,
"dialogic": 0.0833,
"contextual": 0.0833,
"ai_adaptive": 0.1500,
"assessed_at": "2026-05-19T12:00:00+00:00",
"version": 1,
"dominant_method": "deductive"
}
Liefert das aktuellste LearningProfile für das Projekt.
Session-Plugin¶
Body:
method, cycle_step, lang sind optional. Liefert die
erzeugte Session + den komponierten System-Prompt:
{
"session": {
"id": "s1",
"project_id": "p1",
"method": "deductive",
"started_at": "2026-05-19T12:00:00+00:00",
"ended_at": null,
"cycle_step": 1,
"status": "active"
},
"system_prompt": "Du bist ein deduktiver Lernbegleiter. ..."
}
Body:
Der Server speichert die User-Nachricht, feuert
ai_complete, persistiert die Assistant-Antwort, lässt den
Schritt-Bewerter laufen und liefert das Composite:
{
"user_message": {"id": "m1", "session_id": "s1", "role": "user", "content": "...", "created_at": "..."},
"assistant_message": {"id": "m2", "session_id": "s1", "role": "assistant", "content": "...", "created_at": "..."},
"ai_error": null,
"session": {"...": "Session-Zeile nach cycle_step-Update"},
"step_evaluation": {
"advance": true,
"confidence": 0.85,
"reason": "Lerner hat den Input klar erfasst.",
"suggested_step": 2,
"fallback_used": false,
"applied": true,
"from_step": 1
}
}
Body:
Persistiert eine SessionRating-Zeile. Liefert die Zeile zurück.
Beendet die Session. Feuert on_session_complete (Tracking-
Plugin schreibt einen ProgressCommit). Liefert:
Liefert:
Oder, wenn Stagnation erkannt wird:
{"recommended": true, "to_method": "dialogic", "reason": "Drei Sessions flaches Verständnis + hoher Stress."}
Body:
Aktualisiert session.method, schreibt eine MethodSwitch-
Audit-Zeile, liefert die aktualisierte Session.
Tracking-Plugin¶
Liefert die namespaced Summary; der tracking-Slice trägt
die Aggregator-Ausgabe:
{
"tracking": {
"total_sessions": 7,
"total_minutes": 195,
"streak_days": 3,
"sessions_per_method": {"deductive": 4, "inductive": 2, "dialogic": 1},
"method_distribution": [...],
"recent_understanding": [0.6, 0.8, 0.8, 0.8, 1.0],
"recent_stress": [0.4, 0.4, 0.2, 0.2, 0.2],
"mean_understanding": 0.8,
"mean_stress": 0.3,
"recent_sessions": [...]
},
"step_evaluation": {
"total_evaluations": 28,
"average_confidence": 0.78,
"advance_count": 21,
"repeat_count": 5,
"backward_count": 2,
"fallback_count": 1,
"evaluations_per_step": {"1": 7, "2": 6, ...},
"time_seconds_per_step": {"1": 180.5, ...}
}
}
Liefert alle ProgressCommit-Zeilen des Projekts, chronologisch.
Tools-Plugin¶
Liefert die 5 Katalog-Tools nach Relevanz zum Profil:
[
{
"name": "Anki",
"url": "https://apps.ankiweb.net/",
"why": "Spaced-Repetition-Karteikarten - ideal um Regeln und Fehlerkorrekturen langfristig zu festigen.",
"weight_keys": ["deductive", "error_based"],
"score": 0.5
},
...
]
Liefert Spaced-Repetition-Aktionskarten, getrieben durch Recency:
[
{
"id": "sr-deductive-first",
"method": "deductive",
"interval_days": 1,
"action": "session",
"title": "Erste Übung in Deduktion.",
"urgency": 0.5
},
...
]
Plugin-Discovery¶
Jede liefert eine Map, gekeyt auf Plugin-Namen. Genutzt von der Settings > Plugins-UI (in v0.7.0 aufgeschoben).