{"record":{"id":"00a8faad83358083","repo":"n8n-io/n8n","slug":"llm-does-not-support-bindtools","errorCode":null,"errorMessage":"LLM does not support bindTools","messagePattern":"LLM does not support bindTools","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@n8n/ai-workflow-builder.ee/src/code-builder/triage.agent.ts","lineNumber":196,"sourceCode":"\tprivate readonly logger?: Logger;\n\n\tconstructor(config: TriageAgentConfig) {\n\t\tthis.llm = config.llm;\n\t\tthis.assistantHandler = config.assistantHandler;\n\t\tthis.buildWorkflow = config.buildWorkflow;\n\t\tthis.logger = config.logger;\n\t}\n\n\t/**\n\t * Run the triage agent loop: LLM -> tool call -> execute -> ToolMessage -> loop.\n\t * The loop is tool-agnostic — all tool knowledge lives in executeTool().\n\t * Yields `StreamOutput` chunks and returns the outcome.\n\t */\n\tasync *run(params: TriageAgentParams): AsyncGenerator<StreamOutput, TriageAgentOutcome> {\n\t\tconst { payload, userId, abortSignal, sdkSessionId, conversationHistory } = params;\n\n\t\tif (!this.llm.bindTools) {\n\t\t\tthrow new Error('LLM does not support bindTools');\n\t\t}\n\t\tconst llmWithTools = this.llm.bindTools([ASK_ASSISTANT_TOOL, BUILD_WORKFLOW_TOOL]);\n\n\t\tconst systemContent = buildTriagePrompt(conversationHistory, payload.workflowContext);\n\n\t\tconst messages: BaseMessage[] = [\n\t\t\tnew SystemMessage(systemContent),\n\t\t\tnew HumanMessage(payload.message),\n\t\t];\n\n\t\tconst ctx = { userId, payload, abortSignal };\n\t\tconst state: TriageAgentState = { sdkSessionId };\n\n\t\tlet reachedMaxIterations = true;\n\t\tlet responseHandled = false;\n\n\t\tfor (let iteration = 0; iteration < MAX_TRIAGE_ITERATIONS; iteration++) {\n\t\t\tconst response: AIMessageChunk = await llmWithTools.invoke(messages, {","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/ai-workflow-builder.ee/src/code-builder/triage.agent.ts#L178-L214","documentation":"Error \"LLM does not support bindTools\" thrown in n8n-io/n8n.","triggerScenarios":"Thrown at packages/@n8n/ai-workflow-builder.ee/src/code-builder/triage.agent.ts:196 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}