Modell / Datensatz
modelscope/AgentEvolver avatar
modelscope/AgentEvolver

AgentEvolver: Selbstfragen, Selbstnavigieren, Selbstzuschreiben als Trainingsschleife

AgentEvolver: Towards Efficient Self-Evolving Agent System

1.567 Sterne173 ForksPythonApache-2.0

Auf einen Blick

Was ist das?
AgentEvolver bündelt drei Mechanismen zur Selbstevolution von Agenten in einem Framework. Die Zahlen auf AppWorld und BFCL v3 sind auffällig, aber der Betrieb hängt an conda, CUDA und einer Umgebung, die sich nicht in einem Schritt installieren lässt.
Für wen ist es gedacht?
Der Einsatz lohnt sich für Teams, die bereits eine trainierbare Umgebung mit belastbarem Reward-Signal betreiben und die Kosten manueller Datenerstellung senken wollen. Wer nur einen Inferenz-Stack für einen bestehenden Agenten sucht oder keine GPU-Ressourcen für mehrstufiges Training bereitstellen kann, ist hier falsch, weil das Framework ohne Umgebungsdienst und Trainingsschleife nichts liefert.
Darf ich es kommerziell nutzen?
Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 168 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Welches Problem die drei Selbst-Mechanismen adressieren

Der Ausgangspunkt ist der Datenaufwand. Wer einen Agenten für mehrstufige Aufgaben trainieren will, braucht Aufgaben, Trajektorien und ein Signal, das sagt, welcher Zwischenschritt zum Ergebnis beigetragen hat. AgentEvolver setzt an allen drei Punkten an. Self-Questioning soll Aufgaben automatisch aus der Umgebung heraus erzeugen und damit die manuelle Datensatzkonstruktion ersetzen. Self-Navigating fasst Erfahrung über Aufgaben hinweg zusammen und nutzt sie, um Rollouts zu steuern. Self-Attributing zerlegt lange Trajektorien und schätzt den kausalen Beitrag einzelner Zwischenschritte, damit die Policy-Optimierung nicht nur das Endergebnis sieht. Die Zielgruppe sind damit nicht Anwendungsentwickler, die einen fertigen Agenten einbinden wollen, sondern Teams mit Trainingsinfrastruktur: Reinforcement-Learning-nahe Gruppen, die eine Umgebung besitzen und die Kosten pro Trainingslauf senken möchten. Der Technical Report unter arXiv 2511.10395 beschreibt Architektur und Methodik; das Repository selbst liefert den Code und die Startskripte.

Serviceorientierter Datenfluss statt monolithischer Trainingsschleife

Die Architekturbeschreibung im README nennt einen serviceorientierten Datenfluss, in dem Umgebungs-Sandboxes, LLMs und Erfahrungsverwaltung als getrennte Dienste zusammenspielen. Das ist die wichtigste Designentscheidung, weil sie die Kopplung zwischen Umgebung und Policy lockert: Eine Umgebung wird über standardisierte Schnittstellen angebunden, ein Context Manager kümmert sich um mehrstufige Kontexte und Interaktionslogik, und die Erfahrungsverwaltung liegt in einem eigenen Dienst namens ReMe. Sichtbar wird diese Trennung im Setup, das die Umgebung (env_service/environments/appworld/setup.sh) und die Erfahrungsverwaltung (external/reme/install_reme.sh) getrennt installiert. Der Preis dieser Trennung ist Betriebsaufwand: Es gibt mehr bewegliche Teile, mehr Prozesse und mehr Stellen, an denen eine Konfiguration auseinanderlaufen kann. Für Teams, die eine einzelne Umgebung schnell ausprobieren wollen, ist das schwerer als ein einzelnes Trainingsskript. Für Teams, die mehrere Umgebungen oder mehrere Algorithmusvarianten parallel betreiben, ist es die Voraussetzung dafür, dass Komponenten unabhängig ausgetauscht werden können.

Installation: conda, CUDA und getrennte Setup-Skripte

Das README nennt conda und das CUDA Toolkit als Voraussetzungen, Python ab 3.11. Der Ablauf ist in vier Schritte gegliedert. Zuerst bash install.sh für die Trainingsumgebung. Danach die Umgebung selbst, im Beispiel AppWorld: cd env_service/environments/appworld && bash setup.sh. Der dritte Schritt ist optional und richtet ReMe ein: bash external/reme/install_reme.sh. Vor dem Training wird example.env nach .env kopiert und angepasst, wobei das README ausdrücklich API key und conda path als zu ändernde Parameter nennt. Der Start erfolgt dann über den Launcher, entweder als Minimalbeispiel ohne ReMe mit python launcher.py --conf examples/basic.yaml --with-appworld oder als vollständiges Beispiel mit allen drei Mechanismen über python launcher.py --conf examples/overall.yaml --with-appworld --with-reme. Alternativ existieren die Shell-Skripte examples/run_basic.sh und examples/run_overall.sh. Wer den vollständigen Pfad wählt, muss also vor dem ersten Lauf entscheiden, ob ReMe gebraucht wird, denn das ist der Unterschied zwischen den beiden Konfigurationsdateien.

Was die Benchmark-Tabelle zeigt und was sie offen lässt

Die Tabelle im README vergleicht Qwen2.5-7B und Qwen2.5-14B jeweils als Basis sowie mit schrittweise ergänzten Mechanismen, gemessen auf AppWorld und BFCL v3 in avg@8 und best@8. Auffällig ist der Sprung beim 7B-Basismodell, das laut Tabelle auf AppWorld avg@8 von 1.8 auf 23.2 steigt, sobald Questioning hinzukommt. Die Gesamtkonfiguration erreicht im 7B-Fall 32.4 avg@8 auf AppWorld, während das 14B-Basismodell bei 18.0 liegt. Die Tabelle ist ein Argument für den Ansatz, aber sie ist keine Betriebszusage. Sie sagt nichts über die Kosten pro Lauf, nichts über die Streuung zwischen Läufen jenseits der acht gemessenen Versuche und nichts darüber, wie sich die Werte verhalten, wenn die Umgebung gewechselt wird. Wer die Zahlen als Entscheidungsgrundlage nutzt, sollte sie als das lesen, was sie sind: Ergebnisse einer bestimmten Konfiguration auf zwei Benchmarks, veröffentlicht vom Projekt selbst. Eine unabhängige Nachmessung ersetzt das nicht.

Grenzen: Umgebungsabhängigkeit und der leere Fall ohne Env-Service

Die deutlichste Einschränkung steckt im Setup selbst. Das Framework trainiert gegen eine Umgebung, und das Beispiel im README ist AppWorld. Ohne eine angebundene Umgebung mit belastbarem Reward-Signal gibt es nichts, wogegen optimiert werden könnte; die selbst erzeugten Aufgaben brauchen einen Maßstab, an dem sie gemessen werden. Daraus folgen zwei praktische Konsequenzen. Erstens ist der Einstieg nicht leichtgewichtig: conda, CUDA, ein separater Umgebungsdienst und optional ReMe bedeuten mehrere Installationspfade, die jeweils fehlschlagen können. Zweitens ist die Übertragbarkeit auf eine eigene Domäne eine eigene Arbeit, weil die standardisierten Schnittstellen zwar vorhanden sind, die Anbindung einer neuen Umgebung aber nicht im README beschrieben wird. Wer nur einen Agenten mit festen Werkzeugen betreiben will und kein Training plant, findet hier keinen Nutzen, sondern nur Overhead. Das Framework ist ein Trainingsframework, kein Laufzeit-Framework für den Produktivbetrieb.

ReMe, das integrierte Gedächtnis und die Alternative

Für die Erfahrungsverwaltung verweist das README auf ReMe aus dem Repository agentscope-ai/ReMe und beschreibt es als Dienst für Experience Management. Der Unterschied zu einem Gedächtnis, das direkt im Agentenprozess liegt, ist die Trennung: ReMe läuft als eigener Dienst, wird separat installiert und ist im Vollbeispiel über --with-reme aktiv. Genau darin liegt die Abgrenzung zu Ansätzen, die Erinnerung als Teil des Agenten selbst implementieren, etwa als Kontextfenster-Management im selben Prozess. Ein solcher Ansatz ist einfacher zu starten, teilt aber den Lebenszyklus mit dem Agenten und skaliert nicht unabhängig von ihm. AgentEvolver lagert die Erfahrung aus und macht sie über Aufgaben hinweg wiederverwendbar, was Self-Navigating überhaupt erst sinnvoll macht. Der Preis ist ein zusätzlicher Dienst, der laufen muss. Interessant ist, dass das Minimalbeispiel ohne ReMe auskommt und die eingebauten Datensätze der Umgebungen nutzt; wer den Nutzen von Self-Navigating prüfen will, muss also den Vollpfad wählen und den zusätzlichen Betrieb in Kauf nehmen.

Wartung, Lizenz und der Blick auf die Zweige

Das Repository steht unter Apache-2.0, was die kommerzielle Nutzung und Modifikation erlaubt, solange Lizenz- und Urheberrechtshinweise erhalten bleiben und Änderungen gekennzeichnet werden. Das ist keine Rechtsberatung, sondern der Hinweis, dass die Bedingungen der Lizenz vor einer Weitergabe im eigenen Produkt geprüft werden sollten. Wartungsseitig ist das Projekt aktiv: Der letzte Push datiert auf April 2026, es gibt keine abgerufenen Releases, dafür mehrere datierte Ankündigungen im README, darunter ein SeeUPO genannter Zweig für sequenzbasiertes agentisches RL und eine Game Arena für Mehrspieler-Szenarien wie Avalon und Diplomacy. Diese Zweige sind ein Hinweis darauf, dass sich die Codebasis schnell bewegt und nicht alles im Hauptzweig liegt. Wer auf Stabilität angewiesen ist, sollte vor dem Einsatz klären, welcher Zweig die eigene Zielsetzung abdeckt, und einplanen, dass die Upgrade-Kosten nicht nur von Abhängigkeiten, sondern auch von der Wahl des Zweigs abhängen.

Redaktionelles Fazit

Der Einsatz lohnt sich für Teams, die bereits eine trainierbare Umgebung mit belastbarem Reward-Signal betreiben und die Kosten manueller Datenerstellung senken wollen. Wer nur einen Inferenz-Stack für einen bestehenden Agenten sucht oder keine GPU-Ressourcen für mehrstufiges Training bereitstellen kann, ist hier falsch, weil das Framework ohne Umgebungsdienst und Trainingsschleife nichts liefert. Vor dem ersten eigenen Lauf sollte geklärt werden, ob die ReMe-Erfahrungsverwaltung tatsächlich gebraucht wird oder ob die eingebauten Datensätze der Umgebungen ausreichen, und ob die im Repository hinterlegten Benchmark-Zahlen auf der eigenen Modell- und Umgebungskonfiguration reproduzierbar sind.

Offizielle Quellen

  1. Issues
  2. License: Apache-2.0
  3. modelscope/AgentEvolver on GitHub
  4. Project website
  5. README
Community-Notizen

Community-Notizen