from typing import TypedDict, Annotated, Sequence, Optional, List from langchain_core.messages import AnyMessage, HumanMessage, AIMessage, SystemMessage, ToolMessage from langgraph.graph.message import add_messages from pydantic import BaseModel, Field from enum import Enum class RAG_method(str, Enum): RAG = "RAG" WEBSEARCH = "WEBSEARCH" GENERAL = "GENERAL" class AgentState(TypedDict): messages: Annotated[Sequence[AnyMessage], add_messages] rag_method: RAG_method context: Optional[str] if __name__ == "__main__": pass