What are the core message types in LangChain — HumanMessage, AIMessage, SystemMessage, ToolMessage, FunctionMessage — and when do you use each? | Messages | langchain Interview Questions | NextRound.in