Entwicklung eines ReWOO Reasoning Agent mit IBM Granite

Autor

Jobit Varughese

Technical Content Writer

IBM

Große Sprachmodelle (LLMs) und ihre erweiterten Varianten, erweiterte Sprachmodelle (ALMs), sind zum Rückgrat moderner KI-Systeme geworden. Durch die Kombination leistungsstarker Sprachgenerierung mit externen Techniken zum Abrufen von Wissen wie Retrieval-Augmented Generation (RAG) ermöglichen sie fortgeschrittenes Denken, Beantworten von Fragen und Automatisierung von Aufgaben in verschiedenen Bereichen. Trotz ihrer bemerkenswerten Funktionen stehen diese Modelle jedoch häufig vor Herausforderungen wie einer uneinheitlichen Robustheit der Systeme, einer hohen Token-Nutzung, langsamen Antwortzeiten und Ineffizienzen aufgrund sich wiederholender Eingabeaufforderungen und redundanter Kontext bei der Bewältigung komplexer Aufgaben. Solche Beschränkungen erhöhen die Betriebskosten und beeinträchtigen die Skalierbarkeit und die Leistung.

Um diese Probleme zu lösen, bietet das ReWOO-Framework einen neuartigen Ansatz, der sich auf die Entkopplung des logischen Denkens von der externen Wissensbeschaffung konzentriert. Anstatt dass ein einzelnes LLM versucht, zu argumentieren, zu handeln und in einer verschachtelten Weise zu beobachten, unterteilt ReWOO diese Bedenken in verschiedene Module, die jeweils potenziell von einem LLM angetrieben werden, aber eine bestimmte Rolle spielen. Durch die Modularisierung des Prozesses in verschiedene Planungs-, Beweiserfassungs- und Synthesephasen verbessert ReWOO die Token-Effizienz und -Genauigkeit. Außerdem erleichtert es das Debugging des Systems und ermöglicht optimiertere und effektivere KI-Workflows.

Die Methodik von ReWOO

Der Workflow von ReWOO dreht sich um drei Schlüsselkomponenten: schrittweise Schlussfolgerungen, Toolaufrufe und Zusammenfassung. Diese Komponenten werden in einer modularen Struktur implementiert, die aus drei Teilen besteht: dem Planer, dem Mitarbeiter und dem Solver.

Planer

Der Planer gliedert die Hauptaufgabe in eine Abfolge von gezielten Teilfragen auf und erstellt so einen klaren Blueprint. Anstatt das LLM zu bitten, eine komplexe Frage auf einmal zu beantworten, was zu einer überwältigenden Token-Nutzung und verworrenen Antworten führen kann, erstellt der Planer einen Blueprint oder eine Roadmap. Diese schrittweise Aufschlüsselung leitet den Workflow und hält den Argumentationsprozess strukturiert.

Worker

Der Mitarbeiter ruft externe Tools wie Suchmaschinen oder Datenbanken auf, um relevante Informationen und Nachweise abzurufen, die zur Beantwortung der Teilfragen benötigt werden. Er nutzt das LLM, um klare, präzise Antworten zu formulieren, die allein auf diesen abgerufenen Informationen basieren. Diese externe Beobachtungsphase wird vom Argumentationsprozess getrennt, um unnötige Wiederholungen von Prompts zu vermeiden und den Tokenverbrauch zu reduzieren.

Solver

Der Solver fasst alle gesammelten Erkenntnisse zusammen, um eine neue, gut strukturierte endgültige Antwort zu generieren. Diese modulare Trennung trägt dazu bei, eine effiziente, genaue und skalierbare Argumentation mit großen Sprachmodellen zu gewährleisten.

Frameworks wie LangChain und LangGraph bieten leistungsstarke Tools zur Implementierung der ReWOO-Architektur, indem Sie Modelle von OpenAI, IBM Granite oder spezialisierte Tools wie Serper und Tavily für die Suche verwenden.

In diesem Tutorial erkunden Sie, wie Sie einen ReWOO-Agenten erstellen, der die Aufgabe der Inhaltszusammenfassung ausführt. Dieser Agent kann:

  • Eine übergeordnete Aufgabe in Teilfragen aufteilen
  • Die Websuche verwenden, um relevanten Kontext für jede Teilfrage zu erfassen
  • Antworten mit IBM Granite generieren
  • Die Ergebnisse in einer abschließenden Antwort zusammenfassen

Diese Architektur ist hilfreich für:

  • Aufgaben zur Zusammenfassung
  • Fragenbeantwortung über externes Wissen
  • Dynamisches, toolgestütztes Denken

Eingesetzte Technologien

In diesem Schritt-für-Schritt-Tutorial werden die neuesten KI-Technologien genutzt, darunter:

  1. IBM Granite Instruct: Ein leistungsstarkes LLM zur Befolgung allgemeiner Anweisungen, ideal für KI-Assistenten in der Wirtschaft und anderen Bereichen.
  2. Transformers: Eine weit verbreitete Python-Bibliothek, die Tools zum Laden, Tokenisieren und Ausführen von Sprachmodellen wie IBM Granite bietet. Sie ermöglicht die effiziente Verarbeitung von Texteingaben und die Generierung von Modellausgaben.

Schritte

Schritt 1: Richten Sie Ihre Umgebung ein

Dieses Tutorial führt Sie durch die Einrichtung Ihrer lokalen Entwicklungsumgebung für die Ausführung einer ReWOO-ähnlichen Argumentationspipeline mit Jupyter Notebook. Sie verwenden das Sprachmodell IBM Granite und Serper.dev für die Live-Suche im Web.

Anmerkung: Es ist keine GPU erforderlich, aber die Ausführung kann auf CPU-basierten Systemen langsamer sein. Dieser Schritt öffnet eine Notebook-Umgebung, in die Sie den Code aus diesem Tutorial kopieren können. Dieses Tutorial ist auch auf GitHub verfügbar.

Schritt 2: Installieren der erforderlichen Abhängigkeiten

Diese Bibliotheken werden benötigt, um die ReWOO-Pipeline auszuführen und mit externen Tools zu interagieren:

transformers: Lädt das große Sprachmodell von IBM Granite und führt es aus.

torch: ein Deep-Learning-Framework, das für die effiziente Ausführung des Modells erforderlich ist.

Beschleunigen: Optimiert die Modellleistung über die gesamte Hardware hinweg (optional).

Aufforderungen: Sendet HTTP POST-Anfragen an externe APIs(wie Serper).

!pip install transformers accelerate torch requests

Schritt 3: Importieren der erforderlichen Bibliotheken

In diesem Schritt importieren Sie die erforderlichen Python-Bibliotheken, die für den Aufbau der Kernkomponenten der ReWOO-Pipeline erforderlich sind.

Transformers.AutoTokenizer: Lädt den Tokenizer, der Text in Token konvertiert, die mit dem Sprachmodell kompatibel sind.

transformers.AutoModelForCausalLM: Lädt das vortrainierte Sprachmodell IBM Granite zum Generieren von Antworten.

Transformers.pipeline: Bietet eine High-Level-Schnittstelle zum schnellen Erstellen einer Textgenerierungspipeline mithilfe des Tokenizers und des Modells.

import requests
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline

Schritt 4: Laden Sie das IBM Granite-Modell und erstellen Sie eine Pipeline zur Textgenerierung

In diesem Schritt laden wir das IBM Granite Sprachmodell und initialisieren eine Textgenerierungspipeline mithilfe der transformers-Bibliothek von Hugging Face. Erkunden Sie hier das Granite 3.2 2B Instruct-Modell auf Hugging Face.

model_id = "ibm-granite/granite-3.2-2b-instruct": Gibt den Namen des IBM Granite-Modellkontrollpunkts an, der auf Hugging Face gehostet wird. Dieses Modell ist für Aufgaben optimiert, bei denen Anweisungen befolgt werden.

AutoTokenizer.from_pretrained(model_id): Lädt den Tokenizer, der mit dem angegebenen Modell verknüpft ist. Er ist dafür verantwortlich, Eingabetext in Token umzuwandeln und Ausgabe-Token wieder in Text zu dekodieren.

AutoModelForCausalLM.from_pretrained(model_id): Lädt das Sprachmodell (Granite 3.2 2B instruct) für Textgenerierungsaufgaben wie die Beantwortung von Fragen oder die Zusammenfassung.

pipeline("text-generation", model=model, tokenizer=tokenizer): Erstellt eine High-Level-Pipeline zur Textgenerierung, die das Modell und den Tokenizer kombiniert, sodass es einfach ist, Antworten von Prompts zu generieren.

model_id = "ibm-granite/granite-3.2-2b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
generator = pipeline("text-generation", model=model, tokenizer=tokenizer)

Schritt 5: Richten Sie die Serper-API für den Abruf der Websuche ein

In diesem Schritt definieren wir eine Funktion, die als Mitarbeiter in der ReWOO-Architektur fungiert. Dieser Mitarbeiter verwendet ein Web-Suchtool, Serper.dev, um relevante, aktuelle Informationen aus dem Internet abzurufen, um die Argumentation und die Generierung von Antworten zu unterstützen. Serper.dev ist eine schnelle und schlanke API, die Google-Suchergebnisse in einem strukturierten Format bereitstellt und sich damit ideal für die Echtzeitabfrage von Informationen in KI-Workflows eignet.

Diese Einrichtung ermöglicht es dem ReWOO-System, die reale Welt zu „beobachten“, indem es externe Wissensquellen abfragt, bevor das LLM endgültige Entscheidungen trifft.

So können Sie Serper in der ReWOO-Pipeline verwenden:

  1. Besuchen Sie https://serper.dev und erstellen Sie ein kostenloses Konto.
  2. Navigieren Sie nach der Anmeldung zum Dashboard und kopieren Sie den API-Schlüssel.
  3. Speichern Sie den API-Schlüssel im Code sicher. Weisen Sie es vorerst direkt zu, wie in dieser Abbildung dargestellt:

SERPER_API_KEY = "<YOUR_API_KEY>" # Ersetzen Sie dies durch Ihren tatsächlichen Schlüssel

Hinweis: Laden Sie Ihren API-Schlüssel niemals in öffentliche Repositorys hoch. Für Produktions- oder Teamumgebungen verwenden Sie .env-Dateien oder Umgebungsvariablen, um die Sicherheit zu gewährleisten.

ReWOO-Screenshot

def query_serper(question, num_results=3): Definiert eine Funktion, die eine Suchfrage aufnimmt und relevante Snippets aus den Top-Ergebnissen zurückgibt.

Payload = {"q": question, "num": num_results} : Bereitet die Abfrage-Payload mit dem Suchbegriff und der Anzahl der Ergebnisse vor, die zurückgegeben werden sollen.

response = requests.post(...): Sendet eine POST-Anfrage mit Ihrer Abfrage und Ihren Headern an die Serper-API.

response.raise_for_status(): Löst einen Fehler aus, wenn die API-Antwort ungültig ist oder fehlschlägt.

snippets = [...]: Extrahiert Snippet-Text aus den organischen Suchergebnissen.

return "\n".join(snippets): Verknüpft die Snippets und gibt sie als einzelne Zeichenfolgen zurück, die als Kontext für das Sprachmodell dienen.

Hinweis: Diese Funktion bildet das Rückgrat des Schritts „Beobachtung“ von ReWOO, in dem externe Beweise für die weitere Schlussfolgerung gesammelt werden. Stellen Sie beim Testen sicher, dass Ihr API-Schlüssel gültig und nicht ratenbegrenzt ist.

SERPER_API_KEY = "your_serper_api_key_here" # Replace with your actual key
def query_serper(question, num_results=3):
    url = "https://google.serper.dev/search"
    headers = {
            "X-API-KEY": SERPER_API_KEY,
            "Content-Type": "application/json"
}
    payload = {"q": question, "num": num_results}
    response = requests.post(url, headers=headers, json=payload)
    response.raise_for_status()
    data = response.json()
    snippets = [item.get("snippet", "") for item in data.get("organic", [])]
    return "\n".join(snippets)

Schritt 6: Generieren Sie fundierte Antworten mithilfe der Expertenfunktion

In diesem Schritt definieren wir die expert()-Funktion, die als Solver in der ReWOO-Architektur dient. Der Solver fasst die abgerufenen externen Beweise zusammen und generiert unter Verwendung des Sprachmodells eine endgültige Antwort.

def expert(question: str) -> str: Die Funktion expert() nimmt eine Frage (String) und gibt eine Antwort (String) zurück, die vom Granite-Modell generiert wurde. Es funktioniert, indem es das Internet mit Serper.dev durchsucht, relevante Informationen sammelt und diese nutzt, um eine klare, vollständige Antwort zu generieren.

context = query_serper(question): Verwendet das Serper-Websuchtool, um relevante Informationen abzurufen (Mitarbeiter).

Prompt = f"""...""": Erstellt eine Aufforderung, die das Modell anweist, zu antworten, indem es nur den abgerufenen Kontext verwendet.

generator(...): Ruft das Granite-Modell auf, um eine Antwort basierend auf der Eingabeaufforderung zu generieren.

for _ in range(5): Mit dieser Schleife kann das Modell bis zu 5 Mal eine Antwort in Blöcken generieren. Sie hilft, wenn die Antwort lang ist und nicht auf einmal beantwortet werden kann.

generated_text += new_text: Hängt jeden neuen Textblock an, um die vollständige Antwort zu bilden.

Wenn new_text.endswith(...): Wenn die Antwort vollständig erscheint (endet mit einem Punkt, einem Fragezeichen oder einem Ausrufezeichen) und genügend Wörter enthält (mehr als 50), wird die Schleife gestoppt.

return generated_text.strip(): Gibt die endgültige, bereinigte Antwort zurück.

Hinweis: Das Prompt-Format ist wichtig, denn es stellt sicher, dass das Modell nicht „halluziniert“ oder vom Thema abweicht. Es muss sich an das halten, was im Kontext enthalten ist. Wir begrenzen jeden Generationsblock auf 120 Token, um die Ausgabe zu steuern und die Ressourcennutzung effizient zu verwalten, während gleichzeitig eine übermäßige Tokennutzung verhindert wird.

def expert(question: str) -> str:
    context = query_serper(question) # your retrieval function
    prompt = f"""You are a knowledgeable expert. Based ONLY on the context below, answer the question clearly and concisely in your own words.
Do NOT mention any sources or references.
Context:
{context}
Question: {question}
Answer:"""
    input_prompt = prompt
    generated_text = ""
    last_generated = ""
    for _ in range(5): # up to 5 chunks
        outputs = generator(
            input_prompt,
            max_new_tokens=120,
            do_sample=False,
            eos_token_id=tokenizer.eos_token_id,
            # no invalid flags like 'temperature' here
        )
        text = outputs[0]["generated_text"]
        new_text = text[len(input_prompt):].strip()
        # Stop if no new content
        if new_text == last_generated:
            break
        generated_text += new_text + " "
        input_prompt = prompt + generated_text
        last_generated = new_text
        if new_text.endswith(('.', '!', '?')) and len(generated_text.split()) > 50:
            break
    return generated_text.strip()

Schritt 7: Definieren des Planermoduls

In diesem Schritt definieren wir die Planner-Funktion, die eine breite Eingabeaufgabe in kleinere, klar definierte Unterfragen aufteilt, ein Kernprinzip von ReWoos schrittweisem Denken.

def Planner(task: streng): Dies definiert eine Funktion namens planner, die ein einzelnes Argument Task akzeptiert (eine Zeichenfolge, die die beschreibt, die ausgeführt werden soll).

topic = task.replace("Summarize", "").replace("the novella", "").strip(): Extrahieren Sie das Hauptthema (z. B. den Titel oder das Thema) aus der Aufgabe. Es bereinigt die Eingabe, indem es gängige Promptphrasen wie „Summarize“ und „the novella“ entfernt und anschließend führende und abschließende Leerzeichen abschneidet, um das Kernthema zu isolieren.

return [ ... ]: Gibt eine Liste spezifischer Fragen zurück, die das Mitarbeiter-Modul leiten.

Hinweis: Sie können diese Liste je nach Tiefe und Art des Eingabethemas mit spezifischeren Unterfragen erweitern.

def planner(task: str):
topic = task.replace("Summarize", "").replace("the novella", "").strip()
return [
f"What is the main plot related to {topic}?",
f"Who are the key characters in {topic}?",
f"What themes are explored in {topic}?"
]

Schritt 8: Definieren Sie die endgültige Zusammenfassung (Solver-Modul)

In diesem Schritt definieren wir die Funktion final_summarizer, die als Solver in der ReWOO-Pipeline fungiert. Diese Funktion nimmt die vom Mitarbeiter bereitgestellten Teilantworten (Nachweise) und generiert mithilfe des Sprachmodells eine neu verfasste, kohärente Zusammenfassung.

def final_summarizer(Aufgabe: str, sub_answers: dict) -> str: Definiert die Funktion, die die ursprüngliche Aufgabe und die Unterantworten empfängt, und gibt eine kurze Zusammenfassung zurück.

insights = "\n".join(sub_answers.values()): Kombiniert alle Antworten zu einer einzigen Zeichenfolge, die durch Newlines getrennt ist, um in den Prompt aufgenommen zu werden.

base_prompt = f"""...""": Erstellt das Basis-Prompt, das das Modell anweist, die bereitgestellten Erkenntnisse zusammenzufassen. Es leitet das Modell dazu an, eine neue Zusammenfassung zu erstellen, die nur auf Teilantworten basiert.

max_total_tokens = 400: Legt eine Obergrenze für die generierte Tokenanzahl fest, um übermäßig lange Ausgaben zu vermeiden.

max_loops = 5: Ermöglicht bis zu 5 Iterationen der Generierung, um die Zusammenfassung schrittweise zu erstellen.

for in range(maxloops): Schleifen zum Generieren von Textblöcken unter Verwendung des Sprachmodells.

response = generator(..., max_new_tokens=100, ...): Verwendet den Generator (Pipeline-Objekt), um bis zu 100 neue Token in jeder Schleife zu generieren. Der Stichprobenmodus (do_sample=True) erlaubt Variation und Kreativität bei der Antwort.

if summary.endswith(...) or total_tokens_used >= max_total_tokens: Beendet die Schleife, wenn die Zusammenfassung mit der richtigen Interpunktion schließt oder die Token-Obergrenze erreicht.

return summary.strip(): Gibt die endgültige, optimierte Zusammenfassung ohne nachgestellte Leerzeichen zurück.

def final_summarizer(task: str, sub_answers: dict) -> str:
    insights = "\n".join(sub_answers.values())
    base_prompt = f"""You are an expert summarizer. Based on the following insights, write a fresh, concise summary of the text. The summary must be newly written and must end in a complete sentence with proper punctuation.
Insights:
{insights}
Summary:"""
    summary = ""
    current_prompt = base_prompt
    max_total_tokens = 400
    total_tokens_used = 0
    max_loops = 5
    for _ in range(max_loops):
        response = generator(current_prompt, max_new_tokens=100, do_sample=True, top_p=0.9, eos_token_id=tokenizer.eos_token_id)
        chunk = response[0]["generated_text"][len(current_prompt):].strip()
        summary += " " + chunk
        summary = summary.strip()
        total_tokens_used += len(chunk.split())
        if summary.endswith(('.', '!', '?')) or total_tokens_used >= max_total_tokens:
            break
        # Prepare prompt for next loop
        current_prompt = base_prompt + summary
    return summary.strip()

Schritt 9: Orchestrate® des ReWOO-Agenten mit der Solver-Funktion

In diesem Schritt definieren wir die Solver-Funktion, die die letzte Stufe in der ReWOO-Pipeline darstellt. Sie steuert den gesamten Prozess, indem sie den Planer verwendet, den Experten (Mitarbeiter) aufruft und mit dem final_summarizer (Solver) eine Zusammenfassung erstellt. Die ReWOO-Architektur ermöglicht mehrstufige Argumentation, indem die Hauptaufgabe mithilfe eines Planers in Teilfragen unterteilt wird. Jede Teilfrage wird unabhängig von einem Expertenmodul beantwortet, und die abschließende Zusammenfassung fasst alle Antworten zu einer kohärenten Antwort zusammen. Durch diesen modularen Ansatz kann das System komplexe Aufgaben effektiver bewältigen.

def solver(task: streng): Definiert die Haupt-Controller-Funktion für die Ausführung des vollständigen ReWOO-Workflows.

subquestions = planner(task): Verwendet den Planer, um die Eingabeaufgabe in fokussierte Teilfragen zu unterteilen.

ans = expert(q): Ruft für jede Teilfrage die expert-Funktion auf, um webbasierte Beweise abzurufen und eine relevante Antwort zu generieren. Jede vom Planer erstellte Teilfrage wird als Tooleingabe an den Experten weitergeleitet. Das Expertenmodul verarbeitet die Eingabe mithilfe eines Sprachmodells. Dies kann als Ausführung eines Tools für eine bestimmte Teilaufgabe betrachtet werden.

answers[q] = ans: Speichert jede Antwort, die durch die entsprechende Frage verschlüsselt ist, für eine spätere Zusammenfassung.

final_summary = final_summarizer(task, answers): Gibt alle gesammelten Antworten in den final_summarizer ein, um eine saubere, kohärente Zusammenfassung zu erstellen.

print(final_summary) and return final_summary: Zeigt die abgeschlossene Zusammenfassung für die ursprüngliche Aufgabe an und gibt sie zurück.

Hinweis: Die von der Funktion solver() benötigte Gesamtzeit kann je nach System variieren, da sich die CPU-Geschwindigkeit, der verfügbare RAM und die Effizienz des Modells auf verschiedenen Hardware-Setups unterscheiden. Da der Code eine sich wiederholende Generierungsstrategie mit einem Sprachmodell verwendet, können Systeme mit geringerer Rechenleistung oder geringem Hauptspeicher deutlich länger brauchen. Netzbasierte Abfragen und große Prompts können ebenfalls zu Verzögerungen beitragen. Um die Leistung zu verbessern, sollten Sie max_loops reduzieren, indem Sie ein kleineres oder quantisiertes Modell verwenden, die Tokenizer- und Generatorpipeline optimieren oder den Code in einer GPU-fähigen Umgebung wie Google Colab oder Kaggle Notebooks ausführen.

def solver(task: str):
    print(f"Planner: Breaking down '{task}' into sub-questions...\n")
    subquestions = planner(task)
    answers = {}
    for q in subquestions:
        print(f"🔎 Expert answering: {q}")
        ans = expert(q)
        print(f"➡ Answer: {ans}\n")
        answers[q] = ans
    print("=== Final Summary ===\n")
    final_summary = final_summarizer(task, answers)
    print(final_summary)
    return final_summary

Schritt 10: Führen Sie die ReWOO-Pipeline aus, um die endgültige Zusammenfassung zu erstellen

In diesem letzten Schritt führen wir die vollständige ReWOO-Pipeline aus, indem wir die Solver-Funktion mit einer bestimmten Aufgabe aufrufen.

solver(„Novelle The Metamorphosis zusammenfassen“): Löst den gesamten ReWOO-Prozess aus; Planung, das Abrufen von Beweisen und das Erstellen einer Zusammenfassung für die Eingabeaufgabe: Zusammenfassen des Datensatzes The Metamorphosis.

Dieser Schritt gibt die endgültige Zusammenfassung aus und zeigt, wie die Komponenten zusammenarbeiten, um einen echten Anwendungsfall von Anfang bis Ende zu bearbeiten.

solver("Summarize the novella The Metamorphosis")

Die wichtigsten Erkenntnisse

  1. Der ReWOO-Agent zerlegte die Aufgabe („Novelle The Metamorphosis zusammenfassen“) erfolgreich in aussagekräftige Teilfragen zu Handlung, Figuren und Themen, sodass eine gezielte Informationsabfrage möglich war.
  2. Jede Teilfrage wurde mithilfe der Echtzeit-Websuche (Serper.dev) beantwortet und IBM Granite relevante, gut strukturierte Antworten lieferten, die Kernelemente des Textes erfassten.
  3. Die endgültige Antwort war kohärent, neu verfasst und präzise und zeigte, wie die Retrieval-Augmented Generation hochwertige, menschenähnliche Zusammenfassungen für Literaturanalyseaufgaben erstellen kann.

Hinweis: Um die Leistung und Zuverlässigkeit der ReWOO-Pipeline zu verbessern, ist es wichtig, Bewertungsmetriken wie Zusammenfassungsqualität, Kohärenz und Generierungslatenz zu verbessern. Mithilfe dieser Metriken kann beurteilt werden, wie gut das System bei verschiedenen Aufgaben und Hardwarekonfigurationen funktioniert. Die Architektur kann durch die Integration intelligenter Algorithmen erweitert werden, um große Fragen in kleinere zu unterteilen und die nützlichsten Antworten zu sortieren. Diese Verbesserungen würden eine genauere und effizientere Schlussfolgerung ermöglichen, die Generierungszeit verkürzen und die Gesamtqualität der endgültigen Ausgaben verbessern.

Weiterführende Lösungen
KI-Agenten für Unternehmen

Entwickeln, implementieren und verwalten Sie leistungsstarke KI-Assistenten und -Agenten, die Workflows und Prozesse mit generativer KI automatisieren.

    Entdecken Sie watsonx Orchestrate
    IBM KI-Agenten-Lösungen

    Gestalten Sie die Zukunft Ihres Unternehmens mit KI-Lösungen, denen Sie vertrauen können.

    KI-Agenten-Lösungen erkunden
    IBM Consulting KI-Dienstleistungen

    Die KI-Services von IBM Consulting unterstützen Sie dabei, die Art und Weise, wie Unternehmen mit KI arbeiten, neu zu denken.

    Erkunden Sie die Services im Bereich der künstlichen Intelligenz
    Machen Sie den nächsten Schritt

    Ganz gleich, ob Sie vorgefertigte Apps und Skills anpassen oder mithilfe eines KI-Studios eigene Agentenservices erstellen und bereitstellen möchten, die IBM watsonx-Plattform bietet Ihnen alles, was Sie brauchen.

    Entdecken Sie watsonx Orchestrate watsonx.ai erkunden