Package Information
Available Nodes
Documentation generatingβ¦
Documentation
n8n-nodes-advanced-ai-agent
An Advanced AI Agent community node for n8n β a tools agent with a built-in quality-control loop:
- β Code Validation β run your own JavaScript checks on the agent's answer and its tool calls. On failure the agent is automatically retried with your error message as feedback.
- π€ AI Validation β a second (or the same) chat model reviews the answer against a detailed, editable rubric. It sees the client message, the final answer, every tool call (name, arguments, result), and the agent's reasoning β so it can catch things like "you confirmed the order but never called the
create_ordertool". Rejections trigger a retry with the validator's feedback. - π¦ Structured Output β a formatter model converts the final validated answer into JSON matching an example you provide, with its own retry loop on parse/structure errors.
- ποΈ All three features are independent toggles. Extra model inputs (Validator / Formatter) only appear on the canvas when enabled.
How the retry loop works
input βββΊ Agent run βββΊ code check βββΊ AI validator βββΊ pass βββΊ formatter βββΊ output
β² β β
βββ feedback βββ΄βββββ fail βββββ (up to "Validation Retries" times)
On every failed check the agent is re-invoked with the conversation so far plus the failed answer and the feedback ("Your previous answer was rejected... you must call the create_order tool..."). Failed attempts are never saved to connected Memory β only the original input and the final answer are.
Installation
Self-hosted n8n β Settings β Community Nodes β Install β n8n-nodes-advanced-ai-agent.
Or manually: npm install n8n-nodes-advanced-ai-agent in your n8n installation's ~/.n8n/nodes directory.
Connections
| Input | Type | When |
|---|---|---|
| Chat Model | ai_languageModel |
always (required) |
| Memory | ai_memory |
optional |
| Tool | ai_tool |
optional, multiple |
| Validator Model | ai_languageModel |
when AI Validation is on and Use Main Model as Validator is off |
| Formatter Model | ai_languageModel |
when Structured Output is on and Use Main Model as Formatter is off |
Code Validation contract
Your JavaScript gets these variables:
| Variable | Type | Meaning |
|---|---|---|
$input |
string | the user message |
$output |
string | the agent's final answer |
$toolCalls |
array | [{ tool, args, result }, ...] β every tool the agent called |
$reasoning |
string | the agent's intermediate reasoning |
$json |
object | the incoming item's JSON |
Return true (or nothing) to pass. Return an error-message string (or throw) to fail β that message is sent to the agent as retry feedback, so make it actionable:
if (/order|buy/i.test($input) && !$toolCalls.some((c) => c.tool === 'create_order')) {
return 'The client asked to place an order but you never called the create_order tool. ' +
'Call create_order with the requested items, then confirm the order to the client.';
}
return true;
Output
{
"output": "final answer text",
"validationPassed": true,
"attempts": 2,
"validationLog": [{ "attempt": 1, "source": "ai", "feedback": "..." }],
"structuredOutput": { "reply": "...", "orderCreated": true },
"toolCalls": [],
"reasoning": ""
}
structuredOutput appears when the toggle is on; toolCalls/reasoning when Include Trace in Output is on. With On Validation Failure β Continue, exhausted retries emit the last answer with validationPassed: false instead of failing the node.
Notes
- Requires self-hosted n8n (community nodes with external dependencies are not available on n8n Cloud).
- The agent's "reasoning" is what LangChain captures between tool calls; providers' hidden native reasoning tokens are not always exposed by chat-model sub-nodes. Design validator rules to lean primarily on
toolCalls+output.