ZeroTimo commited on
Commit
c329c72
·
verified ·
1 Parent(s): 4e8c1d2

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +18 -4
agent.py CHANGED
@@ -157,10 +157,17 @@ def planner(state: MessagesState):
157
  msgs = state["messages"]
158
  if msgs[0].type != "system":
159
  msgs = [SYSTEM_PROMPT] + msgs
 
160
  resp = with_backoff(lambda: gemini_llm.invoke(msgs))
161
- content = resp.content.strip()
162
- finished = not getattr(resp, "tool_calls", None) and "\n" not in content
163
- return {"messages": msgs + [resp], "should_end": finished}
 
 
 
 
 
 
164
 
165
  def route(state):
166
  return "END" if state["should_end"] else "tools"
@@ -169,10 +176,17 @@ def route(state):
169
  TOOLS = [web_search, wiki_search, parse_csv, parse_excel, python_repl]
170
 
171
  graph = StateGraph(MessagesState)
 
172
  graph.add_node("planner", planner)
173
  graph.add_node("tools", ToolNode(TOOLS))
 
174
  graph.add_edge(START, "planner")
175
- graph.add_conditional_edges("planner", route, {"tools": "tools", "END": END})
 
 
 
 
 
176
 
177
  # compile → LangGraph-Executor
178
  agent_executor = graph.compile()
 
157
  msgs = state["messages"]
158
  if msgs[0].type != "system":
159
  msgs = [SYSTEM_PROMPT] + msgs
160
+
161
  resp = with_backoff(lambda: gemini_llm.invoke(msgs))
162
+
163
+ # WICHTIG: Gib tool_calls weiter sie lösen im ToolNode die Ausführung aus
164
+ return {
165
+ "messages": msgs + [resp],
166
+ "should_end": (
167
+ not getattr(resp, "tool_calls", None) # kein Tool gewünscht
168
+ and "\n" not in resp.content # einfache Heuristik
169
+ )
170
+ }
171
 
172
  def route(state):
173
  return "END" if state["should_end"] else "tools"
 
176
  TOOLS = [web_search, wiki_search, parse_csv, parse_excel, python_repl]
177
 
178
  graph = StateGraph(MessagesState)
179
+
180
  graph.add_node("planner", planner)
181
  graph.add_node("tools", ToolNode(TOOLS))
182
+
183
  graph.add_edge(START, "planner")
184
+ graph.add_edge("tools", "planner") # 🔁 Rücksprung zum Planner nach Tool-Ausführung
185
+
186
+ graph.add_conditional_edges("planner", route, {
187
+ "tools": "tools",
188
+ "END": END,
189
+ })
190
 
191
  # compile → LangGraph-Executor
192
  agent_executor = graph.compile()