Thinking Tool Calls

Combine DeepSeek thinking mode with web search tool calls and show full reasoning.

thinking_tool_calls.py
"""Run `uv pip install ddgs` to install dependencies."""

from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.tools.websearch import WebSearchTools

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

"""
DeepSeek model's thinking mode now supports tool calls. 
Before outputting the final answer, the model can engage in multiple turns of reasoning and tool calls to improve the quality of the response. 
"""

agent = Agent(
    model=DeepSeek(id="deepseek-v4-pro"),
    tools=[WebSearchTools()],
    markdown=True,
    stream=True,
)

agent.print_response("Whats happening in France?", show_full_reasoning=True)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------

if __name__ == "__main__":
    pass

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 DeepSeek API key

export DEEPSEEK_API_KEY="your_deepseek_api_key_here"

Run the example

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

python thinking_tool_calls.py

Full source: cookbook/90_models/deepseek/thinking_tool_calls.py