AC-Angelo93 commited on
Commit
942f1db
Β·
verified Β·
1 Parent(s): f0aff34

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +21 -5
agent.py CHANGED
@@ -148,11 +148,13 @@ def build_graph(provider: str = "groq") -> StateGraph:
148
  ]
149
  }
150
 
151
- # 6.2) Node: human β†’ append user question
152
- def human_node(state: AgentState, question: str) -> AgentState:
 
 
 
153
  state["messages"].append(HumanMessage(content=question))
154
  return state
155
-
156
  # 6.3) Node: assistant β†’ call LLM on current messages
157
  def assistant_node(state: AgentState) -> dict:
158
  ai_msg = llm.invoke(state["messages"])
@@ -168,6 +170,15 @@ def build_graph(provider: str = "groq") -> StateGraph:
168
  state["messages"].append(HumanMessage(content=result))
169
  return {"messages": state["messages"]}
170
  return tool_node
 
 
 
 
 
 
 
 
 
171
 
172
  # Instantiate nodes for each tool
173
  calc_node = make_tool_node(calculator)
@@ -208,7 +219,12 @@ def build_graph(provider: str = "groq") -> StateGraph:
208
  g.add_edge("web", "assistant")
209
  g.add_edge("wiki", "assistant")
210
  g.add_edge("arxiv", "assistant")
211
- # and finally assistant β†’ END when done
212
- g.add_edge("assistant", END)
 
 
 
 
 
213
 
214
  return g.compile()
 
148
  ]
149
  }
150
 
151
+
152
+ # 6.2) Node: human β†’ stash the GAIA task ID, then append the question
153
+ def human_node(state: AgentState, id: str, question: str) -> AgentState:
154
+ # keep the GAIA task id so we can submit it later
155
+ state["task_id"] = id
156
  state["messages"].append(HumanMessage(content=question))
157
  return state
 
158
  # 6.3) Node: assistant β†’ call LLM on current messages
159
  def assistant_node(state: AgentState) -> dict:
160
  ai_msg = llm.invoke(state["messages"])
 
170
  state["messages"].append(HumanMessage(content=result))
171
  return {"messages": state["messages"]}
172
  return tool_node
173
+ # 6.5) Node: answer β†’ pull out the last assistant reply & format submission dict
174
+ def answer_node(state: AgentState) -> dict[str,str]:
175
+ # the GAIA runner will do `.items()` on whatever you return here
176
+ tid = state["task_id"]
177
+ # grab the last message (could be a BaseMessage or a raw str)
178
+ last = state["messages"][-1]
179
+ text = getattr(last, "content", None) or str(last)
180
+ return { tid: text }
181
+
182
 
183
  # Instantiate nodes for each tool
184
  calc_node = make_tool_node(calculator)
 
219
  g.add_edge("web", "assistant")
220
  g.add_edge("wiki", "assistant")
221
  g.add_edge("arxiv", "assistant")
222
+
223
+ # register & wire your new answer node
224
+ g.add_node("answer", answer_node)
225
+
226
+ # send assistant β†’ answer β†’ END
227
+ g.add_edge("assistant", "answer")
228
+ g.add_edge("answer", END)
229
 
230
  return g.compile()