LangChain Messages-API
Alle Nachrichtentypen
| Type | role | type | Wichtige Attribute | Beschreibung |
|---|---|---|---|---|
| HumanMessage | user | human | content | Benutzernachricht |
| AIMessage | assistant | ai | content, tool_calls, usage_metadata | KI-Antwort |
| AIMessageChunk | assistant | ai | content (inkrementell) | Token-Chunk der Streaming-Ausgabe |
| SystemMessage | system | system | content | Systemanweisung |
| ToolMessage | tool | tool | content, tool_call_id, name | Tool-Ausführungsergebnis |
| RemoveMessage | - | entfernen | id | Angegebene Nachricht löschen |
ContentBlock-Typen (multimodaler Inhalt)
| Type | Beschreibung | Anwendungsfälle |
|---|---|---|
| PlainTextContentBlock | Nur Text | Nur Text |
| ImageContentBlock | Bild (base64 oder URL) | Bildeingabe für multimodale Modelle |
| AudioContentBlock | Audio | Spracheingabe |
| VideoContentBlock | Video | Videoeingabe |
| FileContentBlock | Datei | Dokumenteingabe |
| ToolCall | Tool-Aufruf-Anfrage | Modell fordert den Aufruf eines Tools an |
| ServerToolCall | Serverseitiger Tool-Aufruf | Integrierter/MCP-Tool-Aufruf |
Allgemeine Hilfsfunktionen
| Funktion | Beschreibung | Signatur |
|---|---|---|
| trim_messages() | Nachrichtenverlauf kürzen, damit er in das Kontextfenster passt | trim_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,
)
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,
)