Lang-Agent ist eine KI-Konfigurationsplattform für intelligente Körper (Agenten), die auf der Grundlage des LangGraph-Technologie-Stacks entwickelt wurde. Sie bietet eine visuelle Schnittstelle, mit der Benutzer komplexe Arbeitsabläufe mit begrenzter Programmierbarkeit durch Ziehen und Ablegen von Knoten und Verbindungslinien erstellen können. Die Design-Philosophie des Projekts ähnelt der von ComfyUI, indem sie Entwickler ermutigt, dedizierte funktionale Knoten auf der Grundlage ihrer eigenen Geschäftsanforderungen zu erstellen, anstatt eine vollständig gekapselte Plattform wie dify oder coze anzubieten. Das Kernmerkmal von Lang-Agent ist die Einführung des Konzepts der "Zustandsvariablen", das die flexible Weitergabe und Steuerung von Daten im gesamten Arbeitsablauf ermöglicht und die Beschränkung "der Ausgang des vorherigen Knotens ist der einzige Eingang des nächsten Knotens" im traditionellen Arbeitsablauf aufhebt und somit eine präzisere und komplexere logische Steuerung ermöglicht. Das Projekt verwendet eine getrennte Architektur für Front-End und Back-End. Das Back-End basiert auf FastAPI und das Front-End wird mit ReactFlow und HeroUI erstellt.
Funktionsliste
- Visuelle ProzessorchestrierungBietet eine Drag-and-Drop-Canvas-Oberfläche, mit der Benutzer die Ausführungslogik des Agenten intuitiv erstellen und organisieren können.
- Reichhaltige EinbauknotenDas System verfügt über eine Vielzahl von eingebauten Kernknoten, einschließlich Start, Ende, Benutzereingabe, LLM (Large Language Model), Zähler, Laden von Dokumenten, Codeausführern und Vektorspeicherung und -abruf.
- Verwaltung von ZustandsgrößenUnterstützung für benutzerdefinierte globale Zustandsvariablen, die in Knoteneingaben und -ausgaben sowie in bedingten Bewertungen von Kanten verwendet werden können, was eine präzise Steuerung von Arbeitsabläufen ermöglicht.
- Vorgefertigtes MittelIntegration von zwei vorgefertigten Agenten, die direkt verwendet werden können:
ReactAgent
(Fähigkeit zum selbständigen Aufrufen externer Tools) undSupervisorAgent
(Fähigkeit, selbstständig andere Agenten anzurufen). - Konfiguration der Modell- und VektorbibliothekBenutzer können problemlos Verbindungen zu verschiedenen Large Language Models (LLMs) und Embedding-Modellen konfigurieren und unterstützen das Andocken an eine Vielzahl von Vektordatenbanken wie Postgres und Milvus.
- Werkzeugaufruf (MCP) Konfiguration:: Unterstützung für die Konfiguration von MCPs (Werkzeuge, die Zugang zu externen Diensten für große Sprachmodelle bieten) für Szenarien, die Werkzeugaufrufe erfordern.
- hohe SkalierbarkeitBietet klare Richtlinien für die Entwicklung benutzerdefinierter Knoten. Entwickler können Front-End-Komponenten und Back-End-Logik einfach erweitern, um spezifische Geschäftsszenarien zu erfüllen.
- Prozess Import und ExportUnterstützung des Exports von konfigurierten Agent-Workflows in JSON-Dateien oder des Imports aus JSON-Dateien zur einfachen gemeinsamen Nutzung und Wiederverwendung.
Hilfe verwenden
Lang-Agent besteht aus zwei Teilen, dem Front-End (lang-agent-frontend) und dem Back-End (lang-agent-backend), die vor der Benutzung installiert und gestartet werden müssen.
Installation und Inbetriebnahme
1. das Klonen von Projektcodes
Klonen Sie zunächst den Quellcode des Projekts lokal von GitHub.
git clone https://github.com/cqzyys/lang-agent.git
2. die Installation und Inbetriebnahme des Back-Ends (Lang-Agent-Back-End)
Backend-EinsatzPoesiePaketverwaltung durchführen.
- InitialisierungsumgebungWechseln Sie in das Backend-Projektverzeichnis und installieren Sie die Abhängigkeiten mit Poetry.
cd lang-agent-backend poetry env use python poetry shell poetry install
- Initiierung von Projekten: Führen Sie den folgenden Befehl aus, um den Backend-Dienst zu starten.
python -m lang_agent.main
3. die Installation und Inbetriebnahme des Frontends (lang-agent-frontend)
Das Frontend verwendet Yarn für die Paketverwaltung.
- Installation von AbhängigkeitenWechseln Sie in das Front-End-Projektverzeichnis und installieren Sie die Abhängigkeitspakete mit Yarn.
cd lang-agent-frontend yarn install
- Initiierung von Projekten: Führen Sie den folgenden Befehl aus, um den Front-End-Entwicklungsserver zu starten.
yarn dev
Nach erfolgreichem Start können Sie auf die http://localhost:8820
Geben Sie die Bedienoberfläche von Lang-Agent ein.
Kernfunktion Betrieb
1. ökologische Konfiguration
Bevor Sie mit dem Aufbau des Agenten beginnen können, müssen einige grundlegende Konfigurationen vorgenommen werden.
- Modell Konfiguration:
- Klicken Sie in der oberen Navigationsleiste auf [Modellkonfiguration].
- Klicken Sie auf das Symbol [+] in der oberen rechten Ecke der Seite, um eine neue Modellverbindung zu erstellen.
- Name (einer Sache)Ein eindeutiger benutzerdefinierter Name für das Modell.
- Typologie: Wählen
llm
(für Sprachmodellknoten) oderembedding
(für vektorisierte Knoten). - Bewässerungsgraben: Derzeit werden nur OpenAI-kompatible Kanäle unterstützt.
- Parameter der ModellverbindungAPI-Adresse, Schlüssel und andere Parameter des Modells eingeben.
- Konfiguration der Vektorbibliothek:
- Klicken Sie auf die Registerkarte [Konfiguration der Vektorbibliothek].
- Klicken Sie auf das Symbol [+], um eine neue Vektorbibliothek zu konfigurieren.
- Name (einer Sache)Vector: Ein eindeutiger Name für die Vektorbibliothek.
- Typologie:: Derzeit unterstützt
postgres
im Gesang antwortenmilvus
. - Geben Sie die Verbindungsadresse (URI), den Benutzernamen und das Passwort für die Vektorbibliothek ein.
- Modelle einbettenWählen Sie eine, die in der Modellkonfiguration eingerichtet wurde.
embedding
Modelle.
2. die Konfiguration des Agenten
Dies ist die Kernfunktionalität des Projekts, die Erstellung von Agenten über eine visuelle Schnittstelle.
- Einen Agenten erstellen:
- Klicken Sie auf die Registerkarte [Agentenkonfiguration] und dann auf die Karte [Agent hinzufügen], um die Konfigurationsseite aufzurufen.
- Die Konfigurationsseite ist in einen linken und einen rechten Bereich unterteilt: Auf der linken Seite befindet sich dieRessourcenbaumdie alle verfügbaren Knoten und Agenten enthält; auf der rechten Seite befindet sich dieLeinwand (Malunterlage des Künstlers)für die Erstellung von Arbeitsabläufen verwendet.
- Prozess erstellen:
- Ziehen und Ablegen von KnotenZiehen Sie die gewünschten Knoten (z.B. "Start Node", "LLM Node", "Input Node") aus dem Ressourcenbaum auf der linken Seite auf die Leinwand auf der rechten Seite.
- Konfiguration der Knotenpunkte:
- StartknotenEs muss eine und nur eine für jeden Agenten geben. Hier können Sie dieZustandsgrößezum Beispiel der Standard
messages
zur Speicherung des Dialogverlaufs können Sie auch benutzerdefinierte Variablen hinzufügen (z. B.counter
(zum Zählen). - LLM-Knoten:: Dies ist der Kern der Aktivierung eines intelligenten Dialogs. Es ist notwendig, eine konfigurierte
llm
Modell und kann System Prompts und User Prompts schreiben. Zustandsvariablen können in Prompts mit der Syntax verwendet werden{{variable_name}}
vielleicht{{messages['node_name']}}
. - Eingangsknoten: wird verwendet, um Eingaben des Benutzers zu empfangen und in der angegebenen Zustandsvariablen zu speichern (normalerweise die
messages
).
- StartknotenEs muss eine und nur eine für jeden Agenten geben. Hier können Sie dieZustandsgrößezum Beispiel der Standard
- Anschlussknoten:
- StandardseiteZiehen Sie den Punkt rechts neben einem Knoten auf den Punkt links neben einem anderen Knoten, um einen Ausführungspfad zu erstellen. Das bedeutet, dass nach der Ausführung des Quellknotens der Zielknoten als nächstes ausgeführt wird.
- Bedingte SeiteNachdem eine Verbindung hergestellt wurde, kann eine Ausführungsbedingung für die Kante festgelegt werden. Dieser Bedingungsausdruck kann anhand von Zustandsvariablen beurteilt werden. Zum Beispiel, wenn eine Zählervariable
{{counter}}
Der nächste Knoten wird nur ausgeführt, wenn der Wert des Knotens kleiner als 5 ist. Dies ermöglicht den Aufbau von Schleifen und Verzweigungslogik.
- Betrieb und Inbetriebnahme:
- Wenn die Konfiguration abgeschlossen ist, klicken Sie auf die Schaltfläche [Speichern] am oberen Rand der Arbeitsfläche.
- Klicken Sie auf die Schaltfläche [Ausführen] und der Agent wird gestartet.
- Sie können mit dem Agenten interagieren und die Ergebnisse des Laufs im Chatbot in der unteren rechten Ecke der Benutzeroberfläche sehen.
Anwendungsszenario
- Intelligenter Kundenservice und Q&A-Bots
Es kann ein Prozess konstruiert werden: Zuerst wird eine Benutzerfrage empfangen, dann werden relevante Informationen aus der Wissensbasis durch den Vector Recall-Knoten abgerufen, und schließlich werden die abgerufenen Informationen zusammen mit der Benutzerfrage an den LLM-Knoten gegeben, um die endgültige Antwort zu generieren. - Automatisierte Erstellung von Inhalten
Ein Poet-Agent kann so entworfen werden, dass er eine Zeile eines Gedichts durch einen "LLM-Knoten" erzeugt und dann "Zählerknoten" und "bedingte Kanten" verwendet, um in einer Schleife automatisch ein vollständiges Gedicht zu erzeugen. Ein komplettes Gedicht kann automatisch durch Schleifen über "Zählerknoten" und "bedingte Kanten" erzeugt werden. - Intelligenz für die Bearbeitung komplexer Aufgaben
nutzen.SupervisorAgent
Auf diese Weise kann ein Master-Agent selbständig entscheiden, andere Sub-Agenten, die auf verschiedene Aufgaben spezialisiert sind (z. B. Datenabfrage, Dateiverarbeitung), zur Zusammenarbeit bei komplexen Aufgaben auf der Grundlage von Benutzeranweisungen aufzurufen. - Codegenerierung und -ausführung
Benutzer können eine Berechnungsanforderung stellen, über den LLM-Knoten" Python-Code generieren und den Code dann an den Code-Executor-Knoten" übergeben, um ihn auszuführen und das Ergebnis zurückzugeben.
QA
- Was ist der Unterschied zwischen Lang-Agent und anderen Agent-Plattformen (z.B. Dify, Coze)?
Das Designkonzept von Lang-Agent ähnelt dem von ComfyUI, das keine vollständig gekapselte Anwendungsplattform bietet, sondern die Benutzer dazu ermutigt, die Funktionalität durch die Entwicklung benutzerdefinierter Knoten entsprechend ihren geschäftlichen Anforderungen zu erweitern. Der Hauptvorteil besteht darin, dass eine flexiblere Prozesssteuerung und Datenübertragung durch "Zustandsvariablen" erreicht wird, die eine begrenzte, aber leistungsstarke Programmierbarkeit bieten. - Was ist eine "Zustandsvariable"? Was bewirkt sie?
Eine "Zustandsvariable" kann als ein globales Wörterbuch während des internen Betriebs des Agenten verstanden werden. Sie kann verwendet werden, um Daten zwischen verschiedenen Knoten weiterzugeben, und sie kann auch verwendet werden, um logische Beurteilungen auf der Seite der Bedingungen zu steuern. Sie können zum Beispiel eine Variable namenscount
Variable, verwenden Sie den "Zählerknoten", um ihr bei jeder Schleife einen Wert hinzuzufügen, und verwenden Sie dann die "bedingte Kante", um festzustellen, ob die{{count}}
Ob die Schleife beendet wird, hängt davon ab, ob ein bestimmter Wert erreicht wird oder nicht. - Wie kann man einen neuen Funktionsknoten zu Lang-Agent hinzufügen?
Die Entwickler müssen sowohl das Front-End als auch das Back-End erweitern. Auf dem Frontend muss eine neue React-Komponente im angegebenen Verzeichnis erstellt werden (.tsx
Datei), um die Schnittstelle des Knotens und die Eingabeparameter zu definieren. Am Backend muss eine neue Python-Klassendatei erstellt werden (.py
Datei), um die Geschäftslogik des Knotens zu definieren. Der detaillierte Pseudocode und die Verzeichnisstruktur sind in der offiziellen Dokumentation enthalten. ReactAgent
im Gesang antwortenSupervisorAgent
Was ist der Unterschied?ReactAgent
ist ein Agent, der es dem großen Sprachmodell ermöglicht, selbstständig externe Werkzeuge (Tools) aufzurufen, um Aufgaben zu erledigen, die in der MCP-Konfiguration vordefiniert werden müssen.SupervisorAgent
Es handelt sich um einen "Supervisor"-Agenten, der die Aufgabe nicht direkt selbst ausführt, sondern auf der Grundlage von Anweisungen entscheidet, welcher der konfigurierten "wiederverwendbaren Agenten" zur Erledigung der Aufgabe aufgerufen werden soll.