A new class of research is emerging where giving models tools for structured thinking, like a scratchpad, greatly improves their reasoning capabilities.For example, by giving a model a “think” tool, we can greatly improve its reasoning capabilities by providing a dedicated space for working through the problem. This is a simple, yet effective approach to add reasoning to non-reasoning models.First published by Anthropic in this blog post, this technique has been practiced by many AI Engineers (including our own team) long before it was published.
The first version of the Think Tool was published by Anthropic in this blog post.
claude_thinking_tools.py
Copy
Ask AI
from agno.agent import Agentfrom agno.models.anthropic import Claudefrom agno.tools.thinking import ThinkingToolsfrom agno.tools.duckduckgo import DuckDuckGoToolsreasoning_agent = Agent( model=Claude(id="claude-3-7-sonnet-latest"), tools=[ ThinkingTools(add_instructions=True), DuckDuckGoTools( search=True, news=True, ), ], instructions="Use tables where possible", markdown=True,)if __name__ == "__main__": reasoning_agent.print_response( "Write a report on the latest developments in AI technology. Only the report, no other text.", stream=True, show_full_reasoning=True, stream_intermediate_steps=True, )
While the v0 Think Tool is a great start, it is limited in that it only allows for a thinking space. The v1 Reasoning Tools take this one step further by allowing the Agent to analyze the results of their actions (i.e. tool calls), greatly improving the Agents’ ability to solve problems that require sequential tool calls.ReasoningTools = think + analyze
claude_reasoning_tools.py
Copy
Ask AI
from agno.agent import Agentfrom agno.models.anthropic import Claudefrom agno.tools.reasoning import ReasoningToolsfrom agno.tools.duckduckgo import DuckDuckGoToolsreasoning_agent = Agent( model=Claude(id="claude-3-7-sonnet-20250219"), tools=[ ReasoningTools(add_instructions=True), DuckDuckGoTools(search=True, news=True), ], show_tool_calls=True,)reasoning_agent.print_response( "Write a report comparing recent developments in renewable energy vs traditional energy", stream=True, markdown=True)
The Knowledge Tools take the v1 Reasoning Tools one step further by allowing the Agent to search a knowledge base and analyze the results of their actions.KnowledgeTools = think + search + analyze