Heim > Technologie-Peripheriegeräte > KI > Was sind Agentenströme in Crewai? - Analytics Vidhya

Was sind Agentenströme in Crewai? - Analytics Vidhya

William Shakespeare
Freigeben: 2025-03-18 12:05:09
Original
162 Leute haben es durchsucht

Stürzen Sie Ihre KI -Workflows mit Crewai -Strömen! Dieses leistungsstarke Framework bietet strukturierte Muster für die Orchestrierung von Interaktionen zwischen KI -Agenten, sodass Entwickler Codierungsaufgaben und Crews für eine robuste AI -Automatisierung nahtlos integrieren können. Die Agentenströme von Crewai bieten Veranstaltungsanbieter-Workflows, vereinfachte Aufgabenkoordination, staatliche Verwaltung und Ausführungssteuerung in Ihren KI-Anwendungen an.

Was sind Agentenströme in Crewai? - Analytics Vidhya

Inhaltsverzeichnis

  • Was sind Crews?
  • Flüsse verstehen
    • Workflow -Kontrolle und Sequenzierung
    • Effizientes Staatsmanagement
    • Flexible Eingangsbehandlung
    • Ereignisgesteuerte Architektur und dynamische Anpassung
    • Aufgabenrouting und bedingte Ausführung
  • Flüsse in der Praxis: Ein Beispiel für Filmempfehlungen
    • Einrichtung und Installation
    • Warnungen umgehen
    • Variablen für die Ladeumgebung
    • Importieren notwendige Module
    • Definieren des Agenten
    • Aufgaben definieren
    • Crews für jedes Genre erstellen
    • Definieren von Genres und Genrestate
    • Aufbau des MovieRecommendationFlow
    • Visualisieren des Flusses
    • Den Fluss initiieren
  • Abschluss
  • Häufig gestellte Fragen

Was sind Crews?

Die Besatzungen von Crewai ermöglichen die Orchestrierung von AI -Agenten für die automatisierte Aufgabenabschluss. Sie ermöglichen eine reibungslose Zusammenarbeit zwischen Agenten, um komplexe Probleme zu lösen. Aber warum "fließt"? Da die Crewai -Ströme strukturierte Muster für die Verwaltung dieser Agenteninteraktionen bereitstellen, definieren Sie, wie Agenten kommunizieren und zusammenarbeiten, um spezifische Ziele zu erreichen. Flows sind im Wesentlichen Aufgabensequenzen, bei denen die Ausgabe einer Aufgabe die nächste auslösen kann. Das System bietet flexible Mechanismen zur Verwaltung von Zustand und bedingter Ausführung.

Flüsse verstehen

Was sind Agentenströme in Crewai? - Analytics Vidhya

Die Strömungen arbeiten mit einem ereignisgesteuerten Modell und reagieren auf bestimmte Auslöser und Bedingungen. Dies ermöglicht dynamische Workflow -Anpassungen basierend auf Task -Execution -Ergebnissen und optimiert komplexer KI -Prozesse.

Workflow -Kontrolle und Sequenzierung

Mit den Crewai -Strömungen können Entwickler Aufgabensequenzen strukturieren und den Informationsfluss zwischen Aufgaben steuern. Aufgaben können miteinander verkettet werden und eine logische Reihenfolge der Operationen erstellen. Die bedingte Ausführung von Aufgaben basierend auf früheren Aufgabenausgaben wird ebenfalls unterstützt.

Effizientes Staatsmanagement

Das strukturierte Staatsmanagement, das häufig Pydantics BaseModel verwendet, sorgt für die Datenkonsistenz und -struktur zwischen Aufgaben. Dies bietet Typensicherheit, Validierung und einfacheres Management komplexer Datenzustände.

Flexible Eingangsbehandlung

Flows akzeptieren Eingaben, um ihren Status an jedem Zeitpunkt während der Ausführung zu initialisieren oder zu aktualisieren. Eingänge können zu Beginn, während oder nach der Ausführung je nach Workflow -Anforderungen bereitgestellt werden.

Ereignisgesteuerte Architektur und dynamische Anpassung

Die Crewai -Flüsse werden basierend auf den Aufgabenergebnissen dynamisch eingestellt. Aufgaben können auf Ausgänge aus den vorhergehenden Schritten anhören und ein reaktives System erstellen, bei dem neue Aufgaben basierend auf früheren Ausgängen ausgelöst werden. Die Dekorateure @listen() und @router() bieten diese Flexibilität und ermöglichen eine bedingte und dynamische Aufgabeverknüpfung. Der Dekorateur @start() markiert den Ausgangspunkt des Flusses.

{{Table_placeholder 21}} `oder<td>Triggers a listener when any specified method emits an output.</td> <tr><td></td></tr> und_`
Dekorateure und bedingte Logik Beschreibung
@listen() Erstellt Hörmethoden, die durch bestimmte Ereignisse oder Aufgabenausgänge ausgelöst werden.
@router() Ermöglicht eine bedingte Routing, die unterschiedliche Ausführungspfade basierend auf früheren Stufenausgängen ermöglicht. Nützlich für die Verwaltung von Erfolg/Misserfolgsergebnissen.
Löst einen Hörer nur aus, wenn alle angegebenen Methoden Ausgänge ausgeben.

Aufgabenrouting und bedingte Ausführung

Flows verwenden Routing, um die Ausführung anhand der Bedingungen zu steuern. Mit dem Dekorator @router() ermöglicht es Methoden, Ausführungspfade basierend auf früheren Aufgabenergebnissen auszuwählen. Beispielsweise kann eine Methode die Ausgabe einer vorherigen Aufgabe überprüfen und einen Pfad auswählen, der darauf basiert, ob bestimmte Bedingungen erfüllt sind.

Flüsse in der Praxis: Ein Beispiel für Filmempfehlungen

Lassen Sie uns ein Agentensystem erstellen, das Crewai -Flows verwendet, um Filme basierend auf Genre zu empfehlen.

Einrichtung und Installation

 <code>!pip install crewai -U !pip install crewai-tools</code>
Nach dem Login kopieren

Warnungen umgehen

 <code>import warnings warnings.filterwarnings('ignore')</code>
Nach dem Login kopieren

Ladevariablen für Umgebungsumgebungen (Ersetzen Sie die Platzhalter durch Ihre tatsächlichen Schlüssel)

 <code>import os os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_API_KEY' os.environ['OPENAI_MODEL_NAME'] = 'gpt-4o-mini-2024-07-18' os.environ["SERPER_API_KEY"]='YOUR_SERPER_API_KEY'</code>
Nach dem Login kopieren

Importieren notwendige Module

 <code>from crewai import Agent, Task, Crew from crewai.flow.flow import listen, start, and_, or_, router from crewai_tools import SerperDevTool from crewai import Flow from pydantic import BaseModel</code>
Nach dem Login kopieren

Definieren des Agenten

Für alle Aufgaben wird ein einzelner Agent verwendet. Dieser Agent verwendet ein Google -Such -Tool.

 <code>movie_agent = Agent( role="Recommend popular movie specific to the genre", goal="Provide a list of movies based on user preferences", backstory="You are a cinephile, " "you recommend good movies to your friends, " "the movies should be of the same genre", tools=[SerperDevTool()], verbose=True )</code>
Nach dem Login kopieren

Aufgaben definieren

 <code>action_task = Task(name="ActionTask", description="Recommends a popular action movie", expected_output="A list of 10 popular movies", agent=movie_agent) comedy_task = Task(name="ComedyTask", description="Recommends a popular comedy movie", expected_output="A list of 10 popular movies", agent=movie_agent) drama_task = Task(name="DramaTask", description="Recommends a popular drama movie", expected_output="A list of 10 popular movies", agent=movie_agent) sci_fi_task = Task(name="SciFiTask", description="Recommends a sci-fi movie", expected_output="A list of 10 popular movies", agent=movie_agent)</code>
Nach dem Login kopieren

Crews für jedes Genre erstellen

 <code>action_crew = Crew(agents=[movie_agent], tasks=[action_task], verbose=True) comedy_crew = Crew(agents=[movie_agent], tasks=[comedy_task], verbose=True) drama_crew = Crew(agents=[movie_agent], tasks=[drama_task], verbose=True) sci_fi_crew = Crew(agents=[movie_agent], tasks=[sci_fi_task], verbose=True)</code>
Nach dem Login kopieren

Definieren von Genres und Genrestate

 <code>GENRES = ["action", "comedy", "drama", "sci-fi"] class GenreState(BaseModel): genre: str = ""</code>
Nach dem Login kopieren

Aufbau des MovieRecommendationFlow

Diese Klasse erbt aus der Flow -Klasse und verwendet Zustandsfunktionen.

 <code>class MovieRecommendationFlow(Flow[GenreState]): @start() def input_genre(self): genre = input("Enter a genre: ") print(f"Genre input received: {genre}") self.state.genre = genre return genre @router(input_genre) def route_to_crew(self): genre = self.state.genre if genre not in GENRES: raise ValueError(f"Invalid genre: {genre}") if genre == "action": return "action" elif genre == "comedy": return "comedy" elif genre == "drama": return "drama" elif genre == "sci-fi": return "sci-fi" @listen("action") def action_movies(self, genre): recommendations = action_crew.kickoff() return recommendations @listen("comedy") def comedy_movies(self, genre): recommendations = comedy_crew.kickoff() return recommendations @listen("drama") def drama_movies(self, genre): recommendations = drama_crew.kickoff() return recommendations @listen("sci-fi") def sci_fi_movies(self, genre): recommendations = sci_fi_crew.kickoff() return recommendations @listen(or_("action_movies", "comedy_movies", "drama_movies", "sci_fi_movies")) def finalize_recommendation(self, recommendations): print("Final movie recommendations:") return recommendations</code>
Nach dem Login kopieren

Die Dekorateure @listen , @router , or_ und @start verwalten die Ausführung des Flows.

Visualisieren des Flusses

 <code>flow = MovieRecommendationFlow() flow.plot() #This will generate a file, you'll need to display it separately (eg, using an image display function in your environment)</code>
Nach dem Login kopieren

Was sind Agentenströme in Crewai? - Analytics Vidhya

Den Fluss initiieren

 <code>recommendations = await flow.kickoff_async()</code>
Nach dem Login kopieren

Was sind Agentenströme in Crewai? - Analytics VidhyaWas sind Agentenströme in Crewai? - Analytics Vidhya

Abschluss

Die ereignisorientierten Workflows von Crewai vereinfachen die AI-Aufgabe Orchestrierung. Die flexible und adaptive Natur der Crewai -Ströme in Kombination mit Funktionen wie @listen() , @router() und staatlichem Management macht sie leistungsstarke Tools zum Aufbau effizienter und dynamischer AI -Anwendungen.

Häufig gestellte Fragen

Q1. Wie übergeben ich Eingänge an einen Fluss? Verwenden Sie flow.kickoff(inputs={"counter": 10}) .

Q2. Was ist der Unterschied zwischen @start() und @listen() ? @start() Markierende Flow -Startpunkte; @listen() markieren Methoden, die durch Abschluss der Aufgabe ausgelöst werden.

Q3. Wie visualisiere ich meinen Fluss? Verwenden Sie flow.plot() .

Q4. Kann ich menschliches Feedback einbeziehen? Ja, die Crewai-Ströme unterstützen das Feedback des Menschen in der Schleife.

Das obige ist der detaillierte Inhalt vonWas sind Agentenströme in Crewai? - Analytics Vidhya. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage