-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
Describe the bug
I am facing an issue when using the PlanReActPlanner in my custom Agent.
The planner seems to correctly follow the step-by-step ReAct reasoning process (i.e., it “plans” the reasoning steps and generates intermediate thoughts), but it often fails to actually perform the ACTION (tool call) step.
In some runs, it correctly executes the tool call and reasons over the tool output — but most of the time, it stops short after the reasoning step without invoking the tool.
To Reproduce
I’m using:
reasoning_agent = Agent(
name="reasoning_agent",
description="A Reasoning Agent that uses ReAct loop to explain WHY an analytics outcome happened.",
instruction=REASONING_REACT_PROMPT,
planner=PlanReActPlanner(),
tools = [execute_bq_postman_tool],
)
in my Agent configuration.
My tool executes a BigQuery (BQ) query and returns the response.
The agent is supposed to call this tool when it decides to “execute query” or similar. However, in most cases, it generates the reasoning thought (“I should run the query to get the data”) but never proceeds to actually call the tool.
Expected behavior
The planner should always trigger the tool call when the reasoning step decides to take an action, instead of halting after the “Thought” phase.
Actual Behavior
- The agent goes through reasoning (Thought).
- It identifies that it needs to perform a tool call (Action).
- However, it frequently does not actually execute the tool, even though the reasoning implies it should.
Only occasionally does it execute the call correctly.
Screenshots
Desktop (please complete the following information):
- OS: macOS
- Python version(python -V): 3.12.10
- ADK version(pip show google-adk): 1.17.0
Model Information:
- Are you using LiteLLM: Yes
- Which model is being used: GPT 4.1
Additional Notes
- This behavior is reproducible across multiple runs with identical inputs.
- The issue seems to be with the planner’s action selection step rather than the tool itself.