smolagents: eine kleine Bibliothek, in der ein Modell Code schreibt, um zu handeln

Zusammenfassung

Eine bewusst kleine Agentenbibliothek: rund tausend Zeilen Kernlogik und eine einzige Grundannahme, die alles bestimmt. Statt strukturierter Werkzeugaufrufe schreibt das Modell ein kurzes Stück Code, das die Bibliothek ausführt und zurückmeldet. Weniger Schritte, weniger Aufrufe und Quelltext, der kurz genug zum Lesen ist.

Empfehlen
Name
smolagents
Version
v1.26
Preis
Kostenlos
Open Source
Open Source
Betriebssystem
WindowsmacOSLinux
Aktualisiert
2026-10-26 22:00

Ein großes Modell mit echter Arbeit zu verbinden hieß früher, eine Weile durch die Abstraktionen eines Rahmensystems zu laufen: Knoten definieren, Werkzeuge beschreiben, Übergänge verdrahten. Bis irgendetwas lief, war die halbe Begeisterung für die Verdrahtung draufgegangen. Die hier besprochene Bibliothek nimmt die Gegenposition ein, und diese Position ist der ganze Punkt: Ein Agent braucht kein Rahmensystem, er braucht eine Möglichkeit zu handeln.

smolagents ist eine kleine offene Bibliothek mit rund tausend Zeilen Kernlogik, veröffentlicht von dem Team, um dessen Modellgemeinschaft sich ein Großteil dieses Umfelds dreht. Ihre zentrale Behauptung lautet: Das Modell soll kein eigenes Format zum Aufrufen von Werkzeugen lernen. Lass es stattdessen Code schreiben, in der Sprache, in der es ohnehin am besten ist, und führe diesen Code aus.

Ein Agent, der durch Code handelt

In Code denken statt ein Formular auszufüllen

Die übliche Anordnung verlangt vom Modell eine strukturierte Anweisung: welches Werkzeug, welche Argumente, in einer festen Form, die das Rahmensystem zerlegen kann. Die Alternative hier ist ein lauffähiges Stück Python, das die Bibliothek ausführt und dessen Ausgabe an das Modell zurückgeht, damit es weiterdenken kann. Code bringt Schleifen, Bedingungen und verschachtelte Aufrufe mit, deshalb wird aus einer mehrstufigen Aufgabe, die drei strukturierte Runden gebraucht hätte, oft ein einziges kurzes Skript.

Die Zahlen, die mit diesem Ansatz veröffentlicht wurden, deuten auf rund ein Drittel weniger Schritte und Modellaufrufe hin als bei der strukturierten Variante vergleichbarer Aufgaben. Wo pro Aufruf abgerechnet wird, ist das kein Rundungsfehler, sondern der Unterschied zwischen einem Versuch, den man wiederholt laufen lassen kann, und einem, den man sich nicht leisten kann. Eine Fähigkeit zu deklarieren ist ebenso schlicht: eine normale Funktion, eine klare Beschreibung, und der Agent entscheidet selbst, wann er sie nutzt. Kein Klebecode, keine vorab festgelegte Reihenfolge von Aufrufen.

Ein Werkzeug als gewöhnliche Funktion deklariert

Das Modell bestimmst du

Die Bibliothek ist neutral gegenüber Modellen, was eine ihrer angenehmeren Eigenschaften ist. Ein gehosteter Inferenzdienst, ein kommerzieller Anbieter hinter einer Routing-Schicht oder ein Modell, das lokal auf der eigenen Maschine läuft, haben aus Sicht des Agenten dieselbe Form, und ein Wechsel bedeutet meist eine Zeile in der Initialisierung zu ändern, statt die Logik umzuschreiben.

Was das Modell kann, setzt die Obergrenze. Je besser es Code schreibt, desto besser funktioniert dieser Stil, ein Punkt, den die Gemeinschaft immer wieder betont und den man vor der Übernahme des Musters ernst nehmen sollte: Ein Agent, der durch Schreiben von Code handelt, erbt sowohl die Stärken als auch die Schwächen der Programmierfähigkeit seines Modells.

Was ausgeführt wird, und wo

Code zu erzeugen und ihn dann laufen zu lassen wirft die naheliegende Frage auf, und das Projekt beantwortet sie ohne Ausweichen. Der lokale Ausführer ist für Entwicklung und Fehlersuche gedacht; er ist keine Sicherheitsgrenze. Alles Wichtige sollte abgeschottet laufen, und dafür gibt es mehrere Wege: gehostete Sandkästen oder ein Behälter, den man selbst kontrolliert, ausgewählt über einen Parameter bei der Definition des Agenten.

Zwei weitere Einschränkungen sind vernünftig. Erzeugter Code darf standardmäßig nur die Standardmodule der Sprache verwenden, und Pakete von Drittanbietern müssen ausdrücklich freigegeben werden, was einen beiläufigen Import von etwas, das ans Netz greift, verhindert. Scheitert der Code, liest der Agent die Fehlermeldung und versucht es mit einer Korrektur erneut, und die Zahl der Versuche ist durch eine standardmäßig kleine Schrittobergrenze gedeckelt, damit ein verwirrter Agent nicht auf deine Kosten endlos weiterdreht.

Ausführung im Sandkasten

Der Vorteil, in einem Umfeld zu sitzen

Von dem Team hinter einer großen Modellgemeinschaft gemacht zu sein, bringt einen kaum kopierbaren Vorteil: Ein fertiges Werkzeug oder ein Agent lässt sich in dieser Gemeinschaft veröffentlichen und von jemand anderem herunterladen wie eine Abhängigkeit, und eine ganze gehostete Demonstrationsanwendung kann man einem Agenten als einzelnes Werkzeug übergeben. Außerhalb dieses Umfelds lassen sich Werkzeuge aus einem offenen Protokoll und aus einem anderen verbreiteten Rahmensystem anbinden, und die Eingaben bleiben nicht auf Text beschränkt: Bilder, Video und Ton werden unterstützt.

Für alle, die verstehen wollen, wie Agenten arbeiten, ist die wertvollste Eigenschaft die Lesbarkeit. Tausend Zeilen sind kurz genug, um ein Problem durch Lesen des Quelltextes einzugrenzen, statt sich durch Abstraktionsebenen zu kämpfen. Diese Transparenz, die Effizienz des Handelns durch Code und die Freiheit, Modell und Werkzeuge beliebig zu tauschen, ergeben zusammen einen ungewöhnlich brauchbaren Ausgangspunkt.

Für wen es taugt

Forschende, die einen Teil verändern und den Rest festhalten wollen; Entwickler, die einen Agenten in ein bestehendes Programm setzen wollen statt eine neue Anwendung darum herum; und alle, die sich über Rahmensysteme geärgert haben, deren Abstraktionen mehr kosten, als sie einsparen. Es ist kostenlos und quelloffen, und tausend Zeilen sind wenig genug für einen Nachmittag.

smolagentsDownload
Unterstützte Systeme: Windows macOS Linux