Aya1610 commited on
Commit
af4da70
·
verified ·
1 Parent(s): 1302f47

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +14 -5
agent.py CHANGED
@@ -188,13 +188,12 @@ def build_graph(provider: str = "openai"):
188
  llm_with_tools = llm.bind_tools(tools)
189
 
190
  # Define nodes
191
- def assistant(state: MessagesState):
192
  """Assistant node - generates responses"""
193
- # Get current messages
194
  messages = state["messages"]
195
  # Generate response using LLM
196
  response = llm_with_tools.invoke(messages)
197
- # Append new message to state
198
  return {"messages": messages + [response]}
199
 
200
  def retriever(state: MessagesState):
@@ -230,13 +229,23 @@ def build_graph(provider: str = "openai"):
230
  # Set up edges
231
  builder.set_entry_point("retriever")
232
  builder.add_edge("retriever", "assistant")
 
 
233
  builder.add_conditional_edges(
234
  "assistant",
235
  tools_condition,
236
- {"continue": "tools", "end": END}
 
 
 
 
 
237
  )
238
- builder.add_edge("tools", "retriever") # Go back to retriever after tools
239
 
 
 
 
 
240
  return builder.compile()
241
 
242
 
 
188
  llm_with_tools = llm.bind_tools(tools)
189
 
190
  # Define nodes
191
+ def assistant(state: MessagesState):
192
  """Assistant node - generates responses"""
 
193
  messages = state["messages"]
194
  # Generate response using LLM
195
  response = llm_with_tools.invoke(messages)
196
+ # Return new state with appended message
197
  return {"messages": messages + [response]}
198
 
199
  def retriever(state: MessagesState):
 
229
  # Set up edges
230
  builder.set_entry_point("retriever")
231
  builder.add_edge("retriever", "assistant")
232
+
233
+ # Conditional tool usage
234
  builder.add_conditional_edges(
235
  "assistant",
236
  tools_condition,
237
+ {
238
+ # Continue to tools if needed
239
+ "continue": "tools",
240
+ # End conversation if no tools needed
241
+ "end": END
242
+ }
243
  )
 
244
 
245
+ # After tools execute, return to assistant for response generation
246
+ builder.add_edge("tools", "assistant")
247
+
248
+ builder.add_finish_point(END) # Explicitly declare END as finish point
249
  return builder.compile()
250
 
251