mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-20 22:52:29 +02:00
Example:
```python
from typing import Any
from langchain_openai import ChatOpenAI
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.messages import AnyMessage
from langchain_core.messages.utils import count_tokens_approximately
from langgraph.graph import MessagesState
from langgraph.prebuilt.chat_agent_executor import create_react_agent, AgentState
from langgraph.checkpoint.memory import InMemorySaver
from langmem.short_term import SummarizationNode, RunningSummary
class State(MessagesState):
context: dict[str, Any]
search = TavilySearchResults(max_results=3)
tools = [search]
model = ChatOpenAI(model="gpt-4o")
summarization_model = model.bind(max_tokens=256)
summarization_node = SummarizationNode(
token_counter=count_tokens_approximately,
model=summarization_model,
max_tokens=2048,
max_summary_tokens=256,
output_messages_key="messages"
# output_messages_key="llm_input_messages"
)
checkpointer = InMemorySaver()
class State(AgentState):
user_language: str
# summarization-related keys
context: dict[str, Any]
def prompt(state):
language = state["user_language"]
system_msg = f"Always respond in {language}"
return [{"role": "system", "content": system_msg}] + state["messages"]
graph = create_react_agent(
model,
tools,
prompt=prompt,
pre_model_hook=summarization_node,
state_schema=State,
checkpointer=checkpointer
)
```