You can filter messages by type using a simple list comprehension with isinstance() checks, or use filter_messages from langchain_core.messages.utils to keep or remove specific message types like HumanMessage, AIMessage, SystemMessage, or ToolMessage.
LangChain provides a utility filter_messages that allows you to include or exclude messages based on their type. You can specify include_types or exclude_types as arguments. This is useful when you want to, for example, strip out tool messages before sending to a model that doesn't support them, or only keep user messages for analysis. Without this utility, you can use a standard Python list comprehension with isinstance().