AI-Workflow

AI Workflow ist ein System, das mehrere KI-Modellaufrufe, Tool-Nutzung und Datenverarbeitungsschritte geordnet in einer automatisierten Pipeline kombiniert.

Ein einzelner LLM-Aufruf kann Fragen beantworten, aber reale Aufgaben erfordern oft: das Web durchsuchen → Informationen extrahieren → analysieren → einen Bericht schreiben → eine E-Mail senden. Bei AI Workflow geht es darum, diese Schritte zu verketten, damit die KI die gesamte Aufgabe automatisch erledigen kann, statt nur einen einzelnen Satz zu beantworten.

Eine intuitive Analogie

Stellen Sie sich eine Montagelinie vor:

ModeAnalogieBeschreibung
Einzelner LLM-AufrufWie ein HandwerkerGeben Sie ihm ein Stück Eisen, und er gibt Ihnen ein Schwert zurück
AI-WorkflowWie eine ganze MontagelinieRohstoffe gehen hinein, durchlaufen automatisch Schmelzen → Schmieden → Abschrecken → Polieren → Verpacken, und fertige Produkte kommen heraus

Jeder Schritt kann ein KI-Modell, eine Codefunktion, eine externe API oder ein menschlicher Prüfknoten sein.

Evolution von Frage und Antwort zu Aktion

Three levels of AI capability Level 1: Single Q&A Q & A User input → LLM → Output Example: "Help me write a poem" Limitation: single-step only Cannot complete complex tasks → Level 2: Chain — chained calls Chain Step A → Step B → Step C Example: Translate → Summarize → Polish Limitation: fixed flow Cannot make dynamic decisions → Level 3: AI Workflow With Agent Agent Perceive → Plan → Tool calling → Reflect → Iterate in a loop Example: Research competitors and generate a report Dynamic decision-making, can complete open-ended tasks AI Workflow is the main paradigm for deploying AI applications today, and it is also the implementation foundation of AI Agents.

Warum AI Workflow benötigt wird

Einschränkungen einzelner Aufrufe

Ein einzelner LLM-Aufruf kann sehr wenig erreichen:

  • Begrenztes Kontextfenster: kann nicht ein ganzes Buch auf einmal lesen
  • Kein Zugriff auf Echtzeitinformationen: Trainingsdaten haben einen Stichtag
  • Kann keine Aktionen ausführen: kann nicht tatsächlich E-Mails senden, Code schreiben und ausführen
  • Kann sich nicht selbst validieren: kann Fehler nach ihrer Generierung nicht erkennen und korrigieren
  • Komplexe Aufgaben sind fehleranfällig: zu viel in einem Schritt zu tun führt zu Qualitätsverschlechterung

Fünf Kernprobleme, die AI Workflow löst

Five core problems solved by AI Workflow Task decomposition Break down complex tasks into multiple small steps Each step focuses on one thing Write report → Research+ Outline + Writing + Review Improve accuracy Reduce per-step pressure Tool integration Call search, databases Code executor, API and other external capabilities Search engines, calculators Databases, email services Break through knowledge boundaries Connect to the real world Iterative reflection AI can examine itself After output, when issues are found Retry and correct Generate code → Run → Error → Fix Automatic error correction Quality is more guaranteed Parallel processing Multiple subtasks simultaneously Execute without queuing Waiting for the previous step to complete Simultaneously analyze finance technology, market — three dimensions Greatly improve efficiency Save runtime Observability The input and output of each step Can all be recorded Monitoring and debugging Logs, tracing Error localization Production-grade reliability Facilitates troubleshooting

Kernkomponenten

Ein vollständiger AI Workflow besteht aus den folgenden Kernelementen.

AI Workflow core architecture components AI Workflow Orchestration engine LLM/Model GPT-4、Claude Gemini, local models The brain of the Workflow Tools Search, code execution Databases, external APIs Interact with the outside Memory Short-term: conversation history Long-term: vector database Cross-session persistence State Task progress, intermediate results, context passing Like a relay baton Human intervention Review, feedback Correction, authorization Pause for high-risk operations Routing/Condition Decide based on conditions Which execution path to take Branching, looping, jumping Input/Output Text, images, files Structured data All components are orchestrated and coordinated by the orchestration engine (LangChain / LlamaIndex / Dify, etc.)

Detaillierte Erklärung jeder Komponente

LLM (Large Language Model)- Das "Gehirn" des Workflows, verantwortlich für Reasoning, Generierung und Entscheidungsfindung. Häufig verwendet: GPT-4o, Claude 3.5, Gemini 1.5, lokales Llama 3.

Werkzeuge- Schnittstellen, die es KI ermöglichen, mit der Außenwelt zu interagieren, einschließlich: Suchmaschinen (Tavily, Serper, Bing), Code-Ausführungsumgebungen (Python REPL, Sandbox-Umgebungen), Datenbankabfragen (SQL, Vector DB), externe APIs (Wetter, Aktien, E-Mail, Kalender), Dateioperationen (Lesen/Schreiben, PDF/Excel parsen).

Gedächtnis- Kurzzeitgedächtnis speichert den Gesprächsverlauf der aktuellen Sitzung (im Prompt gespeichert); Langzeitgedächtnis erreicht sitzungsübergreifende persistente Speicherung über Vektordatenbank + RAG; Arbeitsgedächtnis hält den Zwischenzustand während der Aufgabenausführung aufrecht.

Zustand- Der Informationsträger, der zwischen Schritten einer Aufgabe weitergegeben wird, wie ein Staffelstab; jeder Schritt kann das Ergebnis des vorherigen Schritts lesen und neue Ergebnisse schreiben.

Router / Bedingung (Router)- Bestimmt anhand der Ausgabe des vorherigen Schritts dynamisch den nächsten Schritt und ermöglicht komplexe Ablaufsteuerung wie Verzweigung, Schleife und Sprung.

Mensch in der Schleife- Pausiert an Schlüsselknoten, um auf menschliche Bestätigung zu warten; geeignet für Hochrisiko-Operationen (z. B. Löschen von Daten, Senden von E-Mails, Finanzoperationen).


Sechs häufige Workflow-Muster

Im Folgenden werden die sechs häufigsten Entwurfsmuster in AI-Workflow vorgestellt, von einfach bis komplex, geeignet für unterschiedliche Szenarien.

Muster 1: Sequenzielle Kette

Das grundlegendste Muster, bei dem die Schritte A → B → C linear ausgeführt werden und die Ausgabe des vorherigen Schritts die Eingabe des nächsten ist.

Pattern 1: Sequential Chain Input User's original English article Step 1 Translate English → Chinese GPT-4o Step 2 Summarize Extract core points Within 100 characters Step 3 Polish Optimize expression Add title Output Refined Chinese summary Including title and key points Each step's output automatically becomes the input of the next step, flowing linearly with clear logic
DimensionBeschreibung
Anwendbare SzenarienPipelines zur Dokumentverarbeitung, Inhaltsgenerierung, Datentransformation
VorteileEinfach, vorhersehbar
NachteileStarr, kann nicht dynamisch anhand des Inhalts angepasst werden

Muster 2: Bedingtes Routing

Wählt dynamisch unterschiedliche nachfolgende Pfade basierend auf dem Ausgabeinhalt eines bestimmten Schritts aus.

Pattern 2: Conditional Routing User question "How to use Python to sort a list?" Intent classification Router Code problem → Code generation Agent Run code to verify Return result + explanation Knowledge problem → RAG knowledge base retrieval Retrieve relevant documents Generate an answer based on the documents Real-time problem → Online search Search for the latest information Synthesize into an answer The routing node dispatches tasks to the most appropriate processing branch based on the question type
DimensionBeschreibung
Anwendbare SzenarienIntelligenter Kundenservice, multifunktionale Assistenten, Klassifizierung und Verarbeitung von Fragen
VorteileFlexibel, hohe Ressourcennutzung
NachteileDie Routing-Logik erfordert sorgfältiges Design; Klassifizierungsfehler wirken sich auf den gesamten Prozess aus

Muster 3: Parallele Ausführung

Mehrere Teilaufgaben laufen gleichzeitig, und die Ergebnisse werden am Ende zusammengeführt.

DimensionBeschreibung
Anwendbare SzenarienMehrdimensionale Analyse, Batch-Verarbeitung, unabhängige Teilaufgaben
VorteileDeutlich verbesserte Geschwindigkeit
NachteileErfordert den Umgang mit Nebenläufigkeitskontrolle und Logik zum Zusammenführen von Ergebnissen

Muster 4: ReAct-Schleife (Reason + Act)

Die KI überlegt zuerst, was zu tun ist, handelt dann, indem sie Tools aufruft, und überlegt weiter basierend auf den Ergebnissen, in einer Schleife, bis die Aufgabe abgeschlossen ist. Dies ist das Kernmuster von AI Agents.

Pattern 4: ReAct Loop (Reason → Act → Observe → Repeat) Task Query Beijing today's weather and recommend outfits Thought (thinking) I need to first obtain Beijing real-time weather Should call the weather API Action (acting) Call weather tool get_weather( city="Beijing") Observation Return: sunny, temperature 18°C, light breeze (tool execution result) Loop continues reasoning Thought (Round 2) The weather is known, now we can directly provide outfit suggestions Final Answer Beijing is sunny today, 18°C; it is recommended to wear a light jacket Long pants + sneakers; you may bring a thin jacket as backup. (Task complete, exit loop) In each round, 'Thought → Action → Observation' continuously accumulates information until the LLM believes it can make a final answer.
DimensionBeschreibung
Anwendbare SzenarienAI Agent, Ausführung komplexer Aufgaben, offene Problemlösung
VorteileDynamisch und flexibel, kann unbekannte Situationen bewältigen
NachteileDie Anzahl der Schleifendurchläufe ist nicht kontrollierbar, und es muss eine maximale Schrittzahl festgelegt werden, um eine Endlosschleife zu verhindern.

Muster 5: Planen & Ausführen

Lassen Sie zuerst das LLM einen vollständigen Plan erstellen, und führen Sie dann Schritt für Schritt gemäß dem Plan aus. Der Unterschied zu ReAct ist 'erst klar denken, dann handeln'.

Mode 5: Plan & Execute (plan first, then execute) Task objective Research competitors and write an analysis report Planner Planning 1 Collect competitor information 2 Extract key features 3 Compare and analyze 4 Write the report Execute 1 Search engine Call x3 Execute 2+3 LLM extraction Comparative analysis Execute 4 → Output Generate Markdown Competitive analysis report The Planner uses only one LLM call to formulate a global plan, and subsequent steps are strictly executed according to the plan.

Muster 6: Multi-Agent-Zusammenarbeit

Mehrere spezialisierte Agenten arbeiten zusammen, und jeder Agent hat seine eigene Rolle und sein eigenes Werkzeugset.

Mode 6: Multi-Agent Collaboration (Multi-Agent) Coordinator Agent Receives user tasks, assigns them to specialized Agents, and aggregates results. Researcher Agent Tools: search engine, web scraping Responsibilities: collect information, organize facts Output: structured information summary ↑ Report to coordinator Analyst Agent Tools: calculator, Python Responsibilities: data analysis, chart generation Output: analysis conclusions ↑ Report to coordinator Writer Agent Tools: document templates Responsibilities: writing and polishing reports Output: final document ↑ Report to coordinator Reviewer Agent Tools: fact-checking tools Responsibilities: verify accuracy Output: review comments ↑ Report to coordinator Final result → User Each Agent specializes in one skill; the coordinator manages the overall situation. Division of labor and cooperation is far more efficient than a single Agent.
DimensionBeschreibung
Anwendbare SzenarienKomplexe Softwareentwicklung, Unterstützung bei der Forschung, Unternehmensautomatisierung
VorteileGezielte Spezialisierung, höhere Qualität, einfache Skalierung
NachteileHohe Systemkomplexität; die Kommunikation zwischen Agenten erfordert sorgfältiges Design

Vergleich gängiger Frameworks und Tools

Im Folgenden finden Sie einen umfassenden Vergleich der gängigsten AI-Workflow-Frameworks, damit Sie je nach Ihrer eigenen Situation auswählen können.

AI Workflow mainstream framework comprehensive comparison Framework Positioning Core features Suitable for Learning curve Open source LangChain Python/JS Code-first framework Most complete ecosystem Full coverage of Chain, Agent, RAG Largest number of tool integrations (200+) LangSmith observability platform Developers with Python basics Need extensive custom integration Medium √ LangGraph Created by LangChain Graph-based Agent framework Stateful workflows Use "graphs" to define complex workflows Built-in state management, resumable checkpoints Supports Human-in-the-Loop Scenarios requiring complex process control Production-grade Agent applications Difficult √ LlamaIndex Python RAG-specialized framework Strongest data processing Optimal data ingestion, indexing, and retrieval Supports 80+ data source connectors Built-in advanced RAG strategies Knowledge base, document Q&A scenarios Requires integrating large amounts of unstructured data Medium √ Dify Open-source LLMOps Visual low-code Full-stack AI platform Drag-and-drop workflow building, no coding required Built-in application management, API publishing Supports self-hosting and cloud Users with non-technical backgrounds From rapid prototyping to production deployment Lowest √ n8n Automation platform General-purpose workflow automation Includes AI nodes 400+ service integrations, visual orchestration Hybrid of AI nodes + traditional automation Self-hostable, data stays in-country Requires connecting to various SaaS systems Business process automation scenarios Relatively low √ CrewAI Python Multi-Agent collaboration Role-playing framework Defines Agents by 'role' and 'task' Built-in delegation and supervision mechanisms Minimalist API, quick to learn Multi-Agent collaboration scenarios Beginners with basic Python knowledge Relatively low √ Recommendations for beginners: with coding background → LangChain / CrewAI; non-technical background → Dify / n8n

Entscheidungsbaum zur Framework-Auswahl

Wählen Sie anhand Ihrer spezifischen Situation mithilfe des folgenden Entscheidungsbaums das passende Framework aus:

你的情况是什么?
│
├─── 没有编程基础,想用可视化工具搭建
│    ├─── 主要是 AI 应用(问答、生成)→ Dify(首选)
│    └─── 需要连接 Slack/邮件等 SaaS 系统 → n8n
│
├─── 有 Python 基础,代码优先
│    ├─── 做知识库 / RAG 系统 → LlamaIndex
│    ├─── 做多 Agent 协作,想快速上手 → CrewAI
│    ├─── 需要复杂有状态流程控制 → LangGraph
│    └─── 通用场景,想要最大生态 → LangChain
│
└─── 已有明确场景,生产级要求
     ├─── 高并发、精细控制 → LangGraph + LangSmith
     └─── 企业部署、私有化 → Dify 自托管

Schnellstart: Python-Codebeispiele

Die folgenden Beispiele reichen von der einfachsten sequenziellen Kette bis zur komplexen Multi-Agent-Zusammenarbeit und zeigen, wie KI-Workflows Schritt für Schritt implementiert werden.

LangChain sequenzielle Kette

Das grundlegendste Workflow-Muster: Mehrere LLM-Aufrufschritte mit dem Pipe-Operator | verketten.

Abhängigkeitspakete installieren:

pip install langchain langchain-openai

Beispiel

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

llm = ChatOpenAI(model="gpt-4o-mini", api_key="your-api-key")

# ─── Drei Schritte definieren ────────────────────────────────────────────
# Schritt 1: Den Artikel ins Chinesische übersetzen
translate_prompt = ChatPromptTemplate.from_template(
    Übersetze den folgenden englischen Artikel ins Chinesische und bewahre die ursprüngliche Bedeutung:\n\n{article}"
)

# Schritt 2: Zusammenfassung extrahieren
summarize_prompt = ChatPromptTemplate.from_template(
    Bitte fasse den folgenden Artikel in 3 Kernpunkten zusammen, jeweils ein Satz:\n\n{translated}"
)

# Schritt 3: Titel generieren
title_prompt = ChatPromptTemplate.from_template(
    Erzeuge basierend auf der folgenden Zusammenfassung einen attraktiven chinesischen Titel (innerhalb von 15 Zeichen):\n\n{summary}"
)

parser = StrOutputParser()

# ─── Mit | Operator zu einer Pipeline verketten ─────────────────────────────────
chain = (
    {"translated": translate_prompt | llm | parser}
    | {"summary": summarize_prompt | llm | parser,
       "translated": lambda x: x["translated"]}
    | title_prompt | llm | parser
)

# ─── Ausführen ────────────────────────────────────────────────────
article = """
Künstliche Intelligenz verändert, wie wir arbeiten und leben.
Von der Automatisierung repetitiver Aufgaben bis zur Unterstützung kreativer Arbeit,
KI-Tools werden in modernen Workflows unverzichtbar...
"""


result = chain.invoke({"article": article})
print(result)
AI 正在重塑现代工作流:从自动化到创意辅助

Tool-Calling-Agent (ReAct-Modus)

ReAct ist der Kernmodus eines KI-Agents; er ermöglicht der KI, zwischen Denken und Handeln zu wechseln, bis die Aufgabe abgeschlossen ist.

Beispiel

from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_react_agent
from langchain_core.tools import tool
from langchain import hub
import requests, datetime

# ─── Tools definieren ────────────────────────────────────────────────
@tool
def get_weather(city: str) -> str:
    """Ruft die aktuellen Wetterinformationen für eine angegebene Stadt ab"""
    # In Produktion durch eine echte Wetter-API ersetzen
    mock_data = {
        "Beijing": "Sonnig, 22°C, leichte Brise",
        "Shanghai": "Bewölkt, 26°C, Luftfeuchtigkeit 75%",
        "Guangzhou": "Leichter Regen, 30°C, nimm einen Regenschirm mit",
    }
    return mock_data.get(city, f"Keine Wetterdaten für {city} verfügbar")

@tool
def search_web(query: str) -> str:
    """Sucht im Web nach Informationen und gibt eine Zusammenfassung relevanter Inhalte zurück"""
    # In Produktion Tavily-/Serper-API integrieren
    return f"Suchergebnisse für '{query}': Dies ist ein simuliertes Suchergebnis..."

@tool
def calculate(expression: str) -> str:
    """Berechnet einen mathematischen Ausdruck, z. B. '2 + 3 * 4'"""
    try:
        result = eval(expression, {"__builtins__": {}}, {})
        return str(result)
    except Exception as e:
        return f"Berechnungsfehler: {e}"

@tool
def get_date() -> str:
    """Gibt das heutige Datum zurück"""
    return datetime.date.today().strftime("%Y-%m-%d")

# ─── Agent erstellen ───────────────────────────────────────────────
tools = [get_weather, search_web, calculate, get_date]
llm   = ChatOpenAI(model="gpt-4o", temperature=0)

# Verwende den Standard-ReAct-Prompt aus dem LangChain Hub
prompt = hub.pull("hwchase17/react")

agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True,      # Gib jeden Denkschritt aus, um das Debuggen zu erleichtern
    max_iterations=8,  # Verhindere Endlosschleifen
    handle_parsing_errors=True
)

# ─── Ausführen ────────────────────────────────────────────────────
result = agent_executor.invoke({
    "input": "Wie ist das heutige Datum? Wie ist das Wetter in Peking? Wenn du draußen 5km zu Fuß gehst, verbrennst du etwa 300 Kalorien, "
             "Das Laufen der gleichen Strecke verbrennt etwa 1.6-mal so viele Kalorien wie das Gehen. Bitte berechne die beim Laufen verbrannten Kalorien."
})

print(result["output"])
# Der Agent entscheidet automatisch: zuerst get_date → get_weather("Beijing") → calculate("300*1.6")
# Kombiniere schließlich alle Informationen, um eine vollständige Antwort zu geben

Zustandsbehafteter LangGraph-Workflow

LangGraph definiert komplexe Workflows mithilfe von Graphen, wobei jeder Knoten eine Funktion ist und Kanten die Übergangslogik definieren.

Beispiel

from langgraph.graph import StateGraph, END
from langchain_openai import ChatOpenAI
from typing import TypedDict, Annotated
import operator

# ─── Zustandsstruktur definieren (zwischen Knoten übergebene Daten) ────────────────────────
class ResearchState(TypedDict):
    topic: str                             # Forschungsthema
    research_notes: str                    # Recherchenotizen
    draft: str                             # Entwurf
    review_feedback: str                   # Überprüfungsfeedback
    final_report: str                      # Abschlussbericht
    revision_count: Annotated[int, operator.add]   # Anzahl der Überarbeitungen (kumulativ)

llm = ChatOpenAI(model="gpt-4o")

# ─── Knotenfunktionen definieren ─────────────────────────────────────────────
def research_node(state: ResearchState) -> dict:
    """Knoten 1: Forschungsphase"""
    response = llm.invoke(
        f"Bitte führe eine kurze Recherche zum folgenden Thema durch und liste 5 Kernpunkte auf: {state['topic']}"
    )
    return {"research_notes": response.content}

def write_node(state: ResearchState) -> dict:
    """Knoten 2: Entwurf schreiben"""
    prompt = f"""
Thema: {state['topic']}
Recherchenotizen: {state['research_notes']}
{'Vorheriges Überprüfungsfeedback: ' + state.get('review_feedback', '') if state.get('review_feedback') else ''}

Bitte schreibe einen 300-Wörter-Entwurf eines Analyseberichts basierend auf dem obigen Inhalt.
    """

    response = llm.invoke(prompt)
    return {"draft": response.content, "revision_count": 1}

def review_node(state: ResearchState) -> dict:
    """Knoten 3: Entwurf überprüfen"""
    response = llm.invoke(
        f"Überprüfe den folgenden Bericht. Wenn die Qualität den Standard erfüllt, antworte mit 'APPROVED'; andernfalls gib konkrete Überarbeitungsvorschläge:\n\n{state['draft']}"
    )
    return {"review_feedback": response.content}

def finalize_node(state: ResearchState) -> dict:
    """Knoten 4: Abschließen"""
    return {"final_report": state["draft"]}

# ─── Routing-Funktion: Bestimme, welcher Pfad nach der Überprüfung genommen wird ─────────────────────────────
def should_revise(state: ResearchState) -> str:
    if "APPROVED" in state["review_feedback"]:
        return "finalize"           # → Abschließen
    elif state["revision_count"] >= 3:
        return "finalize"           # → Überschreitet 3 Überarbeitungen, erzwinge Abbruch
    else:
        return "revise"             # → Zurück zum Schreibknoten zur Überarbeitung

# ─── Workflow-Graph erstellen ─────────────────────────────────────────────
workflow = StateGraph(ResearchState)

# Knoten hinzufügen
workflow.add_node("research",  research_node)
workflow.add_node("write",     write_node)
workflow.add_node("review",    review_node)
workflow.add_node("finalize",  finalize_node)

# Einstiegspunkt festlegen
workflow.set_entry_point("research")

# Kanten hinzufügen (Übergangslogik definieren)
workflow.add_edge("research", "write")       # Recherche → Schreiben
workflow.add_edge("write",    "review")      # Schreiben → Überprüfung

# Bedingte Kante: Pfad basierend auf Review-Ergebnis wählen
workflow.add_conditional_edges(
    "review",
    should_revise,
    {
        "revise":   "write",    # Überarbeitung nötig → Zurück zum Schreiben
        "finalize": "finalize"  # Genehmigt → Finalisieren
    }
)

workflow.add_edge("finalize", END)

# Kompilieren und ausführen
app = workflow.compile()

result = app.invoke({"topic": "Die Auswirkungen generativer KI auf die Softwareentwicklungsbranche", "revision_count": 0})
print(result["final_report"])

CrewAI Multi-Agenten-Zusammenarbeit

CrewAI ermöglicht es mehreren Agenten, durch die Definition von Rollen und Aufgaben wie ein Team zusammenzuarbeiten.

Beispiel

from crewai import Agent, Task, Crew, Process
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o")

# ─── Agent definieren (Rolle) ────────────────────────────────────────
researcher = Agent(
    role=Marktforscher,
    goal=Umfassende, genaue Marktinformationen zum Zielthema sammeln und organisieren.,
    backstory=Du bist ein erfahrener Marktanalyst und geschickt darin, wichtige Erkenntnisse aus großen Informationsmengen zu extrahieren.,
    llm=llm,
    verbose=True
)

analyst = Agent(
    role=Datenanalyst,
    goal=Basierend auf den vom Marktforscher bereitgestellten Informationen eine eingehende Analyse durchführen und wertvolle Schlussfolgerungen ziehen.,
    backstory=Du bist hervorragend darin, Daten zur Kommunikation einzusetzen, und kannst Trends und Chancen aufdecken, die in Informationen verborgen sind.,
    llm=llm,
    verbose=True
)

writer = Agent(
    role=Experte für Berichterstellung,
    goal=Die analytischen Schlussfolgerungen in einen klaren, professionellen und überzeugenden Bericht verfassen.,
    backstory=Du hast umfangreiche Erfahrung im Verfassen von Geschäftstexten und kannst komplexe Analysen leicht verständlich machen.,
    llm=llm,
    verbose=True
)

# ─── Aufgabe definieren ────────────────────────────────────────
research_task = Task(
    description=Den aktuellen Status des chinesischen Marktes für neue Energiefahrzeuge recherchieren, einschließlich wichtiger Marken, Marktanteile und Wachstumstrends.,
    expected_output=Ein Marktforschungsbericht mit 5 zentralen Datenpunkten, einschließlich Zahlen und konkreten Fakten.,
    agent=researcher
)

analysis_task = Task(
    description=Basierend auf dem Forschungsbericht die Chancen und Risiken der nächsten 3 Jahre analysieren und Empfehlungen für Investitionsbewertungen geben.,
    expected_output=SWOT-Analysetabelle + Investitionsbewertung (starke Empfehlung/Empfehlung/neutral/vorsichtig) + Begründung,
    agent=analyst,
    context=[research_task]    Ausgabe der abhängigen Forschungsaufgabe
)

writing_task = Task(
    description=Die Recherche und Analyse in ein professionelles Investment-Briefing mit 500 Wörtern und klarer Formatierung integrieren.,
    expected_output=Ein Briefing mit vier Abschnitten: Zusammenfassung, Marktstatus, Chancen und Risiken sowie Investitionsempfehlungen.,
    agent=writer,
    context=[research_task, analysis_task]
)

# ─── Team zusammenstellen und ausführen ───────────────────────────────────────────
crew = Crew(
    agents=[researcher, analyst, writer],
    tasks=[research_task, analysis_task, writing_task],
    process=Process.sequential,    # Sequentielle Ausführung (kann auch auf hierarchisch umgestellt werden)
    verbose=True
)

result = crew.kickoff()
print(result)

Human-in-the-Loop (manueller Überprüfungsknoten)

LangGraph unterstützt das Anhalten an kritischen Schritten, um vor der Fortsetzung der Ausführung auf eine menschliche Bestätigung zu warten.

Beispiel

from langgraph.graph import StateGraph, END
from langgraph.checkpoint.memory import MemorySaver
from typing import TypedDict

class EmailState(TypedDict):
    recipient: str
    content: str
    approved: bool

def draft_email(state: EmailState) -> dict:
    E-Mail entwerfen.
    content = fSehr geehrte/r {state['recipient']},\n\nDies ist der von der KI entworfene E-Mail-Inhalt...\n\nMit freundlichen Grüßen
    return {"content": content}

def send_email(state: EmailState) -> dict:
    E-Mail senden (Hochrisiko-Operation, erfordert manuelle Überprüfung vor der Ausführung)
    print(fE-Mail wurde an {state['recipient']} gesendet)
    return {}

# Routing: Entscheiden, ob anhand des Ergebnisses der manuellen Überprüfung gesendet wird.
def check_approval(state: EmailState) -> str:
    return "send" if state.get("approved") else END

workflow = StateGraph(EmailState)
workflow.add_node("draft", draft_email)
workflow.add_node("send", send_email)
workflow.set_entry_point("draft")

# Nach Abschluss des Entwurfs pausieren, auf menschliche Überprüfung warten (interrupt_after)
workflow.add_conditional_edges("draft", check_approval, {"send": "send", END: END})
workflow.add_edge("send", END)

# MemorySaver verwenden, um Unterbrechung und Fortsetzung zu unterstützen
memory = MemorySaver()
app = workflow.compile(
    checkpointer=memory,
    interrupt_after=["draft"]      # Nach dem Entwurfs-Knoten pausieren
)

config = {"configurable": {"thread_id": "email-001"}}

# Erster Durchlauf: Nach Ausführung des Entwurfs pausieren
state = app.invoke({"recipient": "Customer A", "approved": False}, config)
print("Entwurf erstellt, warten auf Überprüfung:")
print(state["content"])

# Nach manueller Überprüfung Status aktualisieren und Ausführung fortsetzen
user_input = input("\nSenden genehmigen? (y/n): ")
if user_input.lower() == "y":
    app.update_state(config, {"approved": True})
    app.invoke(None, config)   # Vom Haltepunkt fortsetzen
    print("E-Mail gesendet")
else:
    print("Senden abgebrochen")

Prompt-Engineering: Zentrale Techniken im Workflow

Im KI-Workflow beeinflusst die Qualität des Prompts direkt die Ausgabequalität jedes Knotens.

Beispiel

# Vage Rollendefinition
# system_prompt = "Du bist ein KI-Assistent, hilf mir, dieses Dokument zu analysieren"

# Klare Rollendefinition (empfohlen)
system_prompt = """
Du bist ein professioneller Finanzanalyst und konzentrierst dich auf die Identifizierung von Risikosignalen in Finanzberichten.
Deine Aufgabe: Extrahiere alle wichtigen Datenpunkte in Bezug auf Verbindlichkeiten, Cashflow und Rentabilität aus dem folgenden Bericht.
Ausgabeformat: JSON, das risk_level (high/medium/low) und key_findings (list) enthält.
Hinweis: Gib nur JSON aus, füge keinen erklärenden Text hinzu.
"""

Beispiel

# Unstrukturierten Text übergeben
# state["previous_output"] = "Analyseergebnis: Dieses Unternehmen sieht gut aus, es gibt einige Risiken..."

# Strukturierte Daten übergeben (empfohlen)
state["analysis_result"] = {
    "risk_level": "mittel",
    "key_findings": ["Schuldenquote 45%, Branchendurchschnitt 38%", "Cashflow ist positiv, Q3 gegenüber dem Vorquartal um 12% gesunken"],
    "recommendation": "Vorsichtig halten"
}

Beispiel

# JSON-Ausgabe im Prompt erzwingen
prompt = """
Bitte analysiere die Stimmung des folgenden Textes.
Gib streng im folgenden JSON-Format aus, füge keinen anderen Inhalt hinzu:
{
  "sentiment": "positiv" | "negativ" | "neutral",
  "confidence": 0.0-1.0,
"reason": "kurze Erklärung"
}

Text: {text}
"""

Fehlerbehandlung und Wiederholungsversuche

Beispiel

from tenacity import retry, stop_after_attempt, wait_exponential
import logging

@retry(
    stop=stop_after_attempt(3),                         # Bis zu 3-mal wiederholen
    wait=wait_exponential(multiplier=1, min=2, max=10)  # Exponentielles Backoff-Warten
)
def call_llm_with_retry(prompt: str) -> str:
    try:
        response = llm.invoke(prompt)
        return response.content
    except Exception as e:
        logging.error(f"LLM-Aufruf fehlgeschlagen: {e}")
        raise

def safe_parse_json(text: str) -> dict:
    """JSON-Ausgabe von LLM sicher parsen"""
    import json, re
    # JSON-Teil extrahieren (LLM fügt manchmal zusätzlichen Erklärungstext hinzu)
    json_match = re.search(r'\{.*\}', text, re.DOTALL)
    if json_match:
        try:
            return json.loads(json_match.group())
        except json.JSONDecodeError:
            pass
    return {"error": Parsen fehlgeschlagen, "raw": text}

Kostenkontrolle

Beispiel

# ─── Modelle anhand der Aufgabenwichtigkeit auswählen ────────────────────────────────
def get_llm(task_type: str):
    if task_type == "classification":   # Für Klassifikationsaufgaben genügt ein leichtgewichtiges Modell
        return ChatOpenAI(model="gpt-4o-mini")
    elif task_type == "generation":     # Für Generierungsaufgaben ein mittleres Modell verwenden
        return ChatOpenAI(model="gpt-4o-mini")
    elif task_type == "reasoning":      # Für komplexes Reasoning ein leistungsstarkes Modell verwenden
        return ChatOpenAI(model="gpt-4o")

# ─── Wiederholte Anfragen zwischenspeichern ──────────────────────────────────────────
from langchain.globals import set_llm_cache
from langchain_community.cache import InMemoryCache
set_llm_cache(InMemoryCache())   # Bei identischer Eingabe das zwischengespeicherte Ergebnis direkt zurückgeben; keine doppelte Abrechnung

# ─── Text aufteilen, um übermäßige Länge zu vermeiden ──────────────────────────────────────
from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=2000,       # 2000 Zeichen pro Chunk
    chunk_overlap=200      # 200 Zeichen überlappen, um Kontextkohärenz zu erhalten
)
chunks = splitter.split_text(long_document)

Typische Anwendungsszenarien

KI-Workflow wurde in vielen Bereichen weit verbreitet eingesetzt. Im Folgenden werden die sechs repräsentativsten Szenarien vorgestellt.

AI Workflow Typical Application Scenarios AI Programming Assistant User describes requirements → Understand requirements → Generate code → Run automatically → Detect errors → Auto-fix → Generate documentation and test cases Representative: GitHub Copilot Workspace Claude Code、Cursor Automated Research Reports Receive research topic → Break down into sub-problems → Gather information in parallel → Extract Key information → Comprehensive analysis → Generate a complete report with citations Representative: Perplexity Deep Research OpenAI Deep Research Intelligent Customer Service System Identify user intent → Query order database → Retrieve policy documents → Generate personalized reply → Complex issues escalated to human agents Representative: AI customer service of major e-commerce platforms Bank Intelligent Customer Service Data Analysis Automation Upload Excel/CSV → Understand data structure → Automatically select analysis method → Execute Python → Generate charts + natural language interpretation Representative: ChatGPT Advanced Data Analysis Content Marketing Pipeline Input topic and audience → Research hot topics → Generate outline → Write full text → Optimize SEO → Generate image descriptions → Multi-platform adaptation Examples: Various types of AI writing and marketing automation tools Medical assisted diagnosis Patient describes symptoms → Structured Medical history → Retrieve medical literature → Analyze imaging reports → Generate Reference suggestions → Doctor confirmation Note: High-risk scenarios must retain human confirmation Human-in-the-Loop

Best Practices und häufige Fallstricke

Häufige Fallstricke und Lösungen

Im Folgenden werden die häufigsten Probleme beschrieben, auf die Anfänger bei der Verwendung von KI-Workflow stoßen.

FallstrickSymptomLösung
HalluzinationskaskadeDie vorherige KI-Ausgabe ist falsch, wird als Tatsache an den nächsten Schritt weitergegeben und verstärkt den Fehler.Fügen Sie an Schlüsselknoten Verifikationsschritte hinzu; verwenden Sie Tools für numerische Informationen.
EndlosschleifeReAct-Agent ruft wiederholt Tools auf, ohne zu wissen, wann er aufhören soll.max_iterations festlegen; dem LLM explizite Abbruchbedingungen geben.
Kontext-ExplosionMit zunehmenden Schritten wird der an das LLM übergebene Text länger und überschreitet das Fenster.Übergeben Sie bei jedem Schritt nur die notwendigen Felder; komprimieren Sie historische Informationen mit Zusammenfassungen.
Tool-MissbrauchDer Agent kann direkt antworten, ruft aber weiterhin Tools auf.Tool-Beschreibungen optimieren; dem LLM klar sagen, wann Tools nicht benötigt werden.
JSON-Parsing-FehlerDas Ausgabeformat des LLM ist instabil, was zum Absturz des Programms führt.safe_parse_json hinzufügen; LangChain OutputParser verwenden.
KostenüberschreitungDer Token-Verbrauch wird nicht geschätzt, und die monatliche Rechnung übersteigt die Erwartungen.Zuerst mit gpt-4o-mini testen; LangSmith zur Überwachung der Nutzung verwenden.
NebenläufigkeitskonfliktMehrere Agenten, die gleichzeitig in denselben Zustand schreiben, verursachen Datenkorruption.Verwenden Sie die integrierte Zustandsverwaltung von LangGraph; vermeiden Sie die gemeinsame Nutzung von veränderlichem Zustand.

Zusammenfassung und Lernpfad

Wiederholung der Kernkenntnisse

AI Workflow Core Knowledge Points Core Elements LLM, tools memory, state routing, human Intervention: six major components Form a complete system Six major patterns Sequential chain Conditional routing Parallel execution ReAct loop Plan&Execute Multi-Agent Mainstream frameworks LangChain LangGraph LlamaIndex CrewAI Dify / n8n Select as needed Key code Chain: chained invocation Tool Definition StateGraph state graph Agent + Executor Human-in-Loop interrupt_after Key pitfalls Hallucination cascade Infinite Loop Context explosion. JSON parsing failed Cost overrun Prevention is better than cure application scenarios AI coding assistant Research report Smart customer service Data analysis Content production Medical assistance

Empfohlener Lernpfad

Phase 1: Grundlagen verstehen (1 Woche)

  1. LLM-API-Aufrufe verstehen, in der Lage sein, Anfragen mit dem OpenAI SDK zu stellen
  2. Das Beispiel der sequenziellen Kette von LangChain in diesem Artikel durcharbeiten
  3. Die Grundprinzipien des Prompt Engineering verstehen

Phase 2: Tools und Agenten (2 Wochen)

  1. Lernen, Tools mit dem @tool-Dekorator zu definieren
  2. Das ReAct-Agent-Beispiel durcharbeiten, die ausführlichen Logs beobachten, um die Schleifenlogik zu verstehen
  3. Dify oder n8n verwenden, um einen visuellen Workflow-Prototyp zu erstellen

Phase 3: Komplexer Workflow (3 Wochen)

  1. LangGraph-Zustandsgraphen lernen, einen Workflow mit bedingter Verzweigung implementieren
  2. CrewAI verwenden, um eine duale Agenten-Kollaborationsaufgabe zu implementieren
  3. Echte Tools integrieren (Tavily Search, Python REPL)
  4. LangSmith verwenden, um Ihren Workflow zu beobachten und zu debuggen

Phase 4: Produktionsreif (kontinuierlich)

  1. Fehler-Wiederholung und strukturiertes Ausgabe-Parsing implementieren
  2. Kostenüberwachung und -optimierung (gestufte Modellnutzung)
  3. In die Produktion bereitstellen, Monitoring und Alerting einrichten

Referenzressourcen

Weitere Erweiterungen