Anpassungsfähiger Lehragent in LangGraph: Lernzustand, Routenplanung, menschliche Überprüfung
Ein Entwurf für einen LangGraph-Tutor, der den Lernzustand verfolgt, Pfade zwischen Korrekturmaßnahmen und Fortschritt vorgibt, Antworten mit RAG untermauert und bei Bedarf an menschliche Prüfer weiterleitet.
Quellen: From Chatbot to Learning System: A Scientific Blueprint for a LangGraph Adaptive Teaching Agent
Sprachmodelle können fast jedes Thema mit großer Flüssigkeit erklären, doch Flüssigkeit misst nicht das Lernen. Ein Schüler kann eine gut formulierte Darstellung der retrieval-augmented Generation lesen, zustimmen und dennoch nicht zwischen Retrieval und Feinabstimmung unterscheiden oder eine Quelle erkennen, die von nichts gestützt wird. Was fehlt, ist nicht die Textgenerierung – es fehlt die lehrbezogene Steuerung: das Sammeln von Belegen dafür, dass jemand verstanden hat, die Auswahl einer geeigneten Intervention sowie die Überprüfung, ob diese gewirkt hat.
Dies ist ein Entwurf für einen adaptiven Lehrassistenten, der auf LangGraph basiert – einem zustandsbasierten System, das Lernziele, Lernendenreaktionen, Fehlvorstellungen, Bewertungsbeweise sowie weitere Schritte verfolgt. Es verbindet die aktuelle Agentenentwicklung mit älteren pädagogischen Konzepten, insbesondere der formativen Bewertung und dem Mastery-Learning. Ziel ist es nicht, den Pädagogen zu ersetzen, sondern den formativen Zyklus aus Diagnose, Erklärung, Übung, Bewertung, Anpassung und Fortschrittspflege transparent, überprüfbar und testbar zu machen. Eine Einschränkung: Es handelt sich um einen technischen Entwurf, der nicht beweist, dass ein bestimmter Assistent die Lernergebnisse verbessert. Eine tatsächliche Implementierung erfordert eine angemessene Studiendesign, eine Zugänglichkeitsprüfung, Datenschutzmaßnahmen sowie Leitlinien für die Dozenten.
Antworten generieren versus sich an den Lernenden anpassen
Ein auf Antworten ausgerichteter Chatbot nimmt eine Anfrage entgegen und gibt eine Antwort zurück. Das kann praktisch sein, doch es gibt keine zuverlässige Möglichkeit, festzustellen, ob der Lernende den Punkt verstanden hat, ob ein Fehler weiterhin besteht oder was als Nächstes geschehen sollte. Es mag pedagogisch klingen, handelt sich aber in Wirklichkeit um eine aufwendige Form des Autocomplete-Funktionals.
Ein adaptiver Tutor arbeitet in einer anderen Einheit – der Lernepisode. Eine Episode beginnt mit einem messbaren Ziel, sammelt Belege aus der Reaktion des Lernenden, interpretiert diese anhand eines Bewertungsschemas, wählt eine Unterrichtsmaßnahme aus und dokumentiert, was geschehen ist – wodurch der Zustand über alle diese Schritte hinweg beibehalten werden muss.
Das Design spiegelt eine grundlegende Idee in der formativen Bewertung wider, bei der Unterrichten und Beurteilen miteinander interagieren und Belege für das Verständnis die nächste Unterrichtsentscheidung bestimmen. Es erinnert auch an das Konzept des Meisterlernens, bei dem Korrekturarbeiten und zusätzliche Zeit bereitgestellt werden, bevor der Lernende zu Material übergeht, das auf früheren Themen beruht. Diese Konzepte sind bereits seit Jahrzehnten bekannt – neu ist lediglich die Möglichkeit, ihre Rückkopplungsschleifen in sichtbarem Softwareprogramm umzusetzen, anstatt sie in einem einzigen großen Prompt zu verbergen.
Warum ein Graph besser ist als eine Prompt-Kette
Im Zentrum steht ein gerichteter Graph, G = (V, E). Die Knoten stellen begrenzte Unterrichtshandlungen dar, die Kanten die zulässigen Übergänge zwischen ihnen, und die bedingten Kanten enthalten die pädagogischen Entscheidungen: Voranschreiten, sobald das Verständnis ausreichend nachgewiesen wurde, Korrekturmaßnahmen ergreifen, nachdem ein bestimmter Irrtum festgestellt wurde, oder weiterleiten, wenn ein Fall unklar ist oder hohe Konsequenzen hat.
LangGraph eignet sich, weil er eine Anwendung um einen gemeinsamen Zustand, Knoten, die diesen lesen und aktualisieren, sowie explizite Übergänge strukturiert. Das passt zu Lernworkflows weitaus besser als eine einzige, undurchsichtige Anweisung, die als hilfreicher Tutor fungiert, und es ermöglicht es, dem System konkrete Fragen zu stellen. Welche Belege führten zur Korrekturmaßnahme? Welche Version der Bewertungskriterien wurde angewendet? Erhielt eine riskante Anfrage einen menschlichen Prüfer? Hat der Agent endlos im Kreis gedreht? Der Lernzustand steht im Mittelpunkt, und die Knoten sollten ihn gezielt aktualisieren, anstatt frühere Gespräche als unstrukturierten Datensatz zu behandeln.
Ein minimales Lernzustand
Behalten Sie nur das, was das aktuelle Ziel und dessen Regelung erfordern. Der Zustand sollte nicht zu einem vagen Datensatz persönlicher Daten werden. Sechs Felder decken die Grundlagen ab:
learning_goal, ein beobachtbares Ziel für die jeweilige Episode, wie zum Beispiel die Unterscheidung zwischen RAG und Feinabstimmung.learner_answer, der von dem Lernenden bereitgestellte Nachweis, beispielsweise eine schriftliche Erklärung oder eine Code-Kritik.misconceptions, spezifisch diagnostizierte Fehler, wie zum Beispiel die Annahme, dass Zitate automatisch überprüft werden.rubric_score, ein transparenter Bewertungssignal, beispielsweise 0,65 auf einer kriterienbasierten Bewertungsskala.attempts, ein Schutz vor endloser, stillschweigender Wiederholung, wie zum Beispiel zwei Versuche am selben Aufgabenpunkt.next_actionmacht die Entscheidung zur Weiterleitung sichtbar (Besserung oder Fortschritt), undneeds_human_reviewist ein Sicherheits- und Unsicherheitsflag, das bei unklaren oder sensiblen Fällen aktiv ist.
Das untenstehende Beispiel verwendet eine deterministische Routenfindung, damit die pädagogische Entscheidung leicht verständlich bleibt. In der Produktion kann ein Modell dabei helfen, Feedback zu erstellen oder mögliche Fehlvorstellungen der Nutzer vorzuschlagen, doch die Kriterien für die Übergänge sollten weiterhin unabhängig überprüfbar bleiben.
from typing import Literal
from typing_extensions import TypedDict
class TutorState(TypedDict):
learning_goal: str
learner_answer: str
misconceptions: list[str]
rubric_score: float
attempts: int
needs_human_review: bool
next_action: str
def choose_next_action(state: TutorState) -> Literal[
"advance", "remediate", "human_review"
]:
"""Route using visible, reviewable instructional policy."""
if state["needs_human_review"]:
return "human_review"
if state["rubric_score"] >= 0.80 and not state["misconceptions"]:
return "advance"
return "remediate"
Die Schwellenwert ist nicht universell und muss für jedes Ziel individuell gewählt und überprüft werden. Entscheidend ist, dass die Regel deklariert, versioniert und testbar ist. Das System bezeichnet einen Lernenden nicht als schwach; es weist lediglich darauf hin, dass die vorliegenden Belege noch kein definiertes Kriterium erfüllen.
Das Lehrdiagramm
Hier ist ein kompaktes LangGraph-Skelett zu sehen, bei dem Diagnose, Erklärung, Übung, Bewertung, Nachhilfe, Fortschritt sowie menschliche Überprüfung als separate Knoten dargestellt werden. Jeder Knoten in einem Produktivsystem würde auf überprüftem Inhalt, einer Bewertungsskala sowie einem von außen bereitgestellten Modell oder Suchdienst zurückgreifen – nicht auf einer fest kodierten Antwort.
from langgraph.graph import END, START, StateGraph
def diagnose(state: TutorState) -> dict:
# Replace with a rubric-guided classifier or instructor-approved LLM call.
answer = state["learner_answer"].lower()
misconception = "citations are automatically verified" in answer
return {
"misconceptions": (
["Confuses generated citations with source verification"]
if misconception else []
)
}
def explain(state: TutorState) -> dict:
# In production: retrieve approved sources, then generate grounded feedback.
return {"next_action": "practice"}
def practice(state: TutorState) -> dict:
# In production: generate a new, equivalent item—not the same question again.
return {"attempts": state["attempts"] + 1}
def evaluate(state: TutorState) -> dict:
# Placeholder for a criterion-referenced evaluator with stored evidence.
return {"next_action": choose_next_action(state)}
def route_after_evaluation(state: TutorState) -> str:
return choose_next_action(state)
builder = StateGraph(TutorState)
builder.add_node("diagnose", diagnose)
builder.add_node("explain", explain)
builder.add_node("practice", practice)
builder.add_node("evaluate", evaluate)
builder.add_node("remediate", explain)
builder.add_node("advance", lambda state: {"next_action": "complete"})
builder.add_node("human_review", lambda state: {"next_action": "review"})builder.add_edge(START, "diagnose")
builder.add_edge("diagnose", "explain")
builder.add_edge("explain", "practice")
builder.add_edge("practice", "evaluate")
builder.add_conditional_edges(
"evaluate",
route_after_evaluation,
{
"advance": "advance",
"remediate": "remediate",
"human_review": "human_review",
},
)
builder.add_edge("remediate", "practice")
builder.add_edge("advance", END)
builder.add_edge("human_review", END)tutor_graph = builder.compile()
Zwei Funktionen sind absichtlich so gestaltet. Die Schleife sendet Korrekturmaßnahmen zurück zu einer neuen Übungsmöglichkeit, und nicht nur eine längere Erklärung. Die Stoppschranke beendet den automatisierten Ablauf, sobald etwas außerhalb der Richtliniengrenzen liegt, und leitet den Fall an einen Dozenten oder einen anderen autorisierten Prüfer weiter.
Wo RAG hingehört
Bei inhaltlich anspruchsvollen Themen sollte sich der Erklärungsknoten nicht ausschließlich auf das interne Wissen des Modells stützen. Er sollte stattdessen aus einer genehmigten, versionierten Sammlung von Lehrmaterialien schöpfen, die relevanten Abschnitte an das Modell weiterleiten und Zitierungen verlangen, die der Lernende überprüfen kann. Das ist die eigentliche Aufgabe von RAG hier: Eine Erklärung in einer sorgfältig zusammengestellten Wissensdatenbank zu verankern.
Dadurch wird der Agent standardmäßig nicht korrekt. Es sind weiterhin Regeln zur Quellenauswahl, Überprüfung von Zitaten, Schutzmaßnahmen gegen Prompt-Injection sowie Tests für nicht unterstützte Behauptungen erforderlich. Eine nützliche Sicherheitsregel besteht darin, dass der Agent angibt, die Beweise seien unzureichend, wenn die Qualität der Informationsbeschaffung schlecht ist, anstatt die Lücke mit einer selbstsicheren Erklärung zu füllen.
Bewertung zuerst
Ein Graph macht einen adaptiven Agenten noch nicht glaubwürdig. Messbares didaktisches und sicherheitstechnisches Verhalten schon. Bewertet vier Ebenen: Lernen (hat sich das Verständnis verbessert, beurteilt anhand von Vor-/Nach-Konzeptprüfungen oder Transferaufgaben), Pädagogik (war die Intervention angemessen, beurteilt durch Expertenprüfung von Feedback und Routing), das System (hat der Graph die Richtlinien befolgt, beurteilt anhand von Routenpräzision, Schleifenrate und Latenz) sowie Sicherheit (hat es sicher versagt, beurteilt anhand von Eskalationsprüfungen sowie Tests zu Privatsphäre und Injection).
Vor dem Polieren der Benutzeroberfläche sollten Sie eine kleine Sammlung von Fallbeispielen mit korrekten Erklärungen, vorhersehbaren Missverständnissen, unklaren Antworten, konträren Anweisungen sowie Fällen zusammenstellen, die eine menschliche Überprüfung erfordern. Der untenstehende Test beweist zwar keine pädagogische Wirksamkeit, er erkennt jedoch grundlegende Fehler auf, insbesondere solche Routing-Strategien, die der angegebenen Richtlinie widersprechen.
import pytest
@pytest.mark.parametrize(
"state, expected",
[
({
"learning_goal": "Differentiate RAG and fine-tuning",
"learner_answer": "A correct distinction",
"misconceptions": [],
"rubric_score": 0.92,
"attempts": 1,
"needs_human_review": False,
"next_action": "",
}, "advance"),
({
"learning_goal": "Differentiate RAG and fine-tuning",
"learner_answer": "Citations are automatically verified",
"misconceptions": ["Citation-verification error"],
"rubric_score": 0.45,
"attempts": 1,
"needs_human_review": False,
"next_action": "",
}, "remediate"),
],
)
def test_routing_policy(state, expected):
assert choose_next_action(state) == expected
Hier beginnt künstliche Intelligenz mit agiler Architektur wie disziplinierte Softwareentwicklung auszusehen. Aussagen, Testfälle, Quellcodeversionen, Trace-Logs und Entscheidungsprotokolle sind keine bürokratischen Zusatzfunktionen. Sie verwandeln eine beeindruckende Demonstration in ein verantwortungsvolles System.
Überwachung als Funktion
Bildung ist nicht nur ein Problem der technischen Optimierung. Ein System sollte nicht eigenmächtig wichtige Noten vergeben, sensible Eigenschaften der Lernenden ableiten oder entscheidende Empfehlungen zur Fortschrittsbewertung aussprechen. Es sollte formatives Feedback von offiziellen Bewertungen trennen und seine Unsicherheiten offen zeigen.
Integrieren Sie menschliche Überwachung in das Diagramm als Übergabekriterien: Der Bewertende ist unsicher, die Versuche scheitern weiterhin, die wissenschaftliche Integrität könnte in Frage gestellt werden, Barrieren bei der Zugänglichkeit bestehen, eine Anfrage berührt Aspekte der Sicherheit, oder ein Lernender benötigt eindeutig mehr Urteilsvermögen als ein anderer generierter Absatz. Schreiben Sie diese Kriterien in die Spezifikation, bevor ein Modell aufgerufen wird. Die eigentliche Frage ist, welche Lehrentscheidungen delegiert werden können, welche einer Überprüfung bedürfen und welche Beweise jede Übergangsphase stützen – nicht ob ein Agent unterrichten kann. Durch diese Herangehensweise behalten Pädagogen die Kontrolle über die Gestaltung des Lernprozesses, und Ingenieure erhalten Anforderungen, die sie testen können.
Was kommt als Nächstes?
Der Nutzen entsteht dadurch, dass das Lernen als kontrollierter Rückkopplungsschleifen-Prozess behandelt wird: Man beginnt mit einem Ziel, leitet auf der Grundlage von Belegen des Lernenden eine Diagnose ab, wählt eine begrenzte Reaktion aus, überprüft das Ergebnis und handelt verantwortungsvoll weiter. Behauptungen über eine Veränderung des Bildungswesens sollten zurückstehen. Entwickeln Sie zunächst ein kleines, transparentes System rund um ein einziges Lernziel, testen Sie dessen Abläufe, untersuchen Sie, wie es das Verständnis beeinflusst, und verbessern Sie es in Zusammenarbeit mit beteiligten Lehrenden und Lernenden. Das ist eine höhere Hürde als das scheinbar hilfreiche Verhalten eines Chatbots – und genau diese Hürde sollte künstliche Intelligenz im Bildungsbereich überwinden.