1. einleitung
Im Bereich der künstlichen Intelligenz wird das Multiagentensystem allmählich zu einer Schlüsseltechnologie für die Lösung komplexer Probleme und die effiziente Zusammenarbeit. CrewAI, ein leistungsfähiges Multiagentenkollaborationswerkzeug, bietet Entwicklern eine bequeme Möglichkeit, intelligente Kollaborationssysteme aufzubauen. In diesem Beitrag stellen wir vor, wie man ein intelligentes Kollaborationssystem auf Basis von CrewAI Aufbau des Multiagentensystems.
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 Eigenschaften des Proxys
- 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 beispielsweise darin bestehen, verwertbare Erkenntnisse zur Unterstützung von Geschäftsentscheidungen zu gewinnen.
- 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 Anruffunktion (fakultativ) LLM: Gibt das Sprachmodell an, das diesen Agentenwerkzeugaufruf verarbeitet; überschreibt den Teamfunktionsaufruf LLM, falls übergeben; Standardwert ist
None
. 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
None
. 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
None
zeigt an, dass es keine maximale Ausführungszeit gibt. Dieses Attribut kann verwendet werden, um die Ausführungsdauer einer Aufgabe zu kontrollieren, um zu verhindern, dass sie lange Zeit Ressourcen beansprucht. - Detaillierter Modus (optional) : Setzen Sie ihn auf
True
Konfigurierbarer interner Logger liefert detaillierte Ausführungsprotokolle zur Fehlersuche und Überwachung, Standardwert istFalse
. 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
True
. 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.
step_callback
. Entwickler können mit dieser Callback-Funktion eine eigene Überwachungs- und Verarbeitungslogik implementieren. - Cache (optional) Cache: Gibt an, ob der Proxy den Tool-Use-Cache verwendet, mit einem Standardwert von
True
. 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="数据分析师",
goal="提取可操作的见解",
backstory="""您是一家大公司的数据分析师。
您负责分析数据并为业务提供见解。
您目前正在进行一个项目,分析我们营销活动的表现。""",
tools=[my_tool1, my_tool2], # 可选,默认为空列表
llm=my_llm, # 可选
function_calling_llm=my_llm, # 可选
max_iter=15, # 可选
max_rpm=None, # 可选
verbose=True, # 可选
allow_delegation=True, # 可选
step_callback=my_intermediate_step_callback, # 可选
cache=True # 可选
)
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 verantwortlichen 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 das Ziel und das gewünschte Ergebnis 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, sind zu spezifizieren, die Abhängigkeiten zwischen den Aufgaben zu klären und die effektive 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
输出 JSON
vielleicht输出 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, gehen wir näher darauf ein, wie man eine Aufgabe mit dem Tool erstellt. Unten finden Sie ein Beispiel:
import os
os.environ["OPENAI_API_KEY"] = "Your Key"
os.environ["SERPER_API_KEY"] = "Your Key" # serper.dev API key
from crewai import Agent, Task, Crew
from crewai_tools import SerperDevTool
research_agent = Agent(
role="研究员",
goal="查找并总结最新的人工智能新闻",
backstory="""您是一家大公司的研究员。
您负责分析数据并为业务提供见解。""",
verbose=True
)
search_tool = SerperDevTool()
task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task],
verbose=2
)
result = crew.kickoff()
print(result)
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
task = Task(
description="查找并总结有关人工智能的最新和最相关新闻",
agent=sales_agent
)
Aufgabenzuweisungen können direkt durch Angabe eines 代理
Oder lassen 分层
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 上下文
Attribut Vervollständigung:
research_ai_task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
async_execution=True,
agent=research_agent,
tools=[search_tool]
)
research_ops_task = Task(
description="查找并总结最新的人工智能运营新闻",
expected_output="对前 5 条最重要的人工智能运营新闻进行项目符号列表总结",
async_execution=True,
agent=research_agent,
tools=[search_tool]
)
write_blog_task = Task(
description="撰写一篇关于人工智能重要性及其最新新闻的完整博客文章",
expected_output="4 段长的完整博客文章",
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 上下文
Attribut in einer zukünftigen Aufgabe definiert ist, sollte sie auf den Abschluss der Ausgabe der asynchronen Aufgabe warten.
list_ideas = Task(
description="探索有关人工智能文章的 5 个有趣想法。",
expected_output="一份包含 5 个文章想法的项目符号列表。",
agent=researcher,
async_execution=True # 将以异步方式执行
)
list_important_history = Task(
description="研究人工智能的历史,并告诉我 5 个最重要的事件。",
expected_output="包含 5 个重要事件的项目符号列表。",
agent=researcher,
async_execution=True # 将以异步方式执行
)
write_article = Task(
description="撰写一篇关于人工智能、其历史和有趣想法的文章。",
expected_output="一篇关于人工智能的 4 段文章。",
agent=writer,
context=[list_ideas, list_important_history] # 将等待两个任务的输出完成
)
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):
# 任务完成后执行某些操作
# 例如:向经理发送电子邮件
print(f"""
任务完成!
任务:{output.description}
输出:{output.raw_output}
""")
research_task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_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 output
Attribut greift auf die Ausgabe einer bestimmten Aufgabe zu:
task1 = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task1, task2, task3],
verbose=2
)
result = crew.kickoff()
print(f"""
任务完成!
任务:{task1.output.description}
输出:{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 und so den reibungslosen Betrieb des Systems gewährleistet.
- Caching-Mechanismus Intelligente Zwischenspeicherung, um die Leistung zu optimieren und redundante Vorgänge zu reduzieren. Entwickler können auch die
cache_function
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:
import os
from crewai import Agent, Task, Crew
# 导入 CrewAI 工具
from crewai_tools import (
DirectoryReadTool,
FileReadTool,
SerperDevTool,
WebsiteSearchTool
)
# 设置 API 密钥
os.environ["SERPER_API_KEY"] = "Your Key" # serper.dev API 密钥
os.environ["OPENAI_API_KEY"] = "Your Key"
# 实例化工具
docs_tool = DirectoryReadTool(directory='./blog-posts')
file_tool = FileReadTool()
search_tool = SerperDevTool()
web_rag_tool = WebsiteSearchTool()
# 创建代理
researcher = Agent(
role="市场研究分析师",
goal="提供关于人工智能行业最新市场分析",
backstory="一位对市场趋势敏锐的专家分析师。",
tools=[search_tool, web_rag_tool],
verbose=True
)
writer = Agent(
role="内容撰写人员",
goal="撰写有关人工智能行业的引人入胜的博客文章",
backstory="一位对技术充满激情的熟练撰稿人。",
tools=[docs_tool, file_tool],
verbose=True
)
# 定义任务
research = Task(
description="研究人工智能行业的最新趋势并提供摘要。",
expected_output="关于人工智能行业前三个热门发展的摘要,并对其重要性提供独特视角。",
agent=researcher
)
write = Task(
description="根据研究分析师的摘要撰写一篇引人入胜的博客文章。从目录中最新的博客文章中汲取灵感。",
expected_output="一篇以 markdown 格式排版的四段博客文章,内容引人入胜、信息丰富且易懂,避免使用复杂术语。",
agent=writer,
output_file='blog-posts/new_post.md' # 最终的博客文章将保存在此处
)
# 组建团队
crew = Crew(
agents=[researcher, writer],
tasks=[research, write],
verbose=2
)
# 执行任务
crew.kickoff()
2.3.4 Eigene Tools erstellen
Das Toolkit muss zuerst installiert werden:
pip install 'crewai[tools]'
- Unterklassifizierung
BaseTool
durch VererbungBaseTool
Klasse können Entwickler benutzerdefinierte Werkzeuge erstellen. Sie müssen den Namen und die Beschreibung des Werkzeugs definieren und die_run
Methode, um die spezifische Funktionslogik des Werkzeugs zu definieren. Beispiel:
from crewai_tools import BaseTool
class MyCustomTool(BaseTool):
name: str = "我的工具名称"
description: str = "清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"
def _run(self, argument: str) -> str:
# 实现在这里
return "自定义工具的结果"
- nutzen.
tool
Tapezierer : Verwendungtool
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 import tool
@tool("我的工具名称")
def my_tool(question: str) -> str:
"""清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"""
# 函数逻辑在这里
return "您的自定义工具的结果"
- Benutzerdefinierte Caching-Mechanismen Das Tool hat die Möglichkeit, Folgendes zu realisieren
cache_function
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 import tool
@tool
def multiplication_tool(first_number: int, second_number: int) -> str:
"""当您需要将两个数字相乘时有用。"""
return first_number * second_number
def cache_func(args, result):
# 在这种情况下,仅在结果是 2 的倍数时才缓存结果
cache = result % 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 import Agent
from langchain.agents import Tool
from langchain.utilities import GoogleSerperAPIWrapper
# 设置 API 密钥
os.environ["SERPER_API_KEY"] = "Your Key"
search = GoogleSerperAPIWrapper()
# 创建并将搜索工具分配给代理
serper_tool = Tool(
name="中级答案",
func=search.run,
description="用于基于搜索的查询的工具"
)
agent = Agent(
role="研究分析师",
goal="提供最新的市场分析",
backstory="一位对市场趋势敏锐的专家分析师。",
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 dem 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:
from crewai import Crew, Process
from langchain_openai import ChatOpenAI
# 顺序流程
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.sequential
)
# 分级流程,确保提供 manager_llm
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.hierarchical,
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 Gesamtproduktivität des Teams 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 deren 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 (
output_json
), das pydantische Modell (output_pydantic
) und die Dateiausgabe (output_file
), 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 festlegen.
- 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
vielleichtDict[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, vor allem für In-Memory-Funktionen, wirkt sich darauf aus, wie die 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.
step_callback
. - 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 sich ergänzenden Rollen und Werkzeugen zusammengebracht, Aufgaben zugewiesen und Prozesse ausgewählt werden können:
from crewai import Crew, Agent, Task, Process
from langchain_community.tools import DuckDuckGoSearchRun
# 定义具有特定角色和工具的代理
researcher = Agent(
role="高级研究分析师",
goal="发现创新的人工智能技术",
tools=[DuckDuckGoSearchRun()]
)
writer = Agent(
role="内容撰稿人",
goal="撰写有关人工智能发现的引人入胜的文章",
verbose=True
)
# 为代理创建任务
research_task = Task(
description="识别突破性人工智能技术",
agent=researcher
)
write_article_task = Task(
description="撰写关于最新人工智能技术的文章",
agent=writer
)
# 使用顺序流程组装团队
my_crew = Crew(
agents=[researcher, writer],
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_llm
Es eignet sich für die Verwaltung und Zuweisung komplexer Aufgaben und gewährleistet eine effiziente Aufgabenausführung und Qualitätskontrolle. - Start-Team : Verwendung
kickoff()
Methode initiiert einen Team-Workflow, startet die Ausführung der Aufgabe gemäß dem definierten Prozess und erhält die Ergebnisse der Aufgabenausführung. Beispiel:
# 启动团队的任务执行
result = my_crew.kickoff()
print(result)
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 früheren 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 werden 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. 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 geben, 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 der riesigen Informationsmengen zu verbessern, um so effektiver auf komplexe Aufgaben und unterschiedliche Problemszenarien zu reagieren.
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 memory=True
können Sie die Erinnerungsfunktion aktivieren, um Ihr Team mit leistungsstarken Erinnerungsfunktionen auszustatten. Memory verwendet standardmäßig OpenAI Embeddings, aber Entwickler können auch die embedder
setzen Sie ihn auf ein anderes Modell wie Google AI, Azure OpenAI, GPT4ALL, Vertex AI oder Cohere usw., um den Anforderungen verschiedener Szenarien gerecht zu werden. Beispiel:
from crewai import Crew, Agent, Task, Process
# 使用具有记忆功能的团队,采用默认的 OpenAI Embeddings
my_crew = Crew(
agents=[...],
tasks=[...],
process=Process.sequential,
memory=True,
verbose=True
)
# 使用具有记忆功能的团队,切换为 Google AI 嵌入
my_crew = Crew(
agents=[...],
tasks=[...],
process=Process.sequential,
memory=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 ist das Team in der Lage, sich schrittweise an neue Informationen und Aufgabenanforderungen anzupassen und die Methoden und Strategien zur Aufgabenbewältigung kontinuierlich zu 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 den Benutzern 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 einen reibungslosen Ablauf zu gewährleisten. Verwenden Sie zum Beispiel den Befehl pip, um CrewAI und das dazugehörige Toolkit zu installieren:pip install crewai[tools]
und in Übereinstimmung mit Ollama Die Installationsanleitung für das
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" mit dem Ziel definiert werden, "relevante Informationen in einem bestimmten Bereich zu sammeln"; oder um einen Agenten zu schaffen, der sich auf die Datenanalyse konzentriert, lautet die Rolle "Datenanalyst" mit dem Ziel, "eine eingehende Analyse der gesammelten Daten durchzuführen, um 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, z. B. die Wahl des geeigneten Sprachmodells, das Hinzufügen der erforderlichen Tools, die Festlegung der maximalen Anzahl von Iterationen und die Caching-Strategie. 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 Attribute wie die maximale Anzahl von Iterationen an die Komplexität der Analyseaufgabe anpassen.
3.2.3 Hintergrundgeschichte des Agenten entwickeln (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 Datenerfassung tätig, kennen eine Vielzahl von Informationsquellen gut und sind mit einer Reihe von Suchtechniken und -tools vertraut. Diese Aufgabe soll dem Team dabei helfen, die neuesten Informationen über [bestimmtes Gebiet] zu beschaffen und 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 letzten Monat und extrahieren Sie die wichtigsten Kommentare und Vorschläge", "Prognostizieren Sie Trends in [Branchenname] in den nächsten drei Monaten auf der Grundlage von Marktdaten", 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 eingestellt 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 WebsiteSearchTool
Die FileReadTool
Im 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 DirectorySearchTool
um 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 Anfragerate, die Spracheinstellungen, die Speicher- und Cache-Konfiguration 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 kickoff()
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 dafür verantwortlich, das Beratungsproblem des Benutzers entgegenzunehmen und es an den Problemklassifizierungsagenten weiterzuleiten; der Problemklassifizierungsagent ordnet 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 erzeugt vorläufige Antworten auf der Grundlage der abgefragten Informationen; der Antwortprüfungsagent überprüft und optimiert die erzeugten 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, Probleme nach dem Kauf 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 genaue 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 des Anlageziels unter Verwendung eines Risikobewertungsmodells auf der Grundlage der Ergebnisse der Datenanalyse; der Agent für die Empfehlung von Anlagestrategien bewertet das Risikoniveau des Anlageziels unter Verwendung eines Risikobewertungsmodells; und der Agent für die Empfehlung von Anlagestrategien bewertet das Risikoniveau des Anlageziels auf der Grundlage der Datenanalyseergebnisse. Auf der Grundlage der Datenanalyseergebnisse wendet der Risikobewertungsagent das Risikobewertungsmodell an, um das Risikoniveau der Anlageziele zu bewerten; der Investitionsstrategie-Empfehlungsagent empfiehlt geeignete Anlagestrategien, wie z. B. langfristige Investitionen, kurzfristige Spekulationen, diversifizierte Investitionen 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 Verhältnis der Vermögensverteilung.
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 eines Unternehmens 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.