Stop After Tool Call

End the run after web_search executes with stop_after_tool_call_tools and show the raw result.

stop_after_tool_call.py
"""
Stop After Tool Call
=============================

Demonstrates stop after tool call.
"""

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.websearch import WebSearchTools

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------


agent = Agent(
    model=OpenAIChat(id="gpt-5.2"),
    tools=[
        WebSearchTools(
            stop_after_tool_call_tools=["web_search"],
            show_result_tools=["web_search"],
        )
    ],
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response("Whats the latest about gpt 5?", markdown=True)

The stop/show-result settings apply only to web_search. WebSearchTools also exposes search_news by default. To make this demonstration consistently use the configured function, add include_tools=["web_search"] to the toolkit constructor and ask explicitly for web search.

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno ddgs openai

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"

Run the example

Save the code above as stop_after_tool_call.py, then run:

python stop_after_tool_call.py

Full source: cookbook/91_tools/other/stop_after_tool_call.py