n8n-io/n8n · error · Error
LLM does not support bindTools
Error message
LLM does not support bindTools
What it means
Error "LLM does not support bindTools" thrown in n8n-io/n8n.
Source
Thrown at packages/@n8n/ai-workflow-builder.ee/src/code-builder/triage.agent.ts:196
private readonly logger?: Logger;
constructor(config: TriageAgentConfig) {
this.llm = config.llm;
this.assistantHandler = config.assistantHandler;
this.buildWorkflow = config.buildWorkflow;
this.logger = config.logger;
}
/**
* Run the triage agent loop: LLM -> tool call -> execute -> ToolMessage -> loop.
* The loop is tool-agnostic — all tool knowledge lives in executeTool().
* Yields `StreamOutput` chunks and returns the outcome.
*/
async *run(params: TriageAgentParams): AsyncGenerator<StreamOutput, TriageAgentOutcome> {
const { payload, userId, abortSignal, sdkSessionId, conversationHistory } = params;
if (!this.llm.bindTools) {
throw new Error('LLM does not support bindTools');
}
const llmWithTools = this.llm.bindTools([ASK_ASSISTANT_TOOL, BUILD_WORKFLOW_TOOL]);
const systemContent = buildTriagePrompt(conversationHistory, payload.workflowContext);
const messages: BaseMessage[] = [
new SystemMessage(systemContent),
new HumanMessage(payload.message),
];
const ctx = { userId, payload, abortSignal };
const state: TriageAgentState = { sdkSessionId };
let reachedMaxIterations = true;
let responseHandled = false;
for (let iteration = 0; iteration < MAX_TRIAGE_ITERATIONS; iteration++) {
const response: AIMessageChunk = await llmWithTools.invoke(messages, {View on GitHub (pinned to 5ac6606e81)
When it happens
Trigger: Thrown at packages/@n8n/ai-workflow-builder.ee/src/code-builder/triage.agent.ts:196 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/00a8faad83358083.
Report an issue: GitHub.