55from app .agents .nodes import (
66 agent_host ,
77 context_builder ,
8- fallback ,
9- guard ,
8+ fallback_final ,
9+ fallback_inicial ,
10+ generator ,
11+ guard_final ,
12+ guard_inicial ,
1013 parafraseo ,
1114 retriever ,
1215)
16+ from app .agents .routing import (
17+ route_after_guard_final ,
18+ route_after_guard_inicial ,
19+ )
1320from app .agents .state import AgentState
1421from app .agents .routing import route_after_guard
1522
@@ -39,29 +46,35 @@ def create_agent_graph() -> StateGraph:
3946
4047 # Add nodes
4148 workflow .add_node ("agent_host" , agent_host )
42- workflow .add_node ("guard " , guard )
43- workflow .add_node ("fallback " , fallback )
49+ workflow .add_node ("guard_inicial " , guard_inicial )
50+ workflow .add_node ("fallback_inicial " , fallback_inicial )
4451 workflow .add_node ("parafraseo" , parafraseo )
4552 workflow .add_node ("retriever" , retriever )
4653 workflow .add_node ("context_builder" , context_builder )
54+ workflow .add_node ("generator" , generator )
55+ workflow .add_node ("guard_final" , guard_final )
56+ workflow .add_node ("fallback_final" , fallback_final )
4757
4858 # Define edges
4959 # Start -> agent_host
5060 workflow .add_edge (START , "agent_host" )
5161
52- # agent_host -> guard
53- workflow .add_edge ("agent_host" , "guard " )
62+ # agent_host -> guard_inicial
63+ workflow .add_edge ("agent_host" , "guard_inicial " )
5464
55- # guard -> conditional routing
65+ # guard_inicial -> conditional routing
5666 workflow .add_conditional_edges (
57- "guard " ,
58- route_after_guard ,
67+ "guard_inicial " ,
68+ route_after_guard_inicial ,
5969 {
60- "malicious" : "fallback " , # go to fallback if malicious
61- "continue" : "parafraseo" , # Continue to parafraseo if valid
70+ "malicious" : "fallback_inicial " , # Exception path: malicious content detected
71+ "continue" : "parafraseo" , # Normal path: continue processing
6272 },
6373 )
6474
75+ # fallback_inicial -> END (stop flow with error message)
76+ workflow .add_edge ("fallback_inicial" , END )
77+
6578 # parafraseo -> retriever
6679 workflow .add_edge ("parafraseo" , "retriever" )
6780
@@ -71,15 +84,21 @@ def create_agent_graph() -> StateGraph:
7184 # context_builder -> guard
7285 workflow .add_edge ("context_builder" , "guard" )
7386
74- # guard -> conditional routing
87+ # generator -> guard_final
88+ workflow .add_edge ("generator" , "guard_final" )
89+
90+ # guard_final -> conditional routing
7591 workflow .add_conditional_edges (
76- "guard " ,
77- route_after_guard ,
92+ "guard_final " ,
93+ route_after_guard_final ,
7894 {
79- "malicious " : "fallback " , # go to fallback if malicious
80- "continue" : END , # if there's no error ends
95+ "risky " : "fallback_final " , # Exception path: risky content detected
96+ "continue" : END , # Normal path: end successfully
8197 },
8298 )
83- workflow .add_edge ("fallback" , END )
99+
100+ # fallback_final -> END (stop flow with error message)
101+ workflow .add_edge ("fallback_final" , END )
102+
84103 # Compile the graph
85104 return workflow .compile ()
0 commit comments