Why is my n8n AI Agent not calling its tools?
An n8n AI Agent skips its tools when the model cannot tell a tool applies, usually because of a vague tool name, a system message with no rules, a weak model or leftover memory. Check the execution log first.
Six reasons an agent skips a tool
The log matters because a confident reply proves nothing. An agent can say "I've booked that for you" without running the booking tool at all. So the first job is to find out whether a tool call happened, and only then change the prompt or the tool.
This page is built on n8n's own documentation for the AI Agent node, the Tools Agent and its common issues page, read on October 17, 2026. Advice that goes beyond the docs is marked as ours.
| Symptom or error | Cause | Fix |
|---|---|---|
| Agent answers but no tool appears in the log | Tool description or system message does not say when to use it | Rewrite the description as "use this when..." and add a rule to the system message |
| Agent calls the wrong tool | Two tools with overlapping names or descriptions | Give each tool one job and a name that says it, such as check_availability |
| Agent claims it did something that never happened | Memory or chat history let it repeat an earlier answer | Test without memory; require the tool's result in the reply |
| Tool runs with empty or wrong fields | Parameters not exposed to the model | Use $fromAI() for the fields the model should fill |
No prompt specified | Prompt set to take chatInput from a node that does not send it | Set Prompt to Define below and map the text |
Invalid value for 'content': expected a string, got null | The prompt expression resolved to nothing | Fix the expression or remove null chatInput values |
A Chat Model sub-node must be connected | No model attached | Click + Chat Model on the node |
| Error in sub-node Simple Memory | An older memory node copied from a template | Delete the memory node and add it again |
| Session ID error on a webhook or form trigger | No sessionId arrives, because the Chat Trigger is not used | Set the memory's session key yourself, for example the contact ID |
| Agent loops, then stops at the limit | A tool keeps returning an error the model cannot use | Return a clear error message; check Max Iterations (default 10) |
How do you check whether the n8n AI Agent called a tool?
Open the execution, click the AI Agent node and expand its output. Each tool call appears as its own step with the input the model sent and the result it got. If no tool step is there, the model answered on its own, whatever the reply says.
Two settings make this easier. In the node options, Return Intermediate Steps adds the steps the agent took to the node's output, which n8n says helps you refine the agent's behaviour. And the tool sub-nodes show their own runs on the canvas: a tool that never lit up during the execution was never called.
A method from n8n's community guide (not the official docs): strip the workflow to one chat model, one tool and no memory, then send a message that can only be answered with that tool. If it works there, add the other parts back one at a time. The part that breaks it is your cause.
How should you name and describe a tool so the agent uses it?
Give every tool a short name that says what it does and a description that starts with when to use it. For example, name it create_booking and describe it as "Use this when the caller asks to book, move or cancel an appointment." The model chooses tools from those words, so vague ones get skipped.
n8n's Tools Agent uses LangChain's tool-calling interface, which sends the model each tool's name, description and input schema. That is all the model sees. A name like "HTTP Request1" or "Append row in sheet in Google Sheets" tells it very little. Our rules for descriptions:
- Say when to use the tool and when not to. "Use for prices of services. Do not use for opening hours."
- Say what the tool returns, so the model knows it got an answer.
- One job per tool. Two tools that both "look up customer info" will be confused with each other.
- Expose only the inputs the model must decide. n8n's
$fromAI()function lets the model fill a field; hard-code the rest, such as the calendar ID or API key.
What should the system message say about tools?
The system message should state the rules in plain words: which tool to call for which request, what to do with the result, and what to say when a tool fails. "Always call check_availability before you offer a time" works far better than hoping the model works it out.
n8n describes the system message as the place to guide the agent's decision-making before the conversation starts. A structure that works for most business agents:
- Role. "You are the booking assistant for a dental clinic."
- Tool rules. One line per tool: when to call it and what it returns.
- Order. "Check availability, offer two times, then create the booking only after the person picks one."
- Failure. "If a tool returns an error, apologise and offer to have a person call back. Never say a booking was made unless create_booking returned a booking ID."
That last rule goes straight at the "says it did it but didn't" problem, because it ties the claim to a tool result the model can only get by calling the tool.
Can the chat model be the reason the agent skips tools?
Yes, the chat model can be the cause, because a tool one model calls reliably can be skipped or filled badly by another. If a workflow calls its tools reliably with one model and not with another, keep the instructions the same and treat the model as the cause.
The test is simple: run the same five test messages against two models with the same system message and tools, and count the tool calls in the logs. Swap the model on the Chat Model sub-node; nothing else needs to change. If cost is the reason for the small model, a common pattern is a small model for routing and a stronger one only for the step that needs tools.
Is memory making the n8n AI Agent ignore its tools?
Sometimes: with memory attached, the model sees the earlier conversation and can answer from it instead of calling the tool again, so it can claim a booking it never made. Test without memory. If tool calls come back, tighten the system message rule that a claim needs a fresh tool result.
Memory has two setup traps from n8n's docs on the Simple Memory node:
- Session key. Memory is stored under a session key. The Chat Trigger provides one. A webhook, form or GoHighLevel trigger does not, so set the key yourself, such as the contact ID or phone number. Without it you get a session ID error, or every conversation shares one memory.
- Queue mode. n8n says Simple Memory does not work in an active production workflow when your instance runs in queue mode, because calls may go to different workers. Use a database-backed memory, such as Postgres or Redis chat memory, instead.
How do you fix "No prompt specified" in the n8n AI Agent?
Fix it by changing the AI Agent node's Prompt setting so you supply the user's text yourself instead of expecting it from the previous node. Set Prompt to Define below, then map the text with an expression, such as the message field from your webhook. n8n's docs give exactly this fix.
The error appears because the default prompt option expects an input field called chatInput, which the Chat Trigger sends. Any other trigger, such as a webhook from your website chat, a form or a CRM, sends its own field names. With Define below you can also add context, for example: "Customer message: {{ $json.body.message }}. Customer name: {{ $json.body.name }}."
What do the other n8n AI Agent errors mean?
n8n documents three common AI Agent errors, and each has a short fix. "Invalid value for content, got null" means the prompt resolved to nothing. "A Chat Model sub-node must be connected" means no model is attached. "Error in sub-node Simple Memory" usually means an old memory node from a template, fixed by adding the node again.
Numbers worth knowing in the n8n AI Agent docs
One more to check before you upgrade: n8n says the old AI Agent node version that has the agent type setting will be removed in n8n 3.0. Since n8n 1.82.0 every AI Agent node works as a Tools Agent anyway. If your workflow still uses version 1, update the node now. Our note on n8n 3.0 breaking changes lists the other changes to plan for.
When is a plain workflow better than an AI Agent?
A plain workflow is better when the steps are always the same. If every message should be checked against a calendar and booked the same way, build normal nodes in a fixed order and use the model only to read or write the text. A fixed workflow cannot skip a step, and it is cheaper to run.
Agent or fixed workflow: one question decides
Agents earn their place when the next step depends on what the person says, for example answering a pricing question in one message and booking in the next. The Smile Bright dental case study shows AI agents and n8n working together on a live practice. Our guide to AI workflow automation explains how we decide between the two, and our n8n automation page covers how we build and monitor n8n for clients.
Questions people ask about n8n AI Agents and tools
How do I force an n8n AI Agent to use a tool?
The Tools Agent has no documented switch that forces a tool call. Use three things together: a system message rule that names the tool, a tool description that starts with when to use it, and a reply rule that the agent may only confirm an action using the tool's result. If a step must always run, put it in the workflow before the agent.
Why is my n8n agent not using the vector store?
The same causes apply: the vector store tool's description does not tell the model when to search it, so it answers from general knowledge. Describe the tool as the source for your business facts. Also check the store has content and that documents were embedded with the same embedding model you query with, or searches return nothing useful.
What is the difference between the AI Agent and the Basic LLM Chain in n8n?
The Basic LLM Chain sends a prompt to a model and returns the answer, with no tools. The AI Agent can choose and call tools, such as a calendar, a CRM or an HTTP request, and loop until it has an answer. Use the chain for fixed text jobs like summaries, and the agent when the model has to take actions.
Does an n8n AI Agent use more executions when it calls tools?
No, tool calls inside one run do not add executions on n8n's pricing, because n8n defines an execution as one run of the whole workflow, however many steps it has. Model usage is billed by your model provider. Our n8n and Zapier pricing research shows what that means per lead.
Why does my n8n agent stop after several tries?
It hit Max Iterations, which n8n sets to 10 by default. The agent usually loops because a tool keeps returning an error or a result in a shape it cannot use. Make tools return a short, readable message on failure, such as "No times free on that date", and check the tool's input fields before raising the limit.
Can an n8n AI Agent update GoHighLevel?
Yes, through an HTTP Request tool calling HighLevel's API v2 with a Private Integration token, or through a GoHighLevel node where your n8n version has one. Keep the token in n8n credentials, not in the prompt. Our GoHighLevel API v2 guide covers tokens, scopes and rate limits.
Related questions and services
- How do you set up an n8n webhook?
- What is the difference between n8n's test and production webhook URLs?
- n8n Agents: what changed and when a workflow is better
- n8n vs Zapier: which to use
- n8n automation
- AI workflow automation
Sources and further reading
- n8n Docs, AI Agent node: common issues (No prompt specified, null content, Chat Model, Simple Memory errors), read October 17, 2026.
- n8n Docs, Tools Agent (prompt options, chatInput, system message, Max Iterations default 10, Return Intermediate Steps), read October 17, 2026.
- n8n Docs, AI Agent node (at least one tool required, agent type deprecated from 1.82.0, v1 removed in n8n 3.0), read October 17, 2026.
- n8n Docs, Simple Memory node (session key, context window, queue mode limit), read October 17, 2026.
- n8n Community, How to debug an n8n AI Agent that doesn't call its tools (community guide, not official documentation).
n8n releases often. If a setting has moved in your version, the n8n docs for that version win.