> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2-service-account.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Reasoning Tools

> GPT-4o agent uses the think and analyze tools to solve a river-crossing logic puzzle.

```python reasoning_tools.py theme={null}
"""
Reasoning Tools
===============

Demonstrates this reasoning cookbook example.
"""

from textwrap import dedent

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.reasoning import ReasoningTools


# ---------------------------------------------------------------------------
# Create Example
# ---------------------------------------------------------------------------
def run_example() -> None:
    reasoning_agent = Agent(
        model=OpenAIChat(id="gpt-4o"),
        tools=[ReasoningTools(add_instructions=True)],
        instructions=dedent("""\
            You are an expert problem-solving assistant with strong analytical skills! 

            Your approach to problems:
            1. First, break down complex questions into component parts
            2. Clearly state your assumptions
            3. Develop a structured reasoning path
            4. Consider multiple perspectives
            5. Evaluate evidence and counter-arguments
            6. Draw well-justified conclusions

            When solving problems:
            - Use explicit step-by-step reasoning
            - Identify key variables and constraints
            - Explore alternative scenarios
            - Highlight areas of uncertainty
            - Explain your thought process clearly
            - Consider both short and long-term implications
            - Evaluate trade-offs explicitly

            For quantitative problems:
            - Show your calculations
            - Explain the significance of numbers
            - Consider confidence intervals when appropriate
            - Identify source data reliability

            For qualitative reasoning:
            - Assess how different factors interact
            - Consider psychological and social dynamics
            - Evaluate practical constraints
            - Address value considerations
            \
        """),
        add_datetime_to_context=True,
        stream_events=True,
        markdown=True,
    )

    # Example usage with a complex reasoning problem
    reasoning_agent.print_response(
        "Solve this logic puzzle: A man has to take a fox, a chicken, and a sack of grain across a river. "
        "The boat is only big enough for the man and one item. If left unattended together, the fox will "
        "eat the chicken, and the chicken will eat the grain. How can the man get everything across safely?",
        stream=True,
    )

    # # Economic analysis example
    # reasoning_agent.print_response(
    #     "Is it better to rent or buy a home given current interest rates, inflation, and market trends? "
    #     "Consider both financial and lifestyle factors in your analysis.",
    #     stream=True
    # )

    # # Strategic decision-making example
    # reasoning_agent.print_response(
    #     "A startup has $500,000 in funding and needs to decide between spending it on marketing or "
    #     "product development. They want to maximize growth and user acquisition within 12 months. "
    #     "What factors should they consider and how should they analyze this decision?",
    #     stream=True
    # )


# ---------------------------------------------------------------------------
# Run Example
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    run_example()
```

## Run the Example

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno openai
    ```
  </Step>

  <Step title="Export your OpenAI API key">
    <CodeGroup>
      ```bash Mac/Linux theme={null}
      export OPENAI_API_KEY="your_openai_api_key_here"
      ```

      ```bash Windows theme={null}
      $Env:OPENAI_API_KEY="your_openai_api_key_here"
      ```
    </CodeGroup>
  </Step>

  <Step title="Run the example">
    Save the code above as `reasoning_tools.py`, then run:

    ```bash theme={null}
    python reasoning_tools.py
    ```
  </Step>
</Steps>

Full source: [cookbook/10\_reasoning/tools/reasoning\_tools.py](https://github.com/agno-agi/agno/blob/main/cookbook/10_reasoning/tools/reasoning_tools.py)
