- LLM-Agenten sind eine technische Struktur, deren Funktionsweise man besser versteht, wenn man sie selbst implementiert, statt sie nur als Konzept zu begreifen
- Schon mit wenigen Dutzend Zeilen Python-Code lässt sich mit der OpenAI Responses API ein dialogorientierter Agent bauen; ergänzt man Tool-Calls, wird autonomes Verhalten möglich
- Der Kern eines Agenten ist eine wiederholte Aufrufschleife mit einem zustandslosen LLM; durch direkte Verwaltung des Gesprächskontexts (
context) lassen sich Dialoge über mehrere Runden umsetzen - Context Engineering ist ein Problem auf dem Niveau realer Programmieraufgaben und erfordert ein Design, das Eingaben, Ausgaben und Tool-Beschreibungen innerhalb der Token-Grenzen optimiert
- Agenten-Design ist derzeit ein offener softwaretechnischer Problemraum, in dem auch einzelne Entwickler durch Experimente neue Ansätze ausprobieren können
Die Einfachheit beim Schreiben von Agenten
- LLM-Agenten lassen sich ohne komplexe Konfiguration allein mit der OpenAI Responses API umsetzen
- Im Beispielcode werden die Gespräche zwischen Nutzer und Modell in einer
context-Liste gespeichert, die wiederholt übergeben wird, um dialogartige Antworten wie bei ChatGPT zu erzeugen
- Im Beispielcode werden die Gespräche zwischen Nutzer und Modell in einer
- Mit zwei Kontexten für eine „gute Persönlichkeit“ und eine „schlechte Persönlichkeit“ lässt sich ein Dialog mit mehreren Persönlichkeiten simulieren
- Das LLM ist zustandslos; die Kontinuität des Gesprächs bleibt über ein vom Nutzer verwaltetes String-Array (
context) erhalten
- Das LLM ist zustandslos; die Kontinuität des Gesprächs bleibt über ein vom Nutzer verwaltetes String-Array (
- Schon diese einfache Struktur ermöglicht mehrturnige Dialoge und macht die Arbeitsweise von LLMs direkt erfahrbar
Tool-Integration und autonomes Verhalten
- Dem Agenten kann eine
ping-Funktion als Tool registriert werden, um den Status der Netzwerkverbindung zu prüfen- Die OpenAI API verlangt Tool-Definitionen im JSON-Format; fordert das LLM bei Bedarf einen Tool-Call an, führt der Python-Code ihn aus und übergibt das Ergebnis zurück
- Das LLM pingt auch ohne explizite Anweisung mehrere Hosts (
google.com,www.google.com,8.8.8.8) automatisch an- Das zeigt, dass ein LLM allein durch die „Berechtigung zur Tool-Nutzung“ autonome Entscheidungen treffen kann
- Die gesamte Schleife folgt einfach der Struktur „Tool-Call anfordern → ausführen → Ergebnis zurückgeben“, sodass sich autonomes Agentenverhalten auch ohne komplexe Steuerlogik umsetzen lässt
Praktische Anwendungen und Kritik an MCP
- Der Beispielcode ist simpel, lässt sich aber praktisch erweitern, etwa durch zusätzliche Tools (wie
traceroute) oder kontextbasierte Speicherung mit SQLite - MCP (Multi-Context Protocol) ist lediglich die Plugin-Schnittstelle von Claude Code oder Cursor und keine zwingend notwendige Technologie
- Wer direkt mit der API arbeitet, kann dieselbe Funktionalität auch ohne MCP umsetzen
- MCP ist nur in Umgebungen ohne Kontrolle über den Code wirklich nützlich und kann sogar die Flexibilität der Agentenarchitektur einschränken
- LLM-Sicherheit ist komplex, aber durch getrennte Kontexte und eingeschränkte Tools lassen sich sichere Strukturen entwerfen
Die Bedeutung von Context Engineering
- „Prompt Engineering“ ist ein überhöhtes Konzept, Context Engineering hingegen ein reales Programmierproblem
- Die Token-Zahl im Kontextfenster ist begrenzt, und Eingaben, Ausgaben sowie Tool-Beschreibungen belegen alle Platz
- Wird diese Grenze überschritten, wird die Antwortqualität des Modells instabil
- Als Lösung kann man Sub-Agenten erstellen, ihnen unterschiedliche Kontexte und Tools zuweisen und sie so entwerfen, dass sie gegenseitig zusammenfassen und Informationen austauschen
- Solche Strukturen lassen sich zu baumförmigen Agentennetzwerken oder Kompression auf Basis von Echtzeit-Zusammenfassungen erweitern
- Selbst komplexe Ideen haben dabei eine Einfachheit, die eine Implementierung innerhalb von 30 Minuten möglich macht
Offene technische Probleme und der Wert von Experimenten
- Derzeit entwickeln zahlreiche Startups Agenten zur Erkennung von Schwachstellen, und auch einzelne Entwickler können dieselben Experimente durchführen
- Agenten-Design umfasst noch ungelöste technische Aufgaben wie die folgenden
- das Gleichgewicht zwischen Nichtdeterminismus und strukturiertem Programmieren
- Ground Truth und das Verhindern eines vorzeitigen Abbruchs von Schleifen
- Datenformate für den Austausch zwischen mehrstufigen Agenten (JSON, SQL, Markdown usw.)
- Token-Zuteilung und Kostenkontrolle
- Diese Probleme sind kein Feld nur für groß angelegte Forschung, sondern auch durch Experimente Einzelner erforschbar; jeder Durchlauf lässt sich in wenigen Dutzend Minuten ausprobieren
- Letztlich ist die Erfahrung, selbst einen Agenten zu bauen, der Ausgangspunkt für das Verständnis der LLM-Technologie
2 Kommentare
Hacker-News-Kommentar
Es gibt wirklich sehr viel, was man machen könnte. Ich würde gern selbst eine CPU aus NAND-Gattern auf einem Breadboard bauen und auch mal ein CDN in Rust schreiben, aber die Zeit fehlt.
Stattdessen habe ich nach Karpathys Tutorial ein LLM gebaut, und ich finde, solche kleinen Experimente zwischendurch lohnen sich ziemlich.
Immer wenn man denkt: „So, jetzt bin ich fertig“, hat man das Gefühl, dass die Ziellinie noch weiter wegrückt. Letztlich sind wir wohl einfach der Typ Mensch, der nie ganz zufrieden ist.
Im Beispiel wird GPT-5 verwendet, aber die Query-Schnittstelle ist schon auf Industrie-Standard-Niveau.
Wenn man zum Beispiel OpenRouter.ai anschließt, kann man Modelle und Anbieter zur Laufzeit leicht wechseln.
Es gibt auch kostenlose Modelle, etwa DeepSeek, aber die sind langsam und eingeschränkt. Zum Experimentieren sind sie trotzdem großartig.
Vor ein paar Monaten habe ich mir selbst einen Agenten in Ruby gebaut. Das hat richtig Spaß gemacht.
Die Kernlogik bestand aus nur vier Zeilen und war konzeptionell erstaunlich einfach.
Ich habe vor zwei Jahren einen Agenten in 25 Zeilen PHP gebaut. Damals gab es noch kein Tool Calling, aber er funktionierte trotzdem ziemlich gut.
LLMs fühlen sich für mich an wie UNIX-Textverarbeitungswerkzeuge wie
sedoderawk— man gibt Eingaben und Anweisungen hinein und bekommt Ausgaben zurück.Wenn man LLM-Aufrufe auf diese Weise kombiniert und Schleifen oder Verzweigungen baut, entsteht ein ziemlich mächtiges System.
Passender Code: hubcap, llm
Simon Willisons Beitrag hat mich stark inspiriert.
Besonders nachvollziehbar finde ich den Teil darüber, sich selbst eine Alternative zu Claude Code zu bauen. Einen sich selbst verbessernden Coding-Agenten zu bauen, fühlt sich fast magisch an.
Man kann das Modell frei austauschen, und mit schnellen Modellen wie Cerebras merkt man selbst bei interaktiven Tool-Aufrufen einen großen Unterschied.
Wenn man dann noch Memory, Spracherkennung usw. ergänzt, wird es deutlich effizienter. Das lässt sich in wenigen Minuten umsetzen und macht wirklich Spaß.
Die Google-Modelle waren qualitativ schwach, und die Mistral-Modelle sind zwar schnell, reagieren aber gelegentlich auf Text.
Dadurch kommt es manchmal vor, dass statt meiner Worte der Bewusstseinsstrom des LLM mittranskribiert wird.
Anfangs habe ich es gebaut, um die innere Struktur zu verstehen, aber es war einfacher als gedacht, und inzwischen ergänze ich direkt die Funktionen, die ich haben will.
Funktionen lassen sich schneller einbauen als bei einem Produkt für Teams. Agenten haben eine erstaunlich einfache Struktur.
Ich frage mich, ob das auf lokalen Modellen basiert.
Wenn man diesen Beitrag liest, bekommt man Lust, die Unix-Philosophie — Werkzeuge, die genau eine Sache gut machen — neu umzusetzen.
Dadurch werden Agenten nicht nur einfacher, sondern auch sicherer.
Es ist nicht so perfekt wie ein von Menschen gebautes Telemetriesystem, aber 90 % Nutzen waren damit sehr viel einfacher erreichbar.
Die ideale Größe eines LLM liegt vermutlich irgendwo dazwischen, etwas größer als klassische Unix-Tools.
Ich frage mich, ob man wirklich unbedingt Agenten bauen muss.
In einer Situation, in der alle AI-Anbieter Verluste machen, bin ich skeptisch, ob ein nachhaltiges Geschäftsmodell überhaupt möglich ist.
Es ist eine ähnliche Logik wie Astrals Verluste als Argument dafür zu nehmen, Python nicht zu verwenden.
Sie brauchen Kapital, weil das Training des nächsten Modells teuer ist, aber die Inferenzphase ist profitabel.
Der Teil über Context Engineering hat bei mir besonders Resonanz ausgelöst.
Ich baue gerade einen persönlichen Assistenten, der mehr Gedächtnis, Aufgabenverfolgung und Problemlösefähigkeit hat als ein allgemeiner Agent.
Ich habe ihn so entworfen, dass mehrere Agenten miteinander sprechen und gemeinsam Probleme lösen, und der erste Agent übernimmt die Rolle eines Supervisors für Aufgabenmanagement.
Je tiefer man in diesen Prozess einsteigt, desto mehr wird es zu einem Engineering-Problem.
Mehr Details habe ich in meinem Blogbeitrag aufgeschrieben.
Alle bauen gern Agenten, aber Debugging mag niemand.
Am Anfang funktioniert alles wie Magie, doch nach und nach häufen sich stochastische Fehler, die sich schwer reproduzieren lassen.
Wenn jeder Schritt 0,5 Sekunden dauert, wartet man schnell 10 bis 20 Minuten, nur um herauszufinden, wo etwas schiefgelaufen ist.
Ich lasse auch frühere Szenarien erneut durchlaufen, um zu prüfen, ob nichts kaputtgegangen ist.
Auf Basis des bereitgestellten Codes habe ich ein MCP gebaut: gurddy-mcp.fly.dev
Den Source Code kann man im GitHub-Repository ansehen.