LangChain Messages-API


Alle Nachrichtentypen

TyperoletypeWichtige AttributeBeschreibung
HumanMessageuserhumancontentBenutzernachricht
AIMessageassistantaicontent, tool_calls, usage_metadataKI-Antwort
AIMessageChunkassistantaicontent (inkrementell)Token-Chunk der Streaming-Ausgabe
SystemMessagesystemsystemcontentSystemanweisung
ToolMessagetooltoolcontent, tool_call_id, nameTool-Ausführungsergebnis
RemoveMessage-entfernenidAngegebene Nachricht löschen

ContentBlock-Typen (multimodaler Inhalt)

TypeBeschreibungAnwendungsfälle
PlainTextContentBlockNur TextNur Text
ImageContentBlockBild (base64 oder URL)Bildeingabe für multimodale Modelle
AudioContentBlockAudioSpracheingabe
VideoContentBlockVideoVideoeingabe
FileContentBlockDateiDokumenteingabe
ToolCallTool-Aufruf-AnfrageModell fordert den Aufruf eines Tools an
ServerToolCallServerseitiger Tool-AufrufIntegrierter/MCP-Tool-Aufruf

Allgemeine Hilfsfunktionen

FunktionBeschreibungSignatur
trim_messages()Nachrichtenverlauf kürzen, damit er in das Kontextfenster passttrim_messages(messages, *, max_tokens, strategy, token_counter, include_system, start_on)

Häufige Anwendungsbeispiele

Beispiele

from langchain.messages import (
    HumanMessage, AIMessage, SystemMessage, ToolMessage, trim_messages
)

# Nachricht erstellen
human = HumanMessage(content="Hallo")
system = SystemMessage(content="Du bist ein Assistent")
ai = AIMessage(content="Hallo! Wie kann ich helfen?")
tool = ToolMessage(content="Ergebnis", tool_call_id="call_1", name="my_tool")

# Kurzform
msg1 = ("user", "Hallo")          # Tupel
msg2 = {"role": "user", "content": "Hallo"}  # Wörterbuch

# Nachrichtenattribute
print(human.type)   # human
print(human.content)  # Hallo
print(ai.tool_calls)  # [] oder [ToolCall]

# Nachrichten kürzen
trimmed = trim_messages(
    messages, max_tokens=1000, strategy="last",
    token_counter=model, include_system=True,
)
Andere Erweiterungen