Förderjahr 2025 / Projekt Call #20 / ProjektID: 8012 / Projekt: computor
Studierende arbeiten in computor innerhalb einer VS Code Extension. Links im Aufgabenbaum sind Kurse, Einheiten und Aufgaben aufgelistet. Zu jeder Aufgabe gehören eine README-Vorschau mit der Angabe, die zu bearbeitenden Dateien, automatische Tests und ein Nachrichtenbereich. Über ein Kontextmenü können Studierende außerdem ihre Bewertung und Testergebnisse einsehen. Diese Oberfläche ist der Ort, an dem auch Luna ins Spiel kommt.
Luna ist kein eigenständiger Chatbot und kein separates Fenster. Sie nutzt dasselbe Nachrichtensystem, das auch für die Kommunikation zwischen Studierenden und menschlichen Tutor:innen gebaut wurde. Wenn ein Studierender in einem Aufgaben-Thread eine Nachricht mit dem Tag #ai schickt, wird Luna aktiv. Der TriggerChecker sucht genau nach diesen Markierungen. Ihre Antwort erscheint im selben Thread, markiert mit #ai. Für Studierende sieht das aus wie eine normale Antwort in einer laufenden Konversation. Ob ein Mensch oder Luna antwortet, ändert nichts an der Datenstruktur dahinter.

Bevor Luna eine Antwort formuliert, baut der ContextBuilder den Kontext zusammen, den das Sprachmodell sieht. Dieser Kontext umfasst die aktuelle Nachricht und die bisherige Thread-Historie, Informationen zur Aufgabe und zum Kurs, den aktuellen Code im Repository der studierenden Person, falls vorhanden das letzte eingereichte Abgabeartefakt, die Testergebnisse der letzten Ausführung, den bisherigen Fortschritt und die Abgabehistorie sowie eine optionale Referenzlösung zum Vergleich. Der ContextBuilder entscheidet dabei anhand der verfügbaren Daten, welche Bestandteile tatsächlich eingebunden werden. Wenn etwa noch keine Abgabe existiert, fehlt dieser Teil im Kontext.
Auf Basis dieses Kontexts arbeitet Luna mit einem Tutor-Prompt, der klare Grenzen setzt. Luna darf keine vollständigen Lösungen ausgeben, keinen korrigierten Abgabecode liefern und keine Schritt-für-Schritt-Anleitungen formulieren, die direkt zum fertigen Ergebnis führen. Stattdessen soll sie Denkstöße geben, auf Fehlerquellen hinweisen und Konzepte erklären. Das Ziel ist nicht, Arbeit abzunehmen, sondern die nächste sinnvolle Frage oder den nächsten Prüfschritt sichtbar zu machen.
Damit diese Einschränkungen nicht durch geschickt formulierte Anfragen umgangen werden, gibt es eine zweistufige Sicherheitsprüfung. In der ersten Stufe wird erkannt, ob eine Nachricht versucht, Luna zu einer unzulässigen Antwort zu bewegen. In der zweiten Stufe wird dieser Verdacht bestätigt oder verworfen. Die beiden Stufen sind so abgestimmt, dass normale studentische Fragen nicht fälschlich blockiert werden. Eine zu aggressive Filterung würde Luna im Alltag unbrauchbar machen, deshalb ist diese Schwelle bewusst zurückhaltend gesetzt.

Die gesamte KI-Kommunikation läuft über eine Provider-Schicht, die das OpenAI-kompatible API-Format spricht. Dadurch kann computor mit verschiedenen Backends arbeiten, etwa mit OpenAI direkt, mit LM Studio, mit Ollama oder mit ähnlichen Diensten. Für den lokalen Betrieb auf Apple-Silicon-Hardware kann zusätzlich vllm-mlx oder ein eigener Fork davon als Backend verwendet werden. Das ist die Inferenzschicht darunter, nicht der eigentliche Tutor-Workflow. Durch diese Trennung bleibt die Backend-Wahl konfigurierbar, ohne dass Trigger, Kontextaufbau oder Bewertungslogik neu gebaut werden müssen.