AI Personal Learning
und praktische Anleitung
Ressource Empfehlung 1

Leitfaden für den Aufbau von Multiagentensystemen auf der Grundlage von CrewAI

1. einleitung

Im Bereich der künstlichen Intelligenz wird das Multiagentensystem zu einer Schlüsseltechnologie für die Lösung komplexer Probleme und die Realisierung einer effizienten Zusammenarbeit. CrewAI, ein leistungsfähiges Multiagentenkollaborationswerkzeug, bietet Entwicklern eine bequeme Möglichkeit, intelligente Kollaborationssysteme aufzubauen. In diesem Artikel stellen wir Ihnen vor, wie Sie ein Multiagentensystem auf der Grundlage von CrewAI aufbauen können.

2. die Kernkonzepte von CrewAI im Detail

2.1 Vertreter

2.1.1 Definition und Funktion des Agenten

Agenten sind in CrewAI autonome Einheiten mit der Fähigkeit, Aufgaben auszuführen, Entscheidungen zu treffen und mit anderen Agenten zu kommunizieren. Sie agieren als Mitglieder eines Teams, wobei jeder von ihnen eine bestimmte Rolle einnimmt, z. B. als Forscher, Autor oder Kundenbetreuer, und gemeinsam zu den Zielen des Teams beiträgt.

2.1.2 Proxy-Eigenschaften

  • Rolle Klären Sie die funktionale Position des Agenten innerhalb des Teams und bestimmen Sie die Arten von Aufgaben, für die er am besten geeignet ist. Ein Agent in der Rolle des Forschers eignet sich beispielsweise hervorragend zum Sammeln und Analysieren von Informationen, während sich ein Agent in der Rolle des Autors auf die Erstellung von Inhalten konzentriert.
  • Ziel Der Entscheidungsprozess, der einen Agenten leitet, ist ein individuelles Ziel, das der Agent anstrebt. Das Ziel eines Datenanalyse-Agenten könnte zum Beispiel darin bestehen, verwertbare Erkenntnisse zu gewinnen, um Geschäftsentscheidungen zu unterstützen.
  • Hintergrundgeschichte Verbessern Sie die Dynamik der Interaktion und Zusammenarbeit, indem Sie umfangreiche Kontextinformationen über die Rolle und die Ziele des Agenten bereitstellen. Im Falle eines Datenanalysten könnte die Hintergrundgeschichte zum Beispiel lauten: "Sie sind Datenanalyst in einem großen Unternehmen. Sie sind für die Analyse von Daten und die Bereitstellung von Erkenntnissen für das Unternehmen verantwortlich. Derzeit arbeiten Sie an einem Projekt zur Analyse der Leistung unserer Marketingkampagnen."
  • LLM (fakultativ) Sprachmodell: Gibt das Sprachmodell für die Ausführung des Agenten an. Wenn nichts angegeben wird, wird der Agent standardmäßig von der OPENAI_MODEL_NAME Holen Sie sich den Modellnamen in der Umgebungsvariablen, andernfalls wird standardmäßig "gpt-4" verwendet. Die Entwickler können das geeignete Sprachmodell wählen, um die Verarbeitungsanforderungen verschiedener Aufgaben zu erfüllen.
  • Werkzeuge (optional) Ein Satz von Fähigkeiten oder Funktionssätzen, die einem Agenten zur Verfügung stehen, normalerweise Instanzen von benutzerdefinierten Klassen, die mit der Ausführungsumgebung kompatibel sind, mit einer leeren Liste von Standardwerten. Diese Werkzeuge können die Fähigkeiten eines Agenten erweitern, damit er Operationen wie Websuche, Datenanalyse usw. durchführen kann.
  • LLM für Aufruffunktionen (fakultativ) LLM: Gibt das Sprachmodell an, das diesen Agentenwerkzeugaufruf verarbeitet; überschreibt den Teamfunktionsaufruf LLM, falls übergeben; Standardwert ist Keine. Durch die flexible Konfiguration dieser Eigenschaft kann der Entwickler das Werkzeugaufrufverhalten des Agenten genauer steuern.
  • Maximale Anzahl von Iterationen (optional) Iteration: Die maximale Anzahl der Iterationen, die der Agent durchführen kann, bevor er gezwungen ist, die beste Antwort zu geben; der Standardwert ist 25. Die Einstellung dieses Parameters hilft, die Tiefe und Effizienz der Aufgabenausführung zu kontrollieren.
  • Maximale Anzahl von Anfragen (optional) Anzahl der Anfragen, die der Proxy pro Minute ausführen kann, um eine Ratenbegrenzung zu vermeiden, Standardwert ist Keine. Der Entwickler kann die Einstellungen entsprechend der tatsächlichen Situation vornehmen, um einen stabilen Betrieb des Systems zu gewährleisten.
  • Maximale Ausführungszeit (optional) Zeit: Die maximale Zeitspanne, in der der Agent eine Aufgabe ausführen kann; der Standardwert ist Keinezeigt an, dass es keine maximale Ausführungszeit gibt. Mit diesem Attribut kann die Ausführungsdauer einer Aufgabe kontrolliert werden, um zu verhindern, dass sie über einen längeren Zeitraum Ressourcen beansprucht.
  • Detaillierter Modus (optional) : Setzen Sie ihn auf Wahr Konfigurierbarer interner Logger liefert detaillierte Ausführungsprotokolle zur Fehlersuche und Überwachung, Standardwert ist Falsch. Bei der Entwicklung und Optimierung hilft das Einschalten des Detailmodus, Probleme schnell zu finden.
  • Erlaubnis zum Delegieren (fakultativ) Agenten können sich gegenseitig Aufgaben oder Probleme übertragen, um sicherzustellen, dass die Aufgaben von dem am besten geeigneten Agenten bearbeitet werden, mit einem Standardwert von Wahr. Diese Funktion fördert die flexible Zusammenarbeit im Team und verbessert die Genauigkeit und Effizienz der Aufgabenbearbeitung.
  • Schrittrückruf (optional) Funktionen, die nach jedem Schritt des Agenten aufgerufen werden, um Vorgänge zu protokollieren oder andere Operationen auszuführen, überschreiben die Funktionen des Teams. Schritt_Abruf. Entwickler können mit dieser Callback-Funktion eine eigene Überwachungs- und Verarbeitungslogik implementieren.
  • Cache (optional) Zeigt an, ob der Proxy den Tool-Use-Cache verwendet, mit einem Standardwert von Wahr. Der Caching-Mechanismus trägt dazu bei, die Effizienz der Aufgabenausführung zu erhöhen und doppelte Berechnungen zu reduzieren.

2.1.3 Agenten erstellen

Agenten können mit Hilfe der in CrewAI integrierten Delegations- und Kommunikationsmechanismen miteinander interagieren. Dies ermöglicht ein dynamisches Aufgabenmanagement und die Lösung von Problemen innerhalb von Teams.

Um einen Proxy zu erstellen, ist es üblich, ihn mit den erforderlichen Eigenschaften zu initialisieren Agent Instanz der Klasse. Es folgt ein Beispiel für ein Konzept mit allen Attributen:

from crewai import Agent
agent = Agent(
role="Datenanalyst",
goal="Extract actionable insights",
backstory="""Sie sind Datenanalyst in einem großen Unternehmen.
Sie sind für die Analyse von Daten und die Bereitstellung von Erkenntnissen für das Unternehmen verantwortlich.
Derzeit arbeiten Sie an einem Projekt zur Analyse der Leistung unserer Marketingkampagnen.""" ,
tools=[my_tool1, my_tool2], # Optional, Standardwert ist eine leere Liste
llm=my_llm, # Fakultativ
funktionsaufruf_llm=meine_llm, # optional
max_iter=15, # freigestellt
max_rpm=Keine, # wahlfrei
verbose=True, # wahlweise
allow_delegation=True, # optional
step_callback=Mein_Zwischenschritt_callback, # optional
cache=True # optional
)

2.2 Aufgaben

2.2.1 Aufgabenstellung und Zusammenarbeit

Im CrewAI-Framework ist eine Aufgabe ein spezifischer Job, den ein Agent erledigen muss. Sie enthält verschiedene Details, die für die Ausführung erforderlich sind, z. B. eine klare Beschreibung, den für die Ausführung zuständigen Agenten und die erforderlichen Werkzeuge. Aufgaben können kollaborativ sein, so dass mehrere Agenten durch Attributmanagement und Prozessorchestrierung zusammenarbeiten können, um die Effizienz der Teamarbeit zu verbessern.

2.2.2 Attribute von Aufgaben

  • Beschreibung Eine klare und prägnante Beschreibung des Inhalts der Aufgabe, damit der Agent genau weiß, was zu tun ist. Zum Beispiel: "Finden Sie die neuesten und wichtigsten Nachrichten über KI und fassen Sie sie zusammen".
  • Agent Agenten, die für die Ausführung von Aufgaben zuständig sind, können direkt angegeben oder von den Prozessen der Crew auf der Grundlage von Rollen, Verfügbarkeit und anderen Faktoren zugewiesen werden. So wird sichergestellt, dass die Aufgaben den richtigen Ausführenden finden.
  • Erwartetes Ergebnis Eine detaillierte Beschreibung der Aufgabe, sobald sie abgeschlossen ist, damit der Agent sich über die Ziele und gewünschten Ergebnisse der Aufgabe im Klaren ist. Beispiel: "Eine Zusammenfassung der 5 wichtigsten KI-Nachrichten in Form einer Aufzählung".
  • Werkzeuge (optional) Funktionen oder Fähigkeiten, die von Agenten zur Erfüllung von Aufgaben verwendet werden, können die Aufgabenerfüllung und die Interaktion der Agenten verbessern. Durch die Wahl der richtigen Werkzeuge sind Agenten in der Lage, Aufgaben effizienter zu erledigen.
  • Asynchrone Ausführung (optional) Aufgaben werden asynchron ausgeführt, wenn sie festgelegt sind, so dass andere Aufgaben weiterlaufen können, ohne auf die Fertigstellung zu warten, wenn sie viel Zeit in Anspruch nehmen oder nur geringe Auswirkungen auf die Ausführung der nachfolgenden Aufgaben haben.
  • Kontext (fakultativ) Die Aufgaben, deren Output als Kontext für diese Aufgabe verwendet werden soll, müssen angegeben werden, um die Abhängigkeiten zwischen den Aufgaben zu klären und eine effiziente Lieferung und Nutzung des Aufgabenoutputs zu ermöglichen.
  • Konfiguration (optional) Zusätzliche Konfigurationsdetails des Agenten, der zur Ausführung der Aufgabe verwendet wird, bieten die Flexibilität, die Ausführung der Aufgabe weiter anzupassen.
  • Ausgabe JSON (optional) JSON: Für die Ausgabe von JSON-Objekten ist die OpenAI-API erforderlich, und es kann nur ein Ausgabeformat festgelegt werden. Diese Eigenschaft erleichtert die Dateninteraktion und die Integration mit anderen Systemen.
  • Ausgang Pydantic (optional) Pydantic: Für die Ausgabe von Pydantic-Modellobjekten ist auch die OpenAI-API erforderlich, und es kann nur ein Ausgabeformat festgelegt werden. Die Entwickler können das geeignete Ausgabeformat entsprechend ihren tatsächlichen Bedürfnissen wählen.
  • Ausgabedatei (optional) Speichert die Ausgabe der Aufgabe in einer Datei, wenn sie mit der Ausgabe JSON vielleicht Ausgabe Pydantic Zusammen können Sie festlegen, wie die Ausgabe gespeichert werden soll. Dies erleichtert die Datenaufbewahrung und die anschließende Analyse.
  • Rückruf (optional) Python: Eine in Python aufrufbare Funktion, die nach Abschluss einer Aufgabe ausgeführt wird und dazu verwendet werden kann, Aktionen oder Benachrichtigungen auf der Grundlage der Ergebnisse der Aufgabe auszulösen, z. B. das Senden einer E-Mail.
  • Manuelle Eingabe (optional) Nützlich für Aufgaben, die eine manuelle Überwachung erfordern, um die Genauigkeit und Zuverlässigkeit der Aufgabenergebnisse zu gewährleisten.

2.2.3 Werkzeuge zur Erstellung von Aufgaben verwenden

Nachdem wir die grundlegenden Eigenschaften einer Aufgabe kennengelernt haben, erfahren wir, wie man eine Aufgabe mit dem Tool erstellt. Unten finden Sie ein Beispiel:

os importieren
os.environ["OPENAI_API_KEY"] = "Ihr Schlüssel"
os.environ["SERPER_API_KEY"] = "Ihr Schlüssel" # serper.dev API Schlüssel
from crewai importieren Agent, Aufgabe, Besatzung
von crewai_tools importieren SerperDevTool
research_agent = Agent(
role="Rechercheur",
goal="Finde und fasse die neuesten KI-Nachrichten zusammen",
backstory="""Sie sind ein Forscher in einem großen Unternehmen.
Sie sind für die Analyse von Daten und die Bereitstellung von Erkenntnissen für das Unternehmen verantwortlich.""" ,
verbose=True
)
search_tool = SerperDevTool()
Aufgabe = Aufgabe(
description="Finde und fasse die neuesten Nachrichten zur Künstlichen Intelligenz zusammen.",
expected_output="Fassen Sie die Aufzählung der 5 wichtigsten KI-Nachrichten zusammen", agent=research_agent
agent=recherche_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task],
verbose=2
)
ergebnis = crew.kickoff()
print(ergebnis)

2.2.4 Aufgaben erstellen

Bei der Erstellung einer Aufgabe werden ihr Umfang, der zuständige Bearbeiter und zusätzliche Attribute für die Flexibilität festgelegt:

from crewai import Task
Aufgabe = Aufgabe(
description="Finde und fasse die neuesten und relevantesten Nachrichten zum Thema Künstliche Intelligenz zusammen",
agent=Verkaufsagent
)

Aufgabenzuweisungen können direkt eine in einer verantwortungsvollen Position für jemanden handelnOder lassen Lamellierung des CrewAI-Prozesses wird durch Rolle, Verfügbarkeit usw. bestimmt.

2.2.5 Abhängigkeiten von Aufgaben

In CrewAI wird die Ausgabe einer Aufgabe automatisch an die nächste weitergegeben, was nützlich sein kann, wenn eine Aufgabe von der Ausgabe einer anderen Aufgabe abhängt, aber nicht unmittelbar nach ihr ausgeführt wird. Dies geschieht durch die Aufgabe (inhaltlicher) Kontext Attribut Vervollständigung:

research_ai_task = Aufgabe(
description="Finde und fasse die neuesten KI-Nachrichten zusammen",
expected_output="Fassen Sie die Aufzählung der 5 wichtigsten KI-Nachrichten zusammen", async_execution=True, async_execution = True, async_task = Task(
async_execution=True, agent=research_agent, async_execution=True, und
agent=recherche_agent,
tools=[search_tool]
)
research_ops_task = Aufgabe(
description="Finde und fasse die neuesten Nachrichten über KI-Operationen zusammen",
expected_output="Fassen Sie die Aufzählung der 5 wichtigsten Nachrichten zu KI-Operationen zusammen",
async_execution=True,
agent=forschungs_agent,
tools=[search_tool]
)
write_blog_task = Aufgabe(
description="Schreibe einen vollständigen Blog-Beitrag über die Bedeutung der KI und ihre neuesten Entwicklungen",
expected_output="4 Absätze langer vollständiger Blogbeitrag",
agent=writer_agent,
context=[research_ai_task, research_ops_task]
)

2.2.6 Asynchrone Ausführung

Aufgaben werden asynchron ausgeführt, d. h. die Crew wartet nicht auf ihre Beendigung, bevor sie zur nächsten Aufgabe übergeht. Dies ist nützlich für Aufgaben, deren Ausführung lange dauert oder die für die Ausführung der nächsten Aufgabe nicht entscheidend sind. Sie können die (inhaltlicher) Kontext Attribut in einer zukünftigen Aufgabe definiert ist, sollte sie auf den Abschluss der Ausgabe der asynchronen Aufgabe warten.

list_ideas = Aufgabe(
description="Entdecke 5 interessante Ideen für Artikel über künstliche Intelligenz." ,
expected_output="Eine Aufzählungsliste mit 5 Artikelideen." ,
agent=researcher, , async_execution="Eine Liste von Projektsymbolen mit 5 Artikelideen.
async_execution=True # wird auf asynchrone Weise ausgeführt
)
list_important_history = Aufgabe(
description="Recherchiere die Geschichte der KI und nenne mir die 5 wichtigsten Ereignisse." ,
expected_output="Eine Aufzählungsliste mit den 5 wichtigsten Ereignissen." ,
agent=Forscher,
async_execution=True # wird asynchron ausgeführt
)
write_article = Aufgabe(
description="Schreibe einen Artikel über künstliche Intelligenz, ihre Geschichte und interessante Ideen." ,
expected_output="Ein 4-Paragraphen-Artikel über künstliche Intelligenz." ,
agent=writer,
context=[list_ideas, list_important_history] # wird auf die Ausgabe beider Aufgaben warten
)

2.2.7 Rückrufmechanismen

Führt nach Abschluss der Aufgabe eine Callback-Funktion aus, mit der Aktionen oder Benachrichtigungen auf der Grundlage der Aufgabenergebnisse ausgelöst werden können.

def callback_function(output: TaskOutput).
# Ausführen einer Aktion nach Abschluss der Aufgabe
# z.B. eine E-Mail an den Manager senden
print(f"""
Aufgabe abgeschlossen!
Aufgabe: {output.description}
Ausgabe: {output.raw_output}
""")
research_task = Aufgabe(
description="Finde die neuesten KI-Nachrichten und fasse sie zusammen",
expected_output="Erstellen Sie eine Zusammenfassung der 5 wichtigsten KI-Nachrichten in Form einer Aufzählung",
agent=recherche_agent,
tools=[search_tool],
callback=callback_function
)

2.2.8 Zugriff auf aufgabenspezifische Ausgaben

Sobald eine Gruppe von Crews gelaufen ist, können Sie sie mit Hilfe des Aufgabenobjekts Ausgabe Attribut greift auf die Ausgabe einer bestimmten Aufgabe zu:

task1 = Aufgabe(
description="Finde und fasse die neuesten Nachrichten über Künstliche Intelligenz zusammen",
expected_output="Fassen Sie die Aufzählung der 5 wichtigsten KI-Nachrichten zusammen",
agent=recherche_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task1, task2, task3],
ausführlich=2
)
result = crew.kickoff()
print(f"""
Aufgabe abgeschlossen!
Aufgabe: {task1.output.description}
Ausgabe: {task1.output.raw_output}
""")

2.2.9 Überbrückungsmechanismen für Werkzeuge

Die Angabe von Werkzeugen in einer Aufgabe ermöglicht eine dynamische Anpassung der Fähigkeiten des Agenten, was die Flexibilität von CrewAI unterstreicht.

2.2.10 Fehlerbehandlung und Validierungsmechanismen

Es gibt Validierungsmechanismen, um die Robustheit und Zuverlässigkeit von Aufgabenattributen bei der Erstellung und Ausführung von Aufgaben zu gewährleisten. Diese Validierungen umfassen, sind aber nicht beschränkt auf:

  • Stellen Sie sicher, dass pro Aufgabe nur ein Ausgabetyp eingestellt ist, damit die Erwartungen an die Ausgabe klar bleiben.
  • Verhinderung der manuellen Verteilung id Attribut, um die Integrität des Systems der eindeutigen Kennung zu wahren.

Diese Validierungen tragen dazu bei, die Konsistenz und Zuverlässigkeit der Aufgabenausführung im Rahmen von CrewAI aufrechtzuerhalten.

2.3 Werkzeuge

2.3.1 Rolle und Arten von Werkzeugen

Das CrewAI-Tool stattet Agenten mit einer Vielzahl von Funktionen aus, darunter Websuche, Datenanalyse, Inhaltserstellung und Aufgabendelegation, so dass Agenten eine Vielzahl komplexer Vorgänge durchführen können, die von einfachen Suchvorgängen bis hin zu komplexen Interaktionen und effektiver Teamarbeit reichen.

2.3.2 Hauptmerkmale des Tools

  • Dienstprogramm Die Software wurde speziell für diese Aufgabe entwickelt und deckt die funktionalen Anforderungen verschiedener Bereiche ab, wie z. B. Websuche, Datenanalyse, Inhaltserstellung usw., um den Anforderungen von Agenten in verschiedenen Szenarien gerecht zu werden.
  • Integration Die Fähigkeit, sich nahtlos in Arbeitsabläufe zu integrieren und eng mit Agenten und Aufgaben zusammenzuarbeiten, um die allgemeinen Fähigkeiten von Agenten zu verbessern und eine effiziente Zusammenarbeit zu ermöglichen.
  • Anpassungsfähigkeit Bietet Entwicklern die Flexibilität, entweder maßgeschneiderte Tools für spezielle Anforderungen zu entwickeln oder vorhandene Tools zu verwenden, um die Konfiguration an die tatsächlichen Bedürfnisse des Agenten anzupassen.
  • Fehlerbehandlung Ein leistungsfähiger Mechanismus zur Fehlerbehandlung sorgt dafür, dass das Tool Ausnahmen, die während des Betriebs auftreten, ordnungsgemäß behandelt, um einen reibungslosen Betrieb des Systems zu gewährleisten.
  • Caching-Mechanismus Intelligente Zwischenspeicherung, um die Leistung zu optimieren und redundante Vorgänge zu reduzieren. Entwickler können auch die cache_funktion Attribut bietet eine feinere Kontrolle über den Caching-Mechanismus, was die Effizienz weiter verbessert.

2.3.3 Verwendung des CrewAI-Tools

Um die Fähigkeiten des Agenten mit dem CrewAI-Tool zu erweitern, müssen Sie zunächst das zusätzliche Toolkit installieren:

pip install 'crewai[tools]'

Nachstehend finden Sie einen Anwendungsfall:

os importieren
from crewai importieren Agent, Aufgabe, Besatzung
# importieren CrewAI Werkzeuge
from crewai_tools importieren (
VerzeichnisLeseWerkzeug, DateiLeseWerkzeug, CrewAI_tools
FileReadTool, SerperDevTool, SerperDevTool, SerperDevTool
SerperDevTool, WebsiteSearchTool
WebsiteSearchTool
)
# Einstellen des API-Schlüssels
os.environ["SERPER_API_KEY"] = "Ihr Schlüssel" # serper.dev API Schlüssel
os.environ["OPENAI_API_KEY"] = "Ihr Schlüssel"
#-Instanziierungswerkzeug
docs_tool = DirectoryReadTool(directory='. /blog-posts')
datei_tool = DateiLesenWerkzeug()
suche_tool = SerperDevTool()
web_rag_tool = WebsiteSearchTool()
# Erstellen eines Agenten
researcher = Agent(
role="Marktforschungsanalyst",
goal="Liefert aktuelle Marktanalysen über die KI-Branche",
backstory="Ein fachkundiger Analyst mit einem scharfen Blick für Markttrends." ,
tools=[search_tool, web_rag_tool],
verbose=True
)
writer = Agent(
role="Content Writer", , goal="Schreibt ansprechende Blogbeiträge über die KI-Branche", verbose=True )
goal="Schreibt ansprechende Blog-Beiträge über die KI-Branche",
backstory="Ein erfahrener Autor mit einer Leidenschaft für Technologie." ,
tools=[docs_tool, file_tool],
verbose=True
)
# Definieren Sie die Aufgabe
research = Aufgabe(
description="Recherchieren Sie die neuesten Trends in der KI-Branche und erstellen Sie eine Zusammenfassung." ,
expected_output="Eine Zusammenfassung der drei wichtigsten aktuellen Entwicklungen in der KI-Branche und eine einzigartige Perspektive auf deren Bedeutung." ,
agent=Forscher
)
write = Aufgabe(
description="Schreibe einen ansprechenden Blogbeitrag auf der Grundlage der Zusammenfassung des Forschungsanalysten. Lassen Sie sich dabei von den neuesten Blogbeiträgen im Katalog inspirieren." ,
expected_output="Ein Blog-Beitrag in vier Absätzen im Markdown-Format, der ansprechend, informativ und leicht verständlich ist und komplexe Terminologie vermeidet." ,
agent=writer,
output_file='blog-posts/new_post.md' # Der fertige Blogeintrag wird hier gespeichert
)
# Zusammenstellung der Crew
Mannschaft = Mannschaft(
agents=[researcher, writer],
tasks=[research, write],
ausführlich=2
)
# Ausführen der Aufgabe
crew.kickoff()

2.3.4 Eigene Tools erstellen

Das Toolkit muss zuerst installiert werden:

pip install 'crewai[tools]'
  • Unterklassifizierung BaseTool durch Vererbung BaseTool Klasse können Entwickler benutzerdefinierte Werkzeuge erstellen. Sie müssen den Namen und die Beschreibung des Werkzeugs definieren und die laufen Methode, um die spezifische Funktionslogik des Werkzeugs zu definieren. Beispiel:
from crewai_tools import BaseTool
class MyCustomTool(BaseTool).
name: str = "Name meines Werkzeugs"
description: str = "Klare Beschreibung, wofür dieses Tool verwendet wird, Ihr Agent wird diese Informationen benötigen, um es zu verwenden."
def _run(self, argument: str) -> str.
#-Implementierung hier
return "Das Ergebnis des benutzerdefinierten Werkzeugs"
  • nutzen. Werkzeug Tapezierer : Verwendung Werkzeug Decorators ermöglichen die saubere Erstellung von benutzerdefinierten Tools. Definieren Sie einfach die Funktion, fügen Sie die @tool Dekorator und geben Sie nur den Namen und die Beschreibung des Werkzeugs an. Beispiel:
from crewai_tools importieren Werkzeug
@tool("Name meines Werkzeugs")
def my_tool(question: str) -> str.
"""Beschreibt klar und deutlich, wofür dieses Werkzeug verwendet wird, und Ihr Agent benötigt diese Informationen, um es zu benutzen. """"
# Die Logik der Funktion ist hier
return "Das Ergebnis deines benutzerdefinierten Tools"
  • Benutzerdefinierte Caching-Mechanismen Das Tool hat die Möglichkeit, Folgendes zu realisieren cache_funktion zur Feinabstimmung des Cache-Verhaltens. Die Festlegung des Zeitpunkts für die Zwischenspeicherung von Ergebnissen auf der Grundlage bestimmter Bedingungen ermöglicht eine fein abgestimmte Steuerung der Zwischenspeicherlogik. Beispiel:
from crewai_tools importieren Werkzeug
@tool
def multiplication_tool(first_number: int, second_number: int) -> str.
"""Nützlich, wenn Sie zwei Zahlen miteinander multiplizieren müssen. """"
return erste_Zahl * zweite_Zahl
def cache_func(args, result).
# In diesem Fall wird das Ergebnis nur zwischengespeichert, wenn das Ergebnis ein Vielfaches von 2 ist
cache = Ergebnis % 2 == 0
return cache
multiplication_tool.cache_function = cache_func

2.3.5 Verwendung des LangChain-Werkzeugs

CrewAI lässt sich nahtlos in das LangChain-Toolkit integrieren, so dass Entwickler die Vorteile der eingebauten Tools von LangChain nutzen können, wie z.B. GoogleSerperAPIWrapper usw., erweitern die Fähigkeiten des Agenten, indem sie ihn durch einfache Konfiguration in das CrewAI-System integrieren. Beispiel:

from crewai importieren Agent
from langchain.agents importieren Werkzeug
von langchain.utilities importieren GoogleSerperAPIWrapper
# Einstellen des API-Schlüssels
os.environ["SERPER_API_KEY"] = "Ihr Schlüssel"
Suche = GoogleSerperAPIWrapper()
# Erstellen und Zuweisen des Suchwerkzeugs an den Agenten
serper_tool = Werkzeug(
name="Intermediate Answers",
func=search.run,
description="Werkzeug für suchbasierte Abfragen"
)
agent = Agent(
role="Forschungsanalyst",
goal="Aktuelle Marktanalysen bereitstellen",
backstory="Ein fachkundiger Analyst mit einem scharfen Auge für Markttrends." ,
tools=[serper_tool]
)

2.4 Verfahren

2.4.1 Prozessdurchführung

  • Sequentiell Aufgaben werden nacheinander in einer vordefinierten Reihenfolge ausgeführt, wobei die Ausgabe einer Aufgabe als Kontext für die nächste dient, was eine geordnete und kohärente Aufgabenausführung gewährleistet.
  • Hierarchisch Organisation von Aufgaben in Verwaltungsebenen durch Angabe des Verwaltungssprachenmodells (manager_llm), um den Prozess zu ermöglichen. Der Manager-Agent ist für die Überwachung der Aufgabenausführung verantwortlich, einschließlich der Planung, Delegierung und Validierung von Aufgaben, die auf der Grundlage der Fähigkeiten des Agenten zugewiesen und nicht im Voraus zugewiesen werden.
  • Konsensverfahren (geplant) Ziel ist es, eine kollaborative Entscheidungsfindung zwischen Agenten bei der Aufgabenausführung zu ermöglichen und einen demokratischen Ansatz für das Aufgabenmanagement einzuführen, der noch nicht in der Codebasis implementiert ist, aber das Streben von CrewAI nach kontinuierlicher Entwicklung und Innovation widerspiegelt.

2.4.2 Die Rolle des Prozesses in der Teamarbeit

Prozesse ermöglichen es den einzelnen Akteuren, als ein zusammenhängendes Ganzes zu funktionieren und die Zusammenarbeit zu rationalisieren, um gemeinsame Ziele auf effiziente und koordinierte Weise zu erreichen. Durch eine solide Prozessgestaltung sind Teams besser in der Lage, komplexe Aufgaben zu bewältigen und die Gesamtproduktivität zu steigern.

2.4.3 Prozesse einem Manager zuweisen

Bei der Erstellung eines Managers kann der Entwickler den Prozesstyp angeben, um die Ausführungsrichtlinie festzulegen. Bei hierarchischen Prozessen müssen Sie für den Manager-Agenten die manager_llm. Beispiel:

von crewai importieren Crew, Prozess
von langchain_openai importieren ChatOpenAI
# Sequentieller Prozess
Crew = Crew(
agents=meine_agenten,
Aufgaben=Meine_Aufgaben,
process=Prozess.sequentiell
)
# hierarchischer Prozess zur Sicherstellung der Verfügbarkeit manager_llm
Mannschaft = Mannschaft(
agents=my_agents,
Aufgaben=Meine_Aufgaben,
process=Prozess.hierarchisch,
manager_llm=ChatOpenAI(model="gpt-4")
)

2.4.4 Zusätzliche Aufgabenmerkmale

  • Asynchrone Ausführung (Asynchronous Execution) Ermöglicht die asynchrone Ausführung von Aufgaben, was eine parallele Verarbeitung ermöglicht und die Produktivität des Teams insgesamt verbessert. Entwickler können je nach Aufgabenmerkmalen flexibel zwischen synchronen oder asynchronen Ausführungsmethoden wählen.
  • Überprüfung des menschlichen Inputs (HIR) Bietet eine optionale manuelle Überprüfung der Aufgabenergebnisse, um Qualität und Genauigkeit zu gewährleisten, bevor die Aufgabenergebnisse abgeschlossen werden.
  • Anpassung der Ausgabe Die Aufgabe unterstützt eine Vielzahl von Ausgabeformaten, z. B. JSON (ausgabe_json), das pydantische Modell (output_pydantisch) und die Dateiausgabe (ausgabe_datei), um unterschiedlichen Bedürfnissen gerecht zu werden und die Datenverarbeitung und -nutzung zu erleichtern.

2.5 Besatzungen

2.5.1 Team-Attribute

  • Aufgaben Eine Liste von Aufgaben, die dem Team zugewiesen werden und die angeben, was das Team erreichen muss.
  • Agenten Eine Liste von Bearbeitern, die zum Team gehören und die Zusammensetzung der Teammitglieder mit ihren jeweiligen Rollen und Fähigkeiten definieren.
  • Prozess (fakultativ) Die Art des Prozesses, dem das Team folgt, z. B. ein sequentieller oder hierarchischer Prozess, bestimmt die Reihenfolge und die Art und Weise, in der die Aufgaben ausgeführt werden.
  • Detaillierungsgrad (fakultativ) Der Detaillierungsgrad der Protokollierung während der Ausführung, der es den Entwicklern erleichtert, ausreichende Informationen für die Fehlersuche und Überwachung zu erhalten.
  • Manager LLM (fakultativ, erforderlich für stufenweises Verfahren) Ein Sprachmodell, das von Manager-Agenten in einem hierarchischen Prozess verwendet wird, um den Prozess der Aufgabenausführung zu verwalten.
  • Funktionsaufruf LLM (fakultativ) Wenn sie weitergegeben wird, verwendet das Team diese LLM, um für alle Agenten Funktionsaufrufe an das Tool zu tätigen, die vom Entwickler nach Bedarf flexibel konfiguriert werden können.
  • Konfiguration (optional) Optionale Konfigurationseinstellungen für Teams zu Json vielleicht Dict[str, Any] Das Format ist für die weitere Anpassung des Teamverhaltens vorgesehen.
  • Maximale Drehzahl (optional) Maximale Anzahl von Anfragen, die pro Minute während der Teamausführung ausgeführt werden können, um eine Ratenbegrenzung zu vermeiden, kann die individuellen Agenten überschreiben max_rpm Einstellung.
  • Sprache (fakultativ) Die vom Team verwendete Sprache, die standardmäßig Englisch ist, kann an die tatsächlichen Bedürfnisse angepasst werden.
  • Sprachdateien (optional) Sprachdateipfade für Teams, um die Unterstützung mehrerer Sprachen zu erleichtern.
  • Speicher (optional) Wird verwendet, um exekutive Erinnerungen (Kurzzeit-, Langzeit- und physische Erinnerungen) zu speichern, um die Ausführungs- und Lernfähigkeit des Teams zu verbessern.
  • Cache (optional) Caching: Geben Sie an, ob die Ergebnisse der Werkzeugausführung zwischengespeichert werden sollen, um die Prozesseffizienz zu verbessern.
  • Einbetter (optional) Die vom Team verwendete Embedder-Konfiguration, hauptsächlich für In-Memory-Funktionen, wirkt sich darauf aus, wie Daten eingebettet und abgerufen werden.
  • Volle Leistung (optional) Entscheidung, ob das Team einen vollständigen Output mit allen Aufgaben-Outputs oder nur den endgültigen Output zurückgibt, um unterschiedliche Anforderungen an die Ergebniserfassung zu erfüllen.
  • Schrittrückruf (optional) Eine Funktion, die nach jedem Schritt eines jeden Agenten aufgerufen wird, um Vorgänge zu protokollieren oder andere Vorgänge durchzuführen, die nicht agentenspezifische Vorgänge außer Kraft setzen. Schritt_Abruf.
  • Aufgabenrückrufe (optional) Eine Funktion, die nach Abschluss jeder Aufgabe aufgerufen wird, um andere Aktionen nach der Aufgabe zu überwachen oder durchzuführen.
  • Gemeinsames Team (optional) Ob vollständige Informationen über das Team und die Implementierung mit dem CrewAI-Team geteilt werden, um die Bibliothek zu verbessern und das Training der Modelle zu ermöglichen.
  • Ausgabe-Protokolldatei (optional) Erstellen einer Datei mit der kompletten Ausgabe und Ausführung des Teams: Sie können den Pfad und den Namen der Datei angeben.

2.5.2 Beispiel für die Bildung eines Teams

Nachfolgend ein Beispiel für die Zusammenstellung eines Teams, das zeigt, wie Agenten mit komplementären Rollen und Werkzeugen zusammengebracht, Aufgaben zugewiesen und Prozesse ausgewählt werden können:

from crewai importieren Crew, Agent, Aufgabe, Prozess
from langchain_community.tools import DuckDuckGoSearchRun
# Definieren Sie einen Agenten mit einer bestimmten Rolle und Tools
researcher = Agent(
role="Senior Research Analyst",
goal="Innovative KI-Technologien entdecken",
tools=[DuckDuckGoSearchRun()]
)
writer = Agent(
role="Content Writer", goal="Über innovative KI-Technologien schreiben", tools=[DuckDuckGoSearchRun()] ) writer = Agent(
goal="Spannende Artikel über KI-Entdeckungen schreiben", verbose=True)
verbose=True
)
# Erstellen Sie eine Aufgabe für den Agenten
research_task = Aufgabe(
description="Identifizieren Sie bahnbrechende KI-Technologien",
agent=Forscher
)
write_article_task = Aufgabe(
description="Schreiben Sie Artikel über die neuesten KI-Technologien", agent=writer )
agent=Autor
)
# Zusammenstellung eines Teams unter Verwendung eines sequentiellen Prozesses
my_crew = Mannschaft(
agents=[forscher, schreiber],
tasks=[research_task, write_article_task],
process=Process.sequential,
full_output=True,
verbose=True,
)

2.5.3 Ausführungsprozess im Team

  • Sequentiell Das ist einfach und intuitiv und eignet sich für Szenarien, in denen es eine klare Reihenfolge zwischen den Aufgaben gibt.
  • Hierarchisch Der Manager Agent koordiniert das Team, delegiert Aufgaben und validiert die Ergebnisse, bevor er weiterarbeitet. Dieser Prozess erfordert manager_llmEs eignet sich für die Verwaltung und Zuweisung komplexer Aufgaben und gewährleistet eine effiziente Aufgabenausführung und Qualitätskontrolle.
  • Start-Team : Verwendung Anstoß() Methode initiiert einen Team-Workflow, startet die Ausführung der Aufgabe gemäß dem definierten Prozess und erhält die Ergebnisse der Aufgabenausführung. Beispiel:
# Startschuss für die Ausführung der Aufgabe des Teams
Ergebnis = meine_Mannschaft.kickoff()
print(ergebnis)

2.6 Speicher

2.6.1 Komponenten des Speichersystems

  • Kurzzeitgedächtnis (Kurzzeitgedächtnis) Vorübergehende Speicherung der letzten Interaktionen und Ergebnisse ermöglicht es dem Agenten, Informationen, die in engem Zusammenhang mit dem aktuellen Kontext stehen, schnell abzurufen und zu nutzen, um so die Kohärenz in einem Dialog oder einer Aufgabenfolge aufrechtzuerhalten und kontextbezogenere Entscheidungen und Reaktionen zu treffen.
  • Langzeitgedächtnis (Langzeitgedächtnis) Es handelt sich um einen Wissensspeicher, in dem wertvolle Erkenntnisse und Lehren aus vergangenen Leistungen gespeichert sind. Im Laufe der Zeit können die Agenten aus diesen Erfahrungen lernen und ihr Wissenssystem allmählich aufbauen und verbessern, was wiederum ihre zukünftigen Entscheidungs- und Problemlösungsfähigkeiten verbessert, um komplexe und sich verändernde Aufgabenszenarien besser zu bewältigen.
  • Entitätsspeicher Der Schwerpunkt liegt auf der Erfassung und Organisation von Informationen über verschiedene Arten von Entitäten, auf die man bei der Ausführung von Aufgaben stößt, z. B. Personen, Orte, Konzepte usw. Dies hilft dem Agenten, die inneren Zusammenhänge zwischen komplexen Informationen zu verstehen, relevantes Wissen effizienter zu verarbeiten und zu integrieren, indem er die Beziehungen zwischen den Entitäten genau abbildet, und eine umfassendere und tiefere Perspektive für die Problemlösung zu bieten.
  • Kontext-Speicher Die Arbeit an der Aufrechterhaltung von Kontextinformationen während der Interaktion stellt sicher, dass der Agent in der Lage ist, während einer Reihe von Aufgaben oder aufeinanderfolgenden Dialogen konsistent mit Kohärenz und Relevanz zu reagieren. Selbst bei langen Interaktionen können der Aufgabenkontext und die Absicht genau verstanden werden, wodurch Informationsunterbrechungen oder Missverständnisse vermieden und somit genauere und angemessenere Ergebnisse erzielt werden.

2.6.2 Wie Speichersysteme Agenten befähigen

  • Erhöhtes kontextbezogenes Bewusstsein Die Synergie von Kurzzeitgedächtnis und Kontextspeicher ermöglicht es dem Agenten, den Kontext während der Entwicklung eines Dialogs oder einer Aufgabe fest im Griff zu behalten. Ganz gleich, ob es sich um die Korrelation von Informationen in einem Dialog mit mehreren Runden oder um die logische Fortsetzung einer Aufgabensequenz handelt, der Agent kann auf der Grundlage der gespeicherten Kontextinformationen kohärentere, konsistentere und kontextbezogenere Antworten generieren, was den Fluss und die Logik der Interaktionserfahrung erheblich verbessert.
  • Erfahrung mit dem Aufbau und dem Erlernen der Akzeleration Langzeitgedächtnis: Das Langzeitgedächtnis bietet eine Plattform für Agenten, um zu wachsen und sich weiterzuentwickeln. Durch die Speicherung und Überprüfung früherer Handlungen und Ergebnisse können die Agenten Lehren daraus ziehen, Muster entdecken und dann ihre Entscheidungsstrategien und Problemlösungsmethoden kontinuierlich optimieren. Dieser Prozess der Erfahrungssammlung versetzt den Agenten in die Lage, bei ähnlichen Problemen intelligentere und effizientere Entscheidungen zu treffen, was die Arbeitseffizienz und -qualität erheblich verbessert.
  • Entitätsverständnis und Optimierung der Informationsverarbeitung Entitätengedächtnis: Das Entitätengedächtnis gibt dem Agenten die Fähigkeit, wichtige Entitäten zu identifizieren und sich zu merken, so dass er sich bei der Verarbeitung komplexer Informationen schnell auf Kernpunkte konzentrieren und die Zusammenhänge zwischen den Informationen klären kann. Dies hilft dem Agenten nicht nur, die Anforderungen der Aufgabe genauer zu verstehen, sondern ermöglicht es ihm auch, schnell die wertvollen Inhalte herauszufiltern und die Geschwindigkeit und Genauigkeit der Informationsverarbeitung angesichts riesiger Informationsmengen zu verbessern, so dass er komplexe Aufgaben und vielfältige Problemszenarien effektiver bewältigen kann.

2.6.3 Implementierung von Speicher in Teams

Bei der Konfiguration eines Teams haben die Entwickler die Möglichkeit, jede Speicherkomponente je nach den Zielen des Teams und der Art der Aufgabe flexibel zu aktivieren und anzupassen. Standardmäßig ist das Speichersystem ausgeschaltet, indem die Teamkonfiguration in der Datei Speicher=Truekönnen Sie die Erinnerungsfunktion aktivieren, um Ihr Team mit leistungsstarken Erinnerungsfunktionen auszustatten. Memory verwendet standardmäßig OpenAI Embeddings, aber Entwickler können auch die Einbetten Parameter auf andere Modelle wie Google AI, Azure OpenAI, GPT4ALL, Vertex AI oder Cohere übertragen, um die Anforderungen verschiedener Szenarien zu erfüllen. Beispiel:

from crewai importieren Besatzung, Agent, Aufgabe, Prozess
# Verwendung einer Crew mit Speicher, unter Verwendung der Standard-OpenAI-Embeddings
my_crew = Crew(
agents=[...] ,
tasks=[...] ,
process=Prozess.sequentiell,
prozess=Prozess.sequentiell, speicher=True, verbose=True
verbose=True
)
# Wechsel zu Google AI Embedding unter Verwendung einer Mannschaft mit einer Speicherfunktion
meine_Mannschaft = Mannschaft(
agents=[...] ,
tasks=[...] ,
process=Prozess.sequentiell,
prozess=Prozess.sequentiell, speicher=True,
verbose=True,
embedder={
"provider": "google",
"config": {
"model": "models/embedding-001",
"task_type": "retrieval_document",
"title": "Embeddings for Embedchain"
}
}
)

2.6.4 Vorteile der Verwendung des CrewAI Speichersystems

  • Adaptives Lernen und kontinuierliche Optimierung Mit der Zeit und der kontinuierlichen Ausführung von Aufgaben kann sich das Team schrittweise an neue Informationen und Aufgabenanforderungen anpassen und die Methoden und Strategien zur Aufgabenbewältigung kontinuierlich verbessern. Das Gedächtnissystem ermöglicht es den Agenten, aus früheren Erfahrungen zu lernen und ihre Verhaltensmuster automatisch anzupassen, so dass sie sich in neuen Situationen wohler fühlen und sich die Gesamteffizienz des Teams mit der Erfahrung weiter verbessert.
  • Personalisierte Erlebnisverbesserung Die Speicherfunktion ermöglicht es dem Agenten, Benutzerpräferenzen, frühere Interaktionen und andere Informationen aufzuzeichnen und zu identifizieren, um dem Benutzer personalisierte Dienste und Erfahrungen zu bieten. Ob bei der Empfehlung von Inhalten, der Beantwortung von Fragen oder der Interaktion, der Agent ist in der Lage, genau auf die personalisierten Merkmale des Nutzers zu reagieren, die spezifischen Bedürfnisse des Nutzers zu erfüllen und die Bindung und Zufriedenheit zwischen dem Nutzer und dem System zu verbessern.
  • Verbesserte Problemlösungsfähigkeiten Reichhaltige Gedächtnisspeicher versorgen Agenten mit einem starken Wissensfundament, das es ihnen ermöglicht, bei der Lösung von Problemen vollständig auf vergangenes Lernen und kontextbezogene Informationen zurückzugreifen. Durch den schnellen Abruf und die Nutzung relevanter Erfahrungen sind Agenten in der Lage, Probleme umfassender zu analysieren, potenzielle Lösungen zu identifizieren und intelligentere, präzisere Entscheidungen zu treffen, was ihre Fähigkeit zur Lösung komplexer Probleme effektiv verbessert und eine starke Unterstützung für erfolgreiche Teamarbeit darstellt.

3. praktische Schritte zum Aufbau eines Multiagentensystems auf der Grundlage von CrewAI

3.1 Vorbereitungen

3.1.1 Konfiguration der Umgebung

Stellen Sie sicher, dass Ihr System die Installationsanforderungen für CrewAI und die zugehörigen Abhängigkeiten erfüllt. Je nach Betriebssystem müssen Sie möglicherweise bestimmte Pakete installieren oder Umgebungsvariablen konfigurieren. Auf manchen Systemen müssen Sie zum Beispiel die Python-Umgebung und die zugehörigen Bibliotheken installieren und API-Schlüssel konfigurieren.

3.1.2 Installation von CrewAI und Ollama (optional)

Folgen Sie den Anweisungen in der offiziellen Dokumentation, um CrewAI und Ollama (falls Sie Ollama verwenden müssen) nacheinander zu installieren. Möglicherweise müssen Sie während des Installationsvorgangs auf Versionskompatibilität, Abhängigkeiten und andere Probleme achten, um sicherzustellen, dass die Installation erfolgreich abgeschlossen wird. Verwenden Sie zum Beispiel den Befehl pip, um CrewAI und das dazugehörige Toolkit zu installieren:pip install crewai[tools]Die Ollama-Installationsanleitung ist auf der Ollama-Website verfügbar und sollte entsprechend befolgt werden.

3.1.3 Einrichten des Modells

Setzen Sie in der CrewAI-Konfigurationsdatei das Sprachmodell (LLM) auf das gewünschte Modell, z. B. Llama3 usw. Dieser Schritt stellt sicher, dass der Agent in der Lage ist, bei der Ausführung von Aufgaben das entsprechende Sprachmodell für die Argumentation und Entscheidungsfindung zu verwenden.

3.2 Agenten erstellen

3.2.1 Definition von Agentenrollen und -zielen

Definieren Sie die Rollen und Ziele der einzelnen Agenten auf der Grundlage der Aufgabenanforderungen. Um beispielsweise einen Agenten zu schaffen, der für die Sammlung von Informationen zuständig ist, kann seine Rolle als "Informationssammler" definiert werden, mit dem Ziel, "relevante Informationen in einem bestimmten Bereich zu sammeln"; oder um einen Agenten zu schaffen, der sich auf die Datenanalyse konzentriert, ist die Rolle "Datenanalytiker", mit dem Ziel, "die gesammelten Daten eingehend zu analysieren und wertvolle Erkenntnisse zu gewinnen".

3.2.2 Konfigurieren der Agenteneigenschaften

Je nach Rolle und Aufgabenmerkmalen des Agenten ist es sinnvoll, die Attribute des Agenten zu konfigurieren, wie z. B. die Auswahl des geeigneten Sprachmodells, das Hinzufügen der erforderlichen Tools, die Festlegung der maximalen Anzahl von Iterationen und Caching-Strategien. Der Agent für die Informationssammlung kann z. B. mit einem Web-Suchtool konfiguriert werden, eine höhere maximale Anzahl von Anfragen festlegen, um die Effizienz der Informationsbeschaffung zu verbessern, und die Zwischenspeicherung aktivieren, um wiederholte Suchvorgänge zu reduzieren; der Agent für die Datenanalyse hingegen muss möglicherweise eine Verbindung zu einem bestimmten Datenbanktool herstellen und die maximale Anzahl von Iterationen und andere Attribute an die Komplexität der Analyseaufgabe anpassen.

3.2.3 Entwicklung der Hintergrundgeschichte des Agenten (optional, aber empfohlen)

Das Schreiben einer detaillierten Hintergrundgeschichte für den Agenten ist zwar ein optionaler Schritt, kann aber einen reichhaltigeren Kontext für das Verhalten und die Entscheidungen des Agenten liefern, die anthropomorphen Eigenschaften des Agenten verstärken und dazu beitragen, die Interaktivität und Interpretierbarkeit des Systems zu verbessern. Ein Beispiel: "Sie sind ein professioneller Informationssammler, der gut darin ist, die riesige Menge an Informationen im Internet schnell zu durchforsten, um wertvolle Inhalte zu finden. Sie sind seit langem im Bereich der Datensammlung tätig, kennen eine Vielzahl von Informationsquellen gut und sind mit einer Vielzahl von Suchtechniken und -tools vertraut. Diese Aufgabe soll dem Team dabei helfen, die neuesten Informationen über [bestimmtes Gebiet] zu beschaffen, um eine solide Grundlage für die nachfolgenden Analysen und die Entscheidungsfindung zu schaffen."

3.3 Definition der Aufgaben

3.3.1 Klärung von Aufgabenbeschreibungen

Geben Sie für jede Aufgabe eine klare und präzise Beschreibung, damit die Mitarbeiter die spezifischen Anforderungen der Aufgabe verstehen. Zum Beispiel: "Analysieren Sie das Nutzerfeedback zu [Produktname] in den sozialen Medien im vergangenen Monat und extrahieren Sie die wichtigsten Kommentare und Vorschläge", "Prognostizieren Sie anhand von Marktdaten die Trends in [Branchenname] für die nächsten drei Monate" usw.

3.3.2 Zuweisung von Bearbeitern

Weisen Sie Aufgaben den entsprechenden Agenten auf der Grundlage ihrer Rollen und Fähigkeiten zu. Sie können den Agenten, der für die Durchführung der Aufgabe verantwortlich ist, direkt angeben, oder Sie können den Prozessmechanismus von CrewAI nutzen, um dem System zu ermöglichen, Aufgaben automatisch zuzuweisen, basierend auf der Verfügbarkeit des Agenten, seiner Expertise und anderen Faktoren. Weisen Sie z. B. Agenten zur Informationssammlung Aufgaben zu und Agenten zur Datenanalyse Aufgaben zur Datenanalyse.

3.3.3 Konfigurieren der Aufgabeneigenschaften

Legen Sie je nach den Anforderungen der Aufgabe weitere Attribute der Aufgabe fest, z. B. das erwartete Ausgabeformat (JSON, Pydantic-Modell oder Datei usw.), ob eine asynchrone Ausführung erforderlich ist, ob eine manuelle Eingabeüberprüfung erforderlich ist, und legen Sie den Aufgabenkontext fest. Für Aufgaben mit hohen Echtzeitanforderungen kann beispielsweise die asynchrone Ausführung aktiviert werden, um die Reaktionsgeschwindigkeit des Systems insgesamt zu verbessern; für wichtige Entscheidungsfindungsaufgaben kann die manuelle Eingabeüberprüfung aktiviert werden, um die Genauigkeit der Ergebnisse zu gewährleisten.

3.4 Integrationswerkzeuge

3.4.1 Die Wahl des richtigen Werkzeugs

Wählen Sie das richtige Werkzeug für die Aufgabe aus der umfangreichen Bibliothek von CrewAI, z. B. für die Websuche WebsiteSearchToolDie FileReadToolIm Folgenden finden Sie einige Beispiele für die Datenanalysen, die in der CSVSearchTool usw. Bei Bedarf können auch benutzerdefinierte Tools erstellt werden, um die besonderen Anforderungen bestimmter Aufgaben zu erfüllen.

3.4.2 Integration von Tools mit Agenten und Aufgaben

Weisen Sie die ausgewählten Werkzeuge den entsprechenden Bearbeitern zu, so dass die Bearbeiter sie bei der Ausführung von Aufgaben aufrufen können. Geben Sie bei der Definition einer Aufgabe explizit an, welche Werkzeuge für die Aufgabe verwendet werden sollen, um sicherzustellen, dass die Werkzeuge eng mit der Aufgabe verbunden sind und zusammenarbeiten. Statten Sie zum Beispiel bei einer Aufgabe zum Sammeln von Informationen den Informationssammler mit dem WebsiteSearchTool im Gesang antworten DirectorySearchToolum den Zugriff auf Informationen aus Webseiten und lokalen Katalogen zu ermöglichen.

3.5 Mannschaftsaufstellung

3.5.1 Kombinierte Wirkstoffe

Kombinieren Sie Agenten mit unterschiedlichen Rollen und Kompetenzen, um ein kooperatives Team zu bilden. Stellen Sie sicher, dass die Teammitglieder komplementäre Rollen haben und in der Lage sind, gemeinsam an komplexen Aufgaben zu arbeiten. Ein Team könnte beispielsweise aus Mitarbeitern mit unterschiedlichen Rollen bestehen, wie z. B. Informationsbeschaffer, Datenanalysten, Inhaltsersteller usw., von denen jeder seine eigenen Fachkenntnisse hat und die gemeinsam an der Erreichung der Projektziele arbeiten.

3.5.2 Definition von Teamprozessen

Wählen Sie je nach den Merkmalen und Anforderungen der Aufgaben einen geeigneten Teamprozess, z. B. einen sequenziellen Prozess oder einen hierarchischen Prozess. Sequentielle Prozesse eignen sich für Szenarien, in denen es eine klare Rangfolge zwischen den Aufgaben gibt und die Agenten die Aufgaben nacheinander in einer vorher festgelegten Reihenfolge ausführen; hierarchische Prozesse eignen sich für komplexe Aufgaben, die Management und Koordination erfordern, und Aufgaben werden durch leitende Agenten zugewiesen und überwacht.

3.5.3 Konfigurieren der Teameigenschaften

Legen Sie je nach Bedarf des Teams verschiedene Teamattribute fest, z. B. die Detailstufe der Protokollierung, die maximale Anforderungsrate, die Spracheinstellungen, die Speicher- und Cachekonfiguration und ob Teaminformationen gemeinsam genutzt werden sollen. Eine sinnvolle Konfiguration der Teamattribute kann die betriebliche Effizienz des Teams optimieren und die Anforderungen verschiedener Szenarien erfüllen.

3.6 Durchführung der Aufgaben und Überwachung

3.6.1 Initiieren von Teamaufgaben

ausnutzen Anstoß() Das System veranlasst den Agenten, seine Arbeit entsprechend dem definierten Prozess und der Aufgabenzuweisung zu beginnen. Während der Aufgabenausführung kann der Fortschritt der Aufgabe in Echtzeit durch Protokollierung und Konsolenausgabe überwacht werden.

3.6.2 Überwachung der Aufgabenausführung

Mithilfe der Protokollierungsfunktion und der entsprechenden Überwachungswerkzeuge von CrewAI werden der Ausführungsstatus der Aufgaben, die Arbeitsschritte der Agenten, die Ausgabeergebnisse und andere Informationen genau überwacht. Durch die detaillierte Überwachung können Probleme, die während der Aufgabenausführung auftreten können, wie z. B. Fehler bei der Agentenausführung, Zeitüberschreitungen bei der Aufgabenausführung, übermäßiger Ressourcenverbrauch usw., rechtzeitig erkannt werden.

3.6.3 Verarbeitung der Ergebnisse der Aufgabenausführung

Nach Abschluss der Aufgabenausführung wird die Ausgabe der Aufgabe erfasst und verarbeitet. Auf der Grundlage des erwarteten Ausgabeformats der Aufgabe werden die Ergebnisse geparst und analysiert, um wertvolle Informationen für die spätere Entscheidungsfindung oder Weiterverarbeitung zu gewinnen. Gleichzeitig werden auf der Grundlage der Ergebnisse der Aufgabenausführung und der bei der Überwachung festgestellten Probleme die erforderlichen Anpassungen und Optimierungen an der Konfiguration des Agenten, der Aufgabe oder des Teams vorgenommen, um die Leistung und Genauigkeit des Systems zu verbessern.

4) Fallstudie: Anwendung von CrewAI in einem realen Projekt

4.1 Intelligentes Kundenservicesystem

4.1.1 Systemarchitektur und Agenten-Rollen

In dem intelligenten Kundendienstsystem werden mehrere Agenten eingesetzt, um den Arbeitsablauf des menschlichen Kundendienstes zu simulieren. Dazu gehören der Agent für die Entgegennahme von Benutzerfragen, der Agent für die Klassifizierung von Fragen, der Agent für Informationsabfragen, der Agent für die Generierung von Antworten und der Agent für die Überprüfung von Antworten. Der Agent für die Entgegennahme von Benutzerproblemen ist für die Entgegennahme des Beratungsproblems des Benutzers verantwortlich und leitet es an den Problemklassifizierungsagenten weiter; der Problemklassifizierungsagent weist es je nach Art des Problems dem entsprechenden Informationsabfrageagenten zu; der Informationsabfrageagent verwendet verschiedene Tools (z. B. Wissensdatenbankabfragetool, Datenbanksuchtool usw.), um die relevanten Informationen zu finden; der Antwortgenerierungsagent generiert die vorläufige Antwort entsprechend den abgefragten Informationen; der Antwortprüfungsagent prüft und optimiert die generierte Antwort, um sicherzustellen, dass die Antwort kein Problem darstellt. Der Antwortgenerierungsagent generiert vorläufige Antworten auf der Grundlage der abgefragten Informationen; der Antwortprüfungsagent überprüft und optimiert die generierten Antworten, um die Richtigkeit und Qualität der Antworten sicherzustellen.

4.1.2 Aufgabenablauf und Zusammenarbeit

Wenn ein Benutzer eine Frage stellt, nimmt der Agent für die Entgegennahme von Benutzerfragen die Frage auf und leitet sie an den Agent für die Fragenklassifizierung weiter. Der Problemklassifizierungsagent klassifiziert das Problem mit Hilfe von Schlüsselwortanalyse, semantischem Verständnis und anderen Techniken in verschiedene Typen wie allgemeine Probleme, technische Probleme, Kundendienstprobleme usw. Auf der Grundlage des Klassifizierungsergebnisses wird das Problem dann dem entsprechenden Informationsabfrageagenten zugewiesen. Der Informationsabfrage-Agent sucht je nach Art des Problems nach relevanten Informationen in der Wissensbasis, in der Datenbank oder in externen Ressourcen. Bei allgemeinen Problemen werden die Antworten beispielsweise direkt aus der Wissensdatenbank abgerufen; bei technischen Problemen kann es erforderlich sein, technische Dokumente abzufragen oder mit technischen Expertensystemen zu interagieren. Auf der Grundlage der abgefragten Informationen wendet der Agent zur Erzeugung von Antworten Techniken zur Erzeugung natürlicher Sprache an, um die Informationen in klare und verständliche Antworten umzuwandeln. Der Agent zur Überprüfung der Antworten führt schließlich eine Grammatikprüfung, eine logische Überprüfung und eine Bewertung der Höflichkeit der Antworten durch und nimmt gegebenenfalls weitere Optimierungen und Änderungen vor. Während des gesamten Prozesses arbeiten die Agenten durch den Kommunikationsmechanismus und die Aufgabenplanung von CrewAI effizient zusammen, um den Benutzern schnelle und präzise Antworten zu liefern.

4.2 Intelligenter Assistent zur Erstellung von Inhalten

4.2.1 Agentenfunktionen und Arbeitsteilung

Der intelligente Assistent für die Erstellung von Inhalten besteht aus mehreren Agenten, die zusammenarbeiten, darunter ein Agent für die Themenplanung, ein Agent für die Materialsammlung, ein Agent für die Erstellung von Inhalten und ein Agent für die Verschönerung von Inhalten. Der Themenplanungs-Agent ist für die Bestimmung des Erstellungsthemas auf der Grundlage von Nutzerbedürfnissen oder Markttrends verantwortlich; der Materialsammlungs-Agent sammelt relevante Materialien wie Artikel, Bilder, Daten usw. mithilfe von Web-Suchwerkzeugen und Datenbankabfrage-Tools; der Inhaltserstellungs-Agent erstellt den ersten Entwurf auf der Grundlage des Themas und der Materialien mithilfe von Algorithmen zur Erzeugung natürlicher Sprache; und der Inhaltsverbesserungs-Agent führt grammatikalische Optimierungen, Stilanpassungen und logische Kombinationen des ersten Entwurfs durch, um die Anforderungen und Erwartungen der Nutzer besser zu erfüllen. Der Content-Touch-up-Agent optimiert die Grammatik, den Stil und die Logik des ersten Entwurfs, um ihn besser auf die Anforderungen und Erwartungen der Nutzer abzustimmen.

4.2.2 Kreative Prozesse und Synergiemechanismen

Wenn ein Benutzer eine Anfrage zur Erstellung stellt (z. B. einen Artikel über [ein bestimmtes Thema] zu schreiben), analysiert und plant der Themenplanungsagent zunächst das Thema und legt den allgemeinen Rahmen und die wichtigsten Inhalte des Artikels fest. Anschließend sucht der Agent für die Materialsammlung nach relevanten Artikeln, Forschungsberichten, Fällen und anderen Materialien im Internet, die dem Thema entsprechen, organisiert diese und leitet sie an den Agenten für die Inhaltserstellung weiter. Der Agent für die Inhaltserstellung erstellt den ersten Entwurf des Artikels auf der Grundlage des Themenrahmens und der gesammelten Materialien unter Verwendung von Deep-Learning-Modellen. So kann er beispielsweise Absatzinhalte generieren und die Artikelstruktur auf der Grundlage der Ideen und Daten im Material organisieren. Schließlich führt der Agent für die Inhaltsverbesserung eine umfassende Überarbeitung des ersten Entwurfs durch, indem er den Artikel auf grammatikalische Fehler hin überprüft, die Wortwahl optimiert und die Satzstruktur anpasst, um ihn flüssiger und attraktiver zu gestalten. Während des gesamten Erstellungsprozesses tauschen die Agenten Informationen und Feedback in Echtzeit über die Kommunikations- und Kollaborationsmechanismen von CrewAI aus, um den reibungslosen Ablauf der Erstellungsarbeiten zu gewährleisten.

4.3 Intelligente Systeme für Investitionsentscheidungen

4.3.1 Systemzusammensetzung und Zuständigkeiten der Agenten

Das intelligente System für Investitionsentscheidungen besteht aus einem Agenten für die Sammlung von Marktdaten, einem Agenten für die Datenanalyse, einem Agenten für die Risikobewertung, einem Agenten für die Empfehlung von Investitionsstrategien und einem Agenten für die Portfoliooptimierung. Der Agent für die Sammlung von Marktdaten ist verantwortlich für das Sammeln von Echtzeit-Marktdaten aus verschiedenen Finanzdatenquellen (z. B. Börsen, Finanznachrichten-Websites, Finanzdatenbanken usw.), einschließlich Aktienkursen, Umsätzen, makroökonomischen Indikatoren usw.; der Agent für die Datenanalyse bereinigt, organisiert und analysiert die gesammelten Daten, um wertvolle Informationen zu extrahieren, wie z. B. Markttrends, Branchendynamik, finanzielle Bedingungen von Unternehmen usw.; der Agent für die Risikobewertung bewertet das Risikoniveau der Anlageziele unter Verwendung eines Risikobewertungsmodells auf der Grundlage der Ergebnisse der Datenanalyse; der Agent für die Empfehlung von Anlagestrategien bewertet das Risikoniveau der Anlageziele unter Verwendung eines Risikobewertungsmodells; und der Agent für die Empfehlung von Anlagestrategien bewertet das Risikoniveau der Anlageziele auf der Grundlage der Datenanalyseergebnisse. Auf der Grundlage der Datenanalyseergebnisse wendet der Risikobewertungsagent das Risikobewertungsmodell an, um das Risikoniveau des Anlageziels zu bewerten; der Anlagestrategie-Empfehlungsagent empfiehlt geeignete Anlagestrategien, wie z. B. langfristige Anlagen, kurzfristige Spekulationen, diversifizierte Anlagen usw., auf der Grundlage der Marktbedingungen und der Risikopräferenzen der Anleger; der Portfolio-Optimierungsagent optimiert das Anlageportfolio auf der Grundlage der empfohlenen Anlagestrategien und bestimmt das optimale Vermögensallokationsverhältnis.

4.3.2 Entscheidungsfindungsprozesse und Formen der Zusammenarbeit

Agenten für die Erhebung von Marktdaten sammeln kontinuierlich aktuelle Marktdaten und leiten sie an Agenten für die Datenanalyse weiter. Der Datenanalyse-Agent führt eine eingehende Analyse der Daten durch, z. B. die Vorhersage von Aktienkursbewegungen durch technische Analysemethoden und die Bewertung des inneren Wertes von Unternehmen durch Fundamentalanalyse. Der Agent für Risikobewertung bewertet das Risikoniveau verschiedener Anlageziele auf der Grundlage der Ergebnisse der Datenanalyse, kombiniert mit historischen Daten und Risikomodellen. Der Agent für die Empfehlung von Anlagestrategien empfiehlt den Anlegern personalisierte Anlagestrategien, wobei er Markttrends, Ergebnisse der Risikobewertung und die Risikobereitschaft der Anleger berücksichtigt. So kann er beispielsweise Anlegern mit höherer Risikobereitschaft einen höheren Aktienanteil empfehlen, während er konservativen Anlegern ein robusteres Anleihen- und Fondsportfolio empfehlen kann. Schließlich wendet der Portfolio-Optimierungsagent einen mathematischen Optimierungsalgorithmus auf der Grundlage der empfohlenen Anlagestrategien an, um die optimale Portfolioallokation zur Maximierung der Erträge und Minimierung des Risikos zu ermitteln. Während des gesamten Entscheidungsprozesses arbeiten die einzelnen Agenten eng zusammen, um einen effizienten Datenfluss und eine wissenschaftliche Entscheidungsfindung durch die Prozessorchestrierung und den Kommunikationsmechanismus von CrewAI zu erreichen.


Inhalt3
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " Leitfaden für den Aufbau von Multiagentensystemen auf der Grundlage von CrewAI

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)