- Octomind nutzt AI-Agenten, um in Playwright End-to-End-Tests automatisch zu erstellen und zu überarbeiten.
- Anfangs wurde das LangChain-Framework verwendet, doch mit der Zeit führte der hohe Abstraktionsgrad von LangChain zu Problemen.
Probleme mit LangChain
- Die Abstraktion von LangChain war anfangs nützlich, doch mit komplexeren Anforderungen wurde es schwieriger, den Code zu verstehen und zu warten.
- Es wurde viel Zeit darauf verwendet, die interne Struktur von LangChain zu verstehen und zu debuggen.
- So erhöht LangChain beispielsweise selbst bei Code, der einfach nur ein englisches Wort ins Italienische übersetzt, die Komplexität.
Das Abstraktionsproblem von LangChain
- LangChain schichtet mehrere Abstraktionen übereinander und erhöht so die Komplexität des Codes.
- Diese Abstraktionen erschweren das Verständnis und das Debugging des Codes.
- Selbst bei einer einfachen Aufgabe wie dem Abrufen von JSON-Daten aus einer API steigt die Komplexität durch den Einsatz von LangChain.
Auswirkungen auf das Entwicklungsteam
- Beim Versuch, komplexe Agentenarchitekturen umzusetzen, wirkte LangChain als einschränkender Faktor.
- Nach dem Entfernen von LangChain konnte wieder frei entsprechend den Anforderungen programmiert werden.
Braucht man für den Bau von AI-Anwendungen ein Framework?
- LangChain war anfangs nützlich, doch langfristig wäre die Entwicklung ohne Framework vermutlich besser gewesen.
- Die meisten AI-Anwendungen lassen sich mit einfachem Code und einigen externen Paketen ausreichend umsetzen.
- Bis sich Nutzungsmuster für Agenten etabliert haben, wird ein einfacher Ansatz empfohlen.
Schnelle und schlanke Entwicklung mit modularen Building Blocks
- Frameworks erzwingen Struktur, doch für AI-Anwendungen gibt es noch keine etablierten Nutzungsmuster.
- Der Ansatz mit modularen Building Blocks bevorzugt einfachen Code auf niedriger Ebene und erhöht die Entwicklungsgeschwindigkeit.
- Durch den Einsatz modularer Komponenten wie Vektordatenbanken bleibt die Codebasis schlank und anpassungsfähig.
Meinung von GN⁺
- Die Grenzen von LangChain: Der hohe Abstraktionsgrad von LangChain ist anfangs nützlich, kann bei komplexen Anforderungen jedoch eher zum Hindernis werden.
- Vorteile des modularen Ansatzes: Der Ansatz mit modularen Building Blocks erleichtert das Verständnis und die Wartung des Codes und erhöht die Entwicklungsgeschwindigkeit.
- Frameworks neu bewerten: Nicht jede AI-Anwendung braucht ein Framework; vieles lässt sich auch mit einfachem Code und externen Paketen ausreichend umsetzen.
- Die Bedeutung von Entwicklungsgeschwindigkeit: Im AI-Bereich sind schnelles Experimentieren und Prototyping wichtig, und Frameworks können das einschränken.
- Künftige Nutzungsmuster für Agenten: Bis sich Nutzungsmuster für Agenten etabliert haben, ist es sinnvoll, einen einfachen Ansatz beizubehalten.
2 Kommentare
Man hörte schon, dass es eine gescheiterte Architektur sei, und jetzt sieht man das sogar bei GeekNews.
Hacker-News-Kommentar
Ersten kommerziellen LLM-Agenten im letzten Oktober/November gebaut: Der Verzicht auf LangChain und der direkte Eigenbau des Agenten von Grund auf half dabei, bessere Ergebnisse zu erzielen.
Komplexität von LLM-Frameworks: LLM-Frameworks wie LangChain neigen dazu, die Komplexität von Java oder Python einzuführen.
Vergleich von LangChain und ChatGPT: LangChain wurde vor dem Erscheinen von ChatGPT entwickelt, aber mit ChatGPTs besserem Konversationsmodell wurde LangChain weniger notwendig.
Kontroverse um den Wert von LangChain: LangChain wollte zwischen Entwickler und LLM stehen, fügte aber in der Praxis keinen echten Mehrwert hinzu und führte unnötige Abstraktionen ein.
Gute und schlechte Abstraktionen: Gute Abstraktionen behandeln die Anwendungslogik, schlechte Abstraktionen abstrahieren die eigentlich nötige Arbeit weg und führen zum Verlust von Einsichten.
Probleme beim Einsatz von Agenten: Für die Erstellung von Inhalten ist die Verwendung sequenzieller Prompts einfacher und effektiver als der Einsatz von Agenten.
Vorstellung des Frameworks Ragged: Vorgestellt wird Ragged, ein leichtgewichtiger Connector zur einfachen Anbindung an LLMs. Er bietet eine einheitliche Schnittstelle ähnlich einem ORM.
Begrenzter Nutzen von LangChain: Der Ansatz von LangChain ist interessant, aber in der Praxis ist es effizienter, direkt die LLM-Runtime-Bibliothek zu verwenden.
Schnelllebige Agenten-Frameworks: Das verwendete Agenten-Framework verändert sich schnell, und schon kleine Versionsänderungen können das aktuelle Setup kaputtmachen.
Komplexitätsprobleme bei LangChain: LangChain ist für einfache Anwendungsfälle zu komplex und für komplexe Anwendungsfälle schwer anzupassen. Direkt zu coden ist oft die bessere Wahl.