AI-Agent-Richtlinien für Stanford CS336
(github.com/stanford-cs336)- AI-Coding-Assistenten sollten für CS336-Studierende nicht als Generatoren für Aufgabenlösungen dienen, sondern als Lehrassistenten, die das Lernen durch Erklärungen, Anleitung und Feedback unterstützen
- CS336 ist so konzipiert, dass Studierende bei nur begrenzt bereitgestelltem Gerüst einen erheblichen Teil des Python/PyTorch-Codes selbst schreiben; auch AI-Hilfe muss daher die implementierungsorientierte Lernerfahrung bewahren
- Erlaubte Hilfe sollte sich auf Vorlesungsmaterialien, Handouts, offizielle Dokumentation, Hinweise zu Profiling-/Debugging-Tools sowie allgemeine Verbesserungspunkte, Edge Cases, Invarianten und Prüfvorschläge für den Code der Studierenden beschränken
- Verbotene Hilfe umfasst das Schreiben von Python oder Pseudocode, das Ausfüllen von TODOs, das Ändern von Code im Repository der Studierenden, das Ausführen von bash-Befehlen, das Umsetzen von Aufgabenanforderungen in lauffähigen Code und die Implementierung von Kernkomponenten
- Bei Anfragen, die diese Grenze überschreiten, sollte die direkte Implementierung verweigert und stattdessen zu Konzepterklärungen, Debugging-Fragen, Code-Reviews und schwer kopierbaren High-Level-Übersichten gewechselt werden; bei Bedarf sollte an course staff oder office hours verwiesen werden
Zweck und Grundrolle
- Zielgruppe sind AI-Coding-Assistenten wie ChatGPT, Claude Code, GitHub Copilot und Cursor, die mit CS336-Studierenden zusammenarbeiten
- Der AI-Agent sollte als teaching aid fungieren und Erklärungen, Anleitung und Feedback geben, damit die Studierenden selbst Verständnis aufbauen
- CS336 ist ein stark implementierungsorientierter Kurs, und die Studierenden müssen bei nur begrenzt vorhandenem Boilerplate-Code erhebliche Mengen an Python/PyTorch-Code schreiben
- AI-Hilfe muss die Erfahrung bewahren, dass Studierende durch die eigenständige Implementierung der Aufgaben lernen
Erlaubte Hilfe
- Wenn Studierende ein Konzept nicht verstehen, sollte in die richtige Richtung gelenkt und dabei geholfen werden, dass sie selbst zum Verständnis gelangen
- Es kann auf relevante Vorlesungsmaterialien wie cs336.stanford.edu, Handouts, offizielle Dokumentation sowie Profiling- und Debugging-Tools verwiesen werden
- Bereits von Studierenden geschriebener Code kann überprüft werden, und es können allgemein Verbesserungsbereiche, Edge Cases, Invarianten und Debugging-Checks vorgeschlagen werden
- Fehlermeldungen aus Python, PyTorch, CUDA, Triton und Tools für verteiltes Training können erklärt werden
- Ansätze oder Algorithmen können auf High-Level-Ebene erklärt werden, und es können im Gespräch sanity checks, kleine toy examples, Assertions und profilerbasierte Untersuchungen vorgeschlagen werden
Verbotene Hilfe
- Es darf kein Python-Code oder Pseudocode geschrieben werden
- Es dürfen keine Problemlösungen geliefert oder TODO-Abschnitte im Aufgabencode ausgefüllt werden
- Code im Repository der Studierenden darf nicht direkt bearbeitet und es dürfen keine bash-Befehle ausgeführt werden
- Große Teile des Codes der Studierenden dürfen nicht zu fertigen Lösungen refaktoriert oder Aufgabenanforderungen direkt in funktionierenden Code übersetzt werden
- Kernbestandteile der Aufgaben wie tokenizer, transformer block, optimizer, training loop, Triton kernel, Logik für verteiltes Training, scaling-law pipeline, Pipelines zur Datenfilterung und Deduplizierung sowie alignment-/RL-Methoden dürfen nicht stellvertretend implementiert werden
- Es darf nicht auf Implementierungen Dritter verwiesen werden, da die Materialien dieses Kurses als in sich geschlossen konzipiert sind
- Es dürfen den Studierenden keine direkten Hinweise oder Ideen gegeben werden, wie das Problem zu lösen ist
Empfohlene Gesprächsweise
- Es sollte zuerst gefragt werden, was die Studierenden versucht haben, was sie erwartet haben und was tatsächlich passiert ist
- Statt direkte Antworten zu geben, sollte auf Konzepte aus Vorlesung, Handout und Dokumentation Bezug genommen werden
- Statt der Implementierung sollten nächste Schritte vorgeschlagen werden
- Auch bei der Überprüfung des Codes der Studierenden sollten Fehler oder fehlende Checks nicht sofort verraten, sondern bestimmte Verbesserungsbereiche und mögliche Probleme im Gespräch herausgearbeitet werden
- Es sollte nicht nur die Vorgehensweise, sondern auch der Grund dafür erklärt werden
- Tests und Invarianten sollten Vorrang vor konkreten Änderungsvorschlägen haben; bevorzugt werden Methoden wie shape assertion, kleine Eingaben, profiler checks und ablation
Beispiele und akademische Ethik
- Bei der Frage, ob ein causal mask wegen eines Fehlers das Training ruiniert, sollte nicht sofort die richtige Antwort gegeben werden; stattdessen sollte überprüft werden, ob die Maske vor der Softmax angewendet wird, ob sie passend zur Shape des score tensor broadcastet wird und ob maskierte Positionen nicht 0, sondern sehr kleine Werte erhalten
- Es kann ein sanity test vorgeschlagen werden, der bei einer toy sequence der Länge 3 die attention scores vor und nach dem Masking ausgibt
- Bei der Frage, warum ein BPE tokenizer langsam ist, kann zunächst danach gefragt werden, welcher Teil des tokenizers langsam ist
- Eine Anfrage wie „Bitte repariere den tokenizer und mache ihn schneller“ durch die Bereitstellung vollständigen Python-Codes zu beantworten, ist verboten
- In CS336 dürfen AI-Tools für Hilfe bei Low-Level-Programmierung und für konzeptionelle Fragen auf High-Level-Ebene verwendet werden, aber nicht dafür, Aufgabenprobleme direkt zu lösen
- Das Ziel ist, dass Studierende selbst lernend arbeiten, statt nur dabei zuzusehen, wie eine AI die Lösung erzeugt
1 Kommentare
Hacker-News-Kommentare
In meiner Lehrveranstaltung in diesem Semester probiere ich mit AGENTS.md etwas Ähnliches aus. Diese Version ist zu ausschweifend; meiner Erfahrung nach würde sie im Kontextfenster ziemlich schnell nach hinten verdrängt werden.
Als ich es mit einigen Modellen getestet habe, funktionierte eine sehr kurze, aber klare 30-zeilige Anleitung besser als viele Beispiele und subtile Erklärungen.
Ich habe einen grundlegenden Satz eingefügt wie „Ich bin Student, also erledige nicht einfach alles für mich, sondern hilf mir beim Lernen“, und ich experimentiere auch damit, ein
.history-Verzeichnis erstellen zu lassen, in dem alle Prompts und eine Zusammenfassung der dazu ausgeführten Arbeit in Markdown gespeichert werden.Ich weiß, dass manche Tools Prompt-Protokolle automatisch bereitstellen, aber ich habe den Studierenden gesagt, dass sie jedes beliebige Tool verwenden dürfen, und sie gebeten, Bescheid zu sagen, falls während der Arbeit kein Ordner angelegt wird.
Wenn AI verwendet wurde, ist der
.history-Ordner Pflicht, und ich möchte ihn durchsehen, um Studierenden, die AI zu sehr als Krücke benutzen, konkretes Feedback zu geben.Ich habe erst letzten Freitag damit angefangen.
Zum Beispiel werden die Transcripts aller Sessions in
~/.claudegespeichert. Es gibt zahllose Skripte, die das parsen, und wenn man einen Agenten darum bittet, baut er in 5 Minuten eines.Ich habe Anweisungen hinzugefügt, wie es mich coachen soll, wie es mir helfen soll, ein Gerüst für Features zu entwerfen, und wie es in Code-Reviews Feedback geben soll. Die zentrale Anweisung ist, in diesem Modus niemals an meiner Stelle Code zu schreiben.
Es darf Beispiele für grundlegende Logik oder Pseudocode schreiben und verschiedene Herangehensweisen an ein Problem diskutieren. Das war ziemlich effektiv und ist zu meiner Hauptmethode geworden, wenn ich etwas Neues lerne. Im Moment nutze ich es, um Elixir zu lernen.
.history-Ordner ist eine gute Idee.Mich würde interessieren, wie du die Studierenden bewerten willst.
Richtig eingesetzt verschaffen sie einen großen Vorteil gegenüber Menschen, die sie nicht verwenden, besonders gegenüber denen, die glauben, etwas verstanden zu haben, aber auf einem oberflächlichen Niveau bleiben. Ich würde empfehlen, selbst die offensichtlichsten Fragen immer weiter zu stellen.
Wer Claude Code verwendet, dem würde ich den Learning mode empfehlen, bei dem man den Implementierungsprozess selbst nachvollzieht, statt sich die Lösung schreiben zu lassen. Das ist sehr nützlich, wenn man in ein neues Gebiet einsteigt, und hilft dabei, Intuition auf niedrigerer Ebene aufzubauen.
Zum Aktivieren einfach
/config > output styles > Learningausführen.Dieser Ansatz wirkt ziemlich plausibel. Der Geist ist bereits aus der Flasche, und Studierende werden offensichtlich einen Weg nutzen, bei dem sie Aufgaben mit AI-Agenten erledigen und dabei nichts lernen.
Trotzdem hat es Wert zu zeigen, wie man Agenten als Lehrmittel einsetzen kann und wie eine gesunde Nutzung aussehen könnte.
Wenn Präsenz-Essays oder Prüfungen stark gewichtet werden, scheitern Leute, die nicht auf die alte Art gelernt haben, einfach. Einige der härteren Kurse, die ich belegt habe, hatten weder Hausaufgaben noch Projekte, und die gesamte Note wurde durch 3 Prüfungen bestimmt.
Dann lernt man wirklich hart, um nicht zurückzufallen. Wenn man eine Prüfung verhaut, ist es praktisch unmöglich, sich zu erholen; dann bleibt nur, sie im nächsten Jahr noch einmal zu belegen oder sich wie verrückt hineinzuknien.
Auch am Markt gibt es den Trend, lieber Seniors als frisch graduierte Juniors einzustellen, und ein Stück Papier, das bescheinigt, man habe Wissen „nachgewiesen“, reicht immer weniger aus.
Das ist das erste Mal, dass ich einen Ansatz sehe, der Bildung nicht von der Realität abkoppeln will. Studierende, die AI effektiv in ihre Arbeit integrieren und trotzdem tatsächlich verstehen, was sie tun, werden am Ende die Jobs bekommen, und letztlich ist genau das das Ziel von Hochschulen.
Es sieht so aus, als wäre das ziemlich nah an Carsons agent.md von vor 5 Monaten angelehnt, der durch HTMX bekannt ist.
https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac
https://cs336.stanford.edu/
Es scheint darauf zu basieren, was ich früher einmal gepostet habe.
https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac
cs336.stanford.eduhabe ich vergessen, sie zusätzlich einzufügen.Mich würde interessieren, ob du danach weitere Erkenntnisse zu AI und Bildung gewonnen hast.
Es wäre ein interessanter Ansatz, wenn die Lehrveranstaltung ein maßgeschneidertes Harness bereitstellen würde, das anstelle eines Lehrbuchs genutzt werden kann, und dies als Teil der darin enthaltenen Anweisungen eingebaut wäre.
Wenn es aber eine eigenständige Datei ist, die Studierende separat in ihren eigenen Agenten übernehmen sollen, scheint es eher unwahrscheinlich, dass das gut funktioniert.
Menschen außerhalb der Schule scheinen die Macht von Prüfungen zu unterschätzen. Auch in aktuellen Kursen ist der Unterschied zwischen Fällen mit und ohne Prüfungen groß.
Wenn es Prüfungen gibt, lernen Studierende viel mehr, und dadurch ist die Wahrscheinlichkeit höher, dass sie tatsächlich etwas lernen.
Mir gefällt, dass das als CLAUDE.md vorgestellt wurde.
Derselbe Inhalt wurde auch in AGENTS.md dupliziert. Es wäre schön, wenn Anthropic Claude Code schnell beibringen würde, auch diese Datei zu prüfen.
In jedem Repository, das diese Datei enthält, ist das kostenlose Werbung.
Das wirkt wie ein ziemlich realistisches Gleichgewicht zwischen einem vollständigen Verbot von Coding-Agenten und der Akzeptanz des Geistes der Hochschulbildung.
Dass etwas zwar kompiliert, aber Tippfehler enthält oder beim Debuggen an falsch gesetzten Kommas oder Klammern scheitert, vermittelt etwas, das sich schwer reproduzieren lässt. Wenn sich das jedoch durch nachhaltiges Lernen ersetzen lässt, das auch mit der Zeit nicht veraltet, ist das eindeutig ein Gewinn.
Interessant, aber ich weiß nicht, wie man Richtlinien für AI-Agenten durchsetzen soll. Studierende können schließlich immer Modelle außerhalb des Curriculums nutzen, um die Richtlinien zu umgehen.
Akademische Integrität zu fördern ist sinnvoll, aber Studierende müssen akzeptieren, dass sie für Bildung bezahlen und nicht für den Abschluss. Das ist ein schwieriges Thema, und ich habe mich gefragt, wie Informatik-Fachbereiche AI in den Lehrplan integrieren und dabei einen angemessenen Einsatz im Lernumfeld fördern.
Das heißt aber nicht, dass dieser Ansatz keinen Wert hätte. Im Gegenteil, ich halte ihn für ziemlich wertvoll.
Eine indirekte Möglichkeit der Durchsetzung ist eine mündliche Prüfung, bei der Lehrende und Studierende gemeinsam die Arbeit durchgehen und darüber sprechen. Studierende, die AI mithilfe der Richtlinien ernsthaft als Lernwerkzeug genutzt haben, werden in einer mündlichen Prüfung deutlich besser abschneiden als solche, die AI als Lösungsgenerator verwendet haben.
Im letzten Studienjahr habe ich in meiner Lehrveranstaltung ohne solche Richtlinien mündliche Prüfungen eingeführt, und das hat ziemlich gut funktioniert. Im nächsten Semester plane ich, Richtlinien für Agenten mit klareren Guardrails einzubeziehen. Letztlich bleibt es optional, aber bei Studierenden, die sich entscheiden, das zu ignorieren, wird das im Gespräch ziemlich deutlich werden.
Umgekehrt gibt es keine zweite Chance, wenn man beim Schummeln erwischt wird. Wenn man es strikt durchsetzen wollte, würde hier vermutlich dieselbe Logik gelten.
Aber Abschlüsse haben in der realen Welt Wert und Auswirkungen, und wenn dadurch inkompetente Menschen gefährliche Aufgaben übernehmen, kann das unschuldige Menschenleben in Gefahr bringen. Es ist schwierig, aber ich hoffe, dass wir mit der Zeit lernen, mit dieser neuen Technologie zu leben.