Limiting the number of tool calls an Agent can make is useful to prevent loops and have better control over costs and performance.

Doing this is very simple with Agno. You just need to pass the tool_call_limit parameter when initializing your Agent or Team.

Example

from agno.agent import Agent
from agno.models.openai.chat import OpenAIChat
from agno.tools.yfinance import YFinanceTools

agent = Agent(
    model=OpenAIChat(id="gpt-4o-mini"),
    tools=[YFinanceTools(company_news=True, cache_results=True)],
    tool_call_limit=1, # The Agent will not perform more than one tool call.
)

# The first tool call will be performed. The second one will fail gracefully.
agent.print_response(
    "Find me the current price of TSLA, then after that find me the latest news about Tesla.",
    stream=True,
)

To consider

  • If the Agent tries to run a number of tool calls that exceeds the limit all at once, the limit will remain effective. Only as many tool calls as allowed will be performed.
  • The limit is enforced across a full run, and not per individual requests triggered by the Agent.