---
title: Think
description: Give the agent a scratchpad to reason through a problem step by step.
---

Give an AI agent a scratchpad, so it can plan step by step before it acts.

## What it does

Think is a tool for an agent, not a step in the flow. It has no output port: you connect it to the **Tools** slot of a [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/).

The agent sees a tool named `think`. When it calls it, it writes its reasoning as the `thought`, and the tool hands the same text straight back. Nothing else happens: no data is fetched, nothing is changed, and no approval is needed. The point is to give the model a moment to lay out a plan, check what it knows, or decide which tool to call next.

## When to use it

* The agent has several tools and must chain them, for example search, then calculate, then answer.
* The task has rules the agent must check before acting ("only reply if the order is older than 30 days").
* You want to see the agent's reasoning: each thought appears in its `steps` output.

For a single prompt with no tools, use [Basic LLM Chain](/nodes/builtin/ai/aiagents/basicllmchainnode/) instead.

## Inputs and settings

This node has no settings.

There is nothing to configure.

## Outputs

This node has no output port. It plugs into a slot on another node instead of passing items along.

* **Tools** slot of [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/)

The thought goes back to the model. To read it, look at the agent's `steps` output, which lists every tool call in order, including each `think` call.

## Dependencies and credentials

None. This node needs no connection and has no slots for other nodes.

## Example workflow

1. [Get Selected Text](/nodes/extension/getselectedtext/) reads a word problem you highlighted, with **Output field name** `text`.
2. [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/) with **Prompt** `Solve this. Plan with the think tool first: {{ $input.text }}`, a [Chat OpenAI](/nodes/builtin/ai/aidependencies/llm/openai/) model in **Model**, and both Think and [Calculator](/nodes/builtin/ai/aidependencies/tools/calculator/) connected to **Tools**.
3. [Display Markdown](/nodes/extension/displaymarkdown/) shows `{{ $input.response }}`.

## Common issues

* **The agent never uses Think.** The model decides when to call it. Ask for it in the **Prompt** or **System message**, for example "Before using any other tool, plan with the think tool."
* **The run takes longer and uses more tokens.** Each thought is an extra round with the model. Remove Think for simple tasks, or lower **Max iterations** on the Tools Agent.

## Related nodes

* [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/): the agent this tool plugs into.
* [Calculator](/nodes/builtin/ai/aidependencies/tools/calculator/): exact arithmetic for the agent.
* [Tool Selection](/concepts/ai/tool-selection/): how an agent chooses between its tools.