Zum Hauptinhalt springen
Lektion 11 von 18 · Mistral Agents: Aufbau autonomer KI

Werkzeug document_library: Fragen und Antworten zu Ihren Dateien

Lektion 11 von 18 Aktualisiert am 3. November 2026 Entwickler
Auf dieser Seite
  1. Eingebautes RAG von Mistral
  2. Eine Dokumentbibliothek erstellen
  3. Dokumente hochladen
  4. Einen Agenten mit einer Dokumentbibliothek erstellen
  5. Dokumente abfragen
  6. Bibliotheken verwalten
  7. Vom internen Support zur Vertragsanalyse
  8. Quellen vorbereiten, Bibliotheken isolieren
  9. Kernaussagen

Lektion aktualisiert am 3. November 2026 basierend auf der mistralai SDK-Version 3.7.0: Bibliotheksdokumente werden über client.beta.libraries.documents verwaltet (upload, list, delete). Die Methoden add_document, list_documents und remove_document der vorherigen Version existieren nicht mehr, und Uploads erfolgen nun direkt in die Bibliothek. Quelle: client-python.

Eingebautes RAG von Mistral

Das Werkzeug document_library ist ein Retrieval-Augmented Generation (RAG)-System, das direkt in die Agents-API integriert ist. Ihr Agent greift auf Dokumente zu, die Sie in die Mistral-Cloud hochgeladen haben, holt sich relevante Passagen und formuliert seine Antwort mit Zitaten. Der Unterschied zu einer selbst entwickelten RAG-Lösung ist erheblich: Sie müssen keine Vektordatenbank hosten, keine Einbettungs-Pipeline warten oder eine Chunking-Strategie anpassen. Sie laden lediglich Dateien hoch, deklarieren das Werkzeug beim Erstellen des Agents und lassen das Modell entscheiden, wann es die Bibliothek abfragt.

Eine Dokumentbibliothek erstellen

Eine Bibliothek ist der Container, der Ihre Dokumente enthält. Sie erstellen sie mit einem einzigen API-Aufruf, bevor Sie Dateien hochladen.

from mistralai.client import Mistral
import os

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

# Bibliothek erstellen
library = client.beta.libraries.create(
    name="Technische Dokumentation",
    description="Produktanleitungen und technische Spezifikationen."
)

print(f"Bibliotheks-ID: {library.id}")

Nehmen Sie die zurückgegebene ID zur Kenntnis: Dies ist der Wert, den Sie dem Agenten übergeben. Es gibt keinen Abkürzungsmechanismus über den Bibliotheksnamen. Wenn Ihr Team separate Bibliotheken für HR, Recht und Technik verwaltet, speichern Sie diese IDs in Ihrer Konfiguration genauso wie Verbindungszeichenfolgen.

Dokumente hochladen

Das Hochladen erfolgt in zwei Schritten: Zuerst wird die Datei im Bereich Files mit einem expliziten purpose abgelegt, und dann wird sie der Bibliothek zugeordnet.

# Ein PDF direkt in die Bibliothek hochladen
with open("product-manual.pdf", "rb") as f:
    document = client.beta.libraries.documents.upload(
        library_id=library.id,
        file={"file_name": "product-manual.pdf", "content": f},
    )

print(f"Dokument {document.id}: {document.processing_status}")

Unterstützte Formate umfassen PDF, reiner Text und andere gängige Dokumententypen.

Einen Agenten mit einer Dokumentbibliothek erstellen

agent = client.beta.agents.create(
    model="mistral-medium-latest",
    name="Dokumentations-Assistent",
    instructions="""Sie sind ein Dokumentations-Assistent.
- Beantworten Sie ausschließlich unter Verwendung von Dokumenten aus der Bibliothek.
- Zitieren Sie relevante Passagen.
- Wenn die Informationen nicht in den Dokumenten enthalten sind, stellen Sie dies klar dar.""",
    tools=[{
        "type": "document_library",
        "library_ids": [library.id]
    }]
)

Der Parameter library_ids ist eine Liste: Sie können mehrere Bibliotheken einem einzelnen Agenten zuordnen. Ein Support-Assistent könnte beispielsweise sowohl die Produktdokumentation als auch interne Verfahren nutzen. Hier sind die Anweisungen mehr als nur eine nette Option. Ohne die Direktive, die Antworten auf Dokumente zu beschränken, füllt das Modell Lücken mit seinem allgemeinen Wissen, und Sie verlieren die Fähigkeit, zu unterscheiden, was aus Ihren Dateien stammt und was von woanders. Die dritte Zeile – die explizite Angabe, wann Informationen fehlen – verwandelt einen plaudernden Agenten in einen zuverlässigen.

Dokumente abfragen

response = client.beta.conversations.start(
    agent_id=agent.id,
    inputs="Wie funktioniert der Pixtral 12B Vision Encoder?"
)

for entry in response.outputs:
    if entry.type == "message.output":
        for chunk in entry.content:
            if chunk.type == "text":
                print(chunk.text)
            elif chunk.type == "tool_reference":
                print(f"  [Quelle] {chunk.title}")

Wie bei der Websuche kommt die Antwort in Blöcken von zwei Typen an. text-Blöcke enthalten die geschriebene Antwort; tool_reference-Blöcke enthalten die Herkunft, wobei das Feld title den Namen des Quelldokuments enthält und das Feld url die interne Referenz innerhalb dieses Dokuments bereitstellt. Diese Trennung ermöglicht es Ihnen, die Antwort anzuzeigen und direkt darunter die Liste der Dokumente, die sie erzeugt haben.

Diese Rückverfolgbarkeit ist nicht nur dekorativ. Ein Berater, der einen Kunden basierend auf einem internen Verfahren antwortet, muss angeben können, welches Verfahren er zitiert; ein Anwalt, der sich auf einen Vertrag verlässt, muss zurückverfolgen können, auf welchen Vertrag er sich bezieht. Ohne Zitate produziert ein RAG-System nicht überprüfbare Behauptungen.

Bibliotheken verwalten

# Bibliotheken auflisten
libraries = client.beta.libraries.list()
for lib in libraries.data:
    print(f"{lib.name} ({lib.id})")

# Dokumente in einer Bibliothek auflisten
documents = client.beta.libraries.documents.list(library_id=library.id)
for doc in documents.data:
    print(f"{doc.name} — {doc.size} Bytes")

# Ein Dokument aus der Bibliothek löschen
client.beta.libraries.documents.delete(
    library_id=library.id,
    document_id=document.id
)

# Die Bibliothek löschen
client.beta.libraries.delete(library_id=library.id)

Das Löschen von Dokumenten ist die am häufigsten übersehene Operation und die kostspieligste, wenn sie vergessen wird. Eine veraltete Version eines Preislisten- oder Verfahrensdokuments bleibt vom Agenten unbegrenzt zitierbar und trägt den Anschein der Legitimität, da es als Quelle angegeben wird. Machen Sie das Löschen eines Dokuments zu einer Reflex whenever Sie eine neue Version veröffentlichen.

Vom internen Support zur Vertragsanalyse

Der interne Support ist der unmittelbarste Anwendungsfall: Mitarbeiter stellen HR-Fragen in natürlicher Sprache, anstatt durch eine Intranet-Seite zu wühlen.

agent = client.beta.agents.create(
    model="mistral-large-latest",
    name="Interner Support",
    instructions="Beantworten Sie Fragen von Mitarbeitern unter Verwendung der HR-Dokumentationsbasis.",
    tools=[{"type": "document_library", "library_ids": [rh_library.id]}]
)

Die Vertragsanalyse verschiebt das Paradigma: Der Agent holt nicht nur ab, er untersucht. Hier beschreiben die Anweisungen eine Aufgabe, nicht nur einen Umfang.

agent = client.beta.agents.create(
    model="mistral-large-latest",
    name="Vertragsanalyst",
    instructions="""Analysieren Sie hochgeladene Verträge.
- Identifizieren Sie wichtige Klauseln.
- Markieren Sie potenzielle Risiken.
- Vergleichen Sie sie mit Branchenstandards.""",
    tools=[{"type": "document_library", "library_ids": [contrats_library.id]}]
)

Schließlich illustriert eine Produkt-Wissensdatenbank die Werkzeugkombination: Offizielle Dokumentation hat Vorrang, und die Websuche füllt die Lücken, wenn die Dokumente eine Frage nicht abdecken.

agent = client.beta.agents.create(
    model="mistral-large-latest",
    name="Produkt-Experte",
    instructions="Beantworten Sie technische Fragen zu unseren Produkten basierend auf der offiziellen Dokumentation.",
    tools=[
        {"type": "document_library", "library_ids": [docs_library.id]},
        {"type": "web_search"}  # Fallback, wenn Dokumente unzureichend sind
    ]
)

Quellen vorbereiten, Bibliotheken isolieren

Die Qualität von RAG wird bestimmt, bevor Sie überhaupt die API aufrufen. Ein strukturierter PDF mit klaren Überschriften, Unterüberschriften und eindeutigen Abschnitten wird chunked und abgerufen viel besser als ein abgeflachter Scan oder ein Dokument, bei dem die gesamte Logik im Layout liegt. Trennen Sie im nächsten Schritt Ihre Bibliotheken nach Domäne, anstatt einen einzigen Allzweck-Container zu erstellen. Ein Agent, der nur auf die Rechtsbibliothek zugreift, riskiert nicht, ein HR-Memo zu zitieren, um auf eine Vertragsfrage zu antworten. Diese beiden Entscheidungen – das Polieren der Quellenstruktur und die Isolierung der Bibliotheken – wirken sich stärker auf das Endergebnis aus als jede Modelloptimierung.

Kernaussagen

  • document_library ist eingebautes RAG – es ist kein Bedarf, Ihre eigene Vektorinfrastruktur zu verwalten.
  • Erstellen Sie thematische Bibliotheken und laden Sie Dokumente über die Files-API hoch.
  • Antworten zitieren relevante Passagen unter Verwendung von tool_reference-Blöcken.
  • Sie können mehrere Bibliotheken einem einzelnen Agenten zuordnen.
  • Kombinieren Sie dies mit anderen Werkzeugen für eine umfassende Abdeckung.