-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathrouter_utils.py
More file actions
25 lines (18 loc) · 817 Bytes
/
router_utils.py
File metadata and controls
25 lines (18 loc) · 817 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""Routing functions for conditional edges in the agent graph."""
from langchain_core.messages import AIMessage, AnyMessage
from ..exceptions import AgentNodeRoutingException
def validate_last_message_is_AI(messages: list[AnyMessage]) -> AIMessage:
"""Validate and return last message from state.
Raises:
AgentNodeRoutingException: If messages are empty or last message is not AIMessage
"""
if not messages:
raise AgentNodeRoutingException(
"No messages in state - cannot route after agent"
)
last_message = messages[-1]
if not isinstance(last_message, AIMessage):
raise AgentNodeRoutingException(
f"Last message is not AIMessage (type: {type(last_message).__name__}) - cannot route after agent"
)
return last_message