{
  "workflow": {
    "id": 4399,
    "name": "Anthropic AI agent: Claude Sonnet 4 and Opus 4 with Think and Web Search tool",
    "views": 8819,
    "recentViews": 2,
    "totalViews": 8819,
    "createdAt": "2025-05-26T12:27:34.726Z",
    "description": "This workflow dynamically chooses between two new powerful Anthropic models — **Claude Opus 4** and **Claude Sonnet 4** — to handle user queries, based on their complexity and nature, maintaining scalability and context awareness with Anthropic **web search function** and **Think** tool.\n\n---\n\n###  **Key Advantages**\n\n1. **🔁 Dynamic Model Selection**\n\n   * Automatically routes each user query to either **Claude Sonnet 4** (for routine tasks) or **Claude Opus 4** (for complex reasoning), ensuring optimal performance and cost-efficiency.\n\n2. **🧠 AI Agent with Tool Use**\n\n   * The AI agent can utilize a **web search tool** to retrieve up-to-date information and a **Think tool** for complex reasoning processes — improving response quality.\n\n3. **📎 Memory Integration**\n\n   * Uses session-based **memory** to maintain conversational context, making interactions more coherent and human-like.\n\n4. **🧮 Built-in Calculation Tool**\n\n   * Handles numeric queries using an integrated **calculator tool**, reducing the need for external processing.\n\n5. **📤 Structured Output Parser**\n\n   * Ensures outputs are always well-structured and formatted in JSON, which improves consistency and downstream integrations.\n\n6. **🌐 Web Search Capability**\n\n   * Supports real-time information retrieval for current events, statistics, or details not available in the AI’s base knowledge.\n\n---\n\n###  Components Overview\n\n* **Trigger**: Listens for new chat messages.\n* **Routing Agent**: Analyzes the message and returns the best model to use.\n* **AI Agent**: Handles the conversation, decides when to use tools.\n* **Tools**:\n\n  * `web_search` for internet queries\n  * `Think` for reasoning\n  * `Calculator` for math tasks\n* **Models Used**:\n\n  * `claude-sonnet-4-20250514`: Optimized for general and business logic tasks.\n  * `claude-opus-4-20250514`: Best for deep, strategic, and analytical queries.\n\n---\n\n### **How It Works**\n1. **Dynamic Model Selection**  \n   - The workflow begins when a chat message is received. The **Anthropic Routing Agent** analyzes the user's query to determine the most suitable model (either **Claude Sonnet 4** or **Claude Opus 4**) based on the query's complexity and requirements.  \n   - The routing agent uses predefined criteria to decide:  \n     - **Claude Sonnet 4**: Best for standard tasks like real-time workflow routing, data validation, and routine business logic.  \n     - **Claude Opus 4**: Reserved for complex scenarios requiring deep reasoning, advanced analysis, or high-impact decisions.  \n\n2. **Query Processing and Response Generation**  \n   - The selected model processes the query, leveraging tools like **web_search** for real-time information retrieval, **Think** for internal reasoning, and **Calculator** for numerical tasks.  \n   - The **AI Agent** coordinates these tools, ensuring the response is accurate and context-aware. A **Simple Memory** node retains session context for coherent multi-turn conversations.  \n   - The final response is formatted and returned to the user without intermediate steps or metadata.  \n\n---\n\n### **Set Up Steps**\n1. **Node Configuration**  \n   - **Trigger**: Configure the *\"When chat message received\"* node to handle incoming user queries.  \n   - **Routing Agent**: Set up the *\"Anthropic Routing Agent\"* with the system message defining model selection logic. Ensure it outputs a JSON object with `prompt` and `model` fields.  \n   - **AI Model Nodes**: Link the *\"Sonnet 4 or Opus 4\"* node to dynamically use the selected model. The *\"Sonnet 3.7\"* node powers the routing agent itself.  \n\n2. **Tool Integration**  \n   - Attach the *\"web_search\"* HTTP tool to enable internet searches, ensuring the API endpoint and headers (e.g., `anthropic-version`) are correctly configured.  \n   - Connect auxiliary tools (*Think*, *Calculator*) to the *\"AI Agent\"* for extended functionality.  \n   - Add the *\"Simple Memory\"* node to maintain conversation history.  \n\n3. **Credentials**  \n   - Provide an **Anthropic API key** to all nodes requiring authentication (e.g., model nodes, web search).  \n\n4. **Testing**  \n   - Activate the workflow and test with sample queries to verify:  \n     - Correct model selection (e.g., Sonnet for simple queries, Opus for complex ones).  \n     - Proper tool usage (e.g., web searches trigger when needed).  \n     - Memory retention across chat turns.  \n\n5. **Deployment**  \n   - Once validated, set the workflow to **active** for live interactions.  \n\n----\n### **Need help customizing?**  \n[Contact me](mailto:info@n3w.it) for consulting and support or add me on [Linkedin](https://www.linkedin.com/in/davideboizza/). ",
    "workflow": {
      "id": "qjLD1os0l5ISHRFO",
      "meta": {
        "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
        "templateCredsSetupCompleted": true
      },
      "name": "Agent AI Anthropic Opus 4 and Sonnet 4",
      "tags": [],
      "nodes": [
        {
          "id": "4f01cd9b-16b6-4b6a-a55b-64531e867dcc",
          "name": "When chat message received",
          "type": "@n8n/n8n-nodes-langchain.chatTrigger",
          "position": [
            20,
            60
          ],
          "webhookId": "a0032740-26d8-491b-93f9-2250906d0e17",
          "parameters": {
            "options": {}
          },
          "typeVersion": 1.1
        },
        {
          "id": "c0a5e6b1-9c43-4f92-884e-95b1e91ff54a",
          "name": "Structured Output Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            420,
            280
          ],
          "parameters": {
            "schemaType": "manual",
            "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"prompt\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"model\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
          },
          "typeVersion": 1.2
        },
        {
          "id": "e46a6a64-8875-44f0-830e-febebaa10dd7",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            20,
            -180
          ],
          "parameters": {
            "width": 840,
            "height": 180,
            "content": "## Dynamic Model Selector for Optimal AI Responses\n\nThe **New Anthropic Agent Decisioner** is a dynamic, AI-powered routing system that automatically selects the most appropriate large language model (Anthropic Sonnet 4 or Opus 4) to respond to a user's query based on the query’s content and purpose.\n\nThis workflow ensures **dynamic, optimized AI responses** by intelligently routing queries to the best-suited model."
          },
          "typeVersion": 1
        },
        {
          "id": "0f4208aa-c4f5-44aa-ba43-4c3143751a79",
          "name": "AI Agent",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            600,
            60
          ],
          "parameters": {
            "text": "={{ $json.output.prompt }}",
            "options": {
              "systemMessage": "=You have access to a web_search tool that allows you to browse the internet for up-to-date information. Here's how you should operate:\n\n1. Website Information:\nFamiliarize yourself with this information about the website you're assisting. Use this as context for user interactions.\n\n2. Web Search Tool:\nYou have access to a web_search tool that can browse the internet. To use it, write the variable {web_search_question}. The tool will return relevant search results. Set the variable {model} to {{ $json.output.model }}.\n\n3. Handling User Queries:\nWhen a user asks a question, follow these steps:\na) Analyze the query to determine if it's related to the website or requires external information.\nb) If the query is about the website, use the provided website information to answer.\nc) If external information is needed, use the web_search tool to find relevant data.\n\n4. Using web_search:\n- Use web_search for factual, current information that isn't provided in the website info.\n- Formulate clear, concise search queries.\n- If the first search doesn't yield useful results, refine your query and search again.\n- Limit searches to a maximum of three per user query to maintain efficiency.\n\n5. Using Think:\n- Using Think tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.\n\n6. Formulating Responses:\n- Begin with information from the website if relevant.\n- Incorporate web search results to provide up-to-date, accurate information.\n- Summarize findings concisely and coherently.\n- If you're unsure or can't find reliable information, be honest about limitations.\n\n7. Ethical Considerations:\n- Respect user privacy. Don't ask for or store personal information.\n- Provide factual information. Avoid speculation or unverified claims.\n- If asked about controversial topics, strive for a balanced, neutral response.\n- Don't engage in or encourage illegal activities.\n\n8. Output Format:\nDo not include your thought process, web searches, or any other tags in the final output.\n"
            },
            "promptType": "define"
          },
          "typeVersion": 1.9
        },
        {
          "id": "0e08600f-f35c-408a-9b8a-f886aeea37d6",
          "name": "Think",
          "type": "@n8n/n8n-nodes-langchain.toolThink",
          "position": [
            800,
            280
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "5adf09be-e278-49f0-bb66-d7e3d265b120",
          "name": "Calculator",
          "type": "@n8n/n8n-nodes-langchain.toolCalculator",
          "position": [
            900,
            280
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "d5fa04bf-e40b-41d7-9d48-c71cd7ced93f",
          "name": "Anthropic Routing Agent",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            240,
            60
          ],
          "parameters": {
            "options": {
              "systemMessage": "=You are a **Routing Agent**.\n\nYour task is to analyze user queries and determine the most appropriate model to handle each specific use case.\n\n## Available Models\n\nYou have access to the following models:\n\n1. **claude-sonnet-4-20250514**\n2. **claude-opus-4-20250514**\n\n## Model Strengths\n\n### 1. claude-sonnet-4-20250514\n- Standard decision-making tasks\n- Real-time workflow routing\n- Data validation and processing\n- Pattern recognition in structured data\n- Routine business logic evaluation\n\n### 2. claude-sonnet-4-20250514\n- Complex multi-factor decision scenarios\n- Advanced data analysis requiring deep reasoning\n- Critical business decisions with high impact\n- Complex pattern recognition in unstructured data\n- Strategic workflow optimization\n\n## Output Format\n\nYour output must always be a valid JSON object in the following format:\n\n```json\n{\n  \"prompt\": \"user query goes here\",\n  \"model\": \"selected-model-name\"\n}\n```\n\n- The **\"prompt\"** field should contain the exact query to be sent to the selected model.\n- The **\"model\"** field should contain the model name (one of: claude-sonnet-4-20250514, claude-opus-4-20250514).\n\n**Important:** Only return the JSON object. Do not include any explanations or additional text."
            },
            "hasOutputParser": true
          },
          "typeVersion": 1.9
        },
        {
          "id": "0f358356-37d4-4693-a694-382a8bc1b20f",
          "name": "Sonnet 4 or Opus 4",
          "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
          "position": [
            600,
            280
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "id",
              "value": "={{ $json.output.model }}"
            },
            "options": {}
          },
          "credentials": {
            "anthropicApi": {
              "id": "credential-id",
              "name": "anthropicApi Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "c92104a6-9aa4-4a55-84b1-484df25f83ac",
          "name": "Sonnet 3.7",
          "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
          "position": [
            220,
            280
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "claude-3-7-sonnet-20250219",
              "cachedResultName": "Claude Sonnet 3.7"
            },
            "options": {
              "maxTokensToSample": 1024
            }
          },
          "credentials": {
            "anthropicApi": {
              "id": "credential-id",
              "name": "anthropicApi Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "513642ef-b4d6-46fc-8542-319dd54271f8",
          "name": "Simple Memory1",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            720,
            280
          ],
          "parameters": {
            "sessionKey": "={{ $('When chat message received').item.json.sessionId }}",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "6c81dcd9-7faf-4b34-8e78-a471de80fa1e",
          "name": "web_search",
          "type": "n8n-nodes-base.httpRequestTool",
          "position": [
            1020,
            280
          ],
          "parameters": {
            "url": "https://api.anthropic.com/v1/messages",
            "method": "POST",
            "options": {},
            "jsonBody": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('JSON', `{\n  \"model\": \"{model}\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"{web_search_question}\"\n    }\n  ],\n  \"tools\": [\n    {\n      \"type\": \"web_search_20250305\",\n      \"name\": \"web_search\",\n      \"max_uses\": 5\n    }\n  ]\n}\n`, 'json') }}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "predefinedCredentialType",
            "toolDescription": "Use this tool to search on the web",
            "headerParameters": {
              "parameters": [
                {
                  "name": "anthropic-version",
                  "value": "=2023-06-01"
                },
                {
                  "name": "content-type",
                  "value": "application/json"
                }
              ]
            },
            "nodeCredentialType": "anthropicApi"
          },
          "credentials": {
            "anthropicApi": {
              "id": "credential-id",
              "name": "anthropicApi Credential"
            }
          },
          "typeVersion": 4.2
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "c0947a41-be77-4ac0-89e2-eb8cf04b7c48",
      "connections": {
        "Think": {
          "ai_tool": [
            [
              {
                "node": "AI Agent",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Calculator": {
          "ai_tool": [
            [
              {
                "node": "AI Agent",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Sonnet 3.7": {
          "ai_languageModel": [
            [
              {
                "node": "Anthropic Routing Agent",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "web_search": {
          "ai_tool": [
            [
              {
                "node": "AI Agent",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Simple Memory1": {
          "ai_memory": [
            [
              {
                "node": "AI Agent",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Sonnet 4 or Opus 4": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Anthropic Routing Agent": {
          "main": [
            [
              {
                "node": "AI Agent",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Structured Output Parser": {
          "ai_outputParser": [
            [
              {
                "node": "Anthropic Routing Agent",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "When chat message received": {
          "main": [
            [
              {
                "node": "Anthropic Routing Agent",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 11,
      "nodeTypes": {
        "n8n-nodes-base.stickyNote": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 2
        },
        "n8n-nodes-base.httpRequestTool": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.toolThink": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.chatTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.toolCalculator": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatAnthropic": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Davide",
      "username": "n3witalia",
      "bio": "Full-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza",
      "verified": true,
      "links": [
        "https://n3w.it"
      ],
      "avatar": "https://gravatar.com/avatar/d41b8a0aa81139243509c58870f5b4be292824a507ab57d10ed066d8628ed8da?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1145,
        "icon": "file:anthropic.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
        "codex": {
          "data": {
            "alias": [
              "claude",
              "sonnet",
              "opus"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Anthropic Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTMyLjczIDBoLTYuOTQ1TDM4LjQ1IDMyaDYuOTQ1ek0xMi42NjUgMCAwIDMyaDcuMDgybDIuNTktNi43MmgxMy4yNWwyLjU5IDYuNzJoNy4wODJMMTkuOTI5IDB6bS0uNzAyIDE5LjMzNyA0LjMzNC0xMS4yNDYgNC4zMzQgMTEuMjQ2eiIvPjwvc3ZnPg=="
        },
        "displayName": "Anthropic Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1195,
        "icon": "fa:calculator",
        "name": "@n8n/n8n-nodes-langchain.toolCalculator",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Other Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Calculator"
        },
        "iconData": {
          "icon": "calculator",
          "type": "icon"
        },
        "displayName": "Calculator",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1247,
        "icon": "fa:comments",
        "name": "@n8n/n8n-nodes-langchain.chatTrigger",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes",
              "Langchain"
            ]
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "When chat message received"
        },
        "iconData": {
          "icon": "comments",
          "type": "icon"
        },
        "displayName": "Chat Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1289,
        "icon": "fa:brain",
        "name": "@n8n/n8n-nodes-langchain.toolThink",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolthink/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Other Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Think"
        },
        "iconData": {
          "icon": "brain",
          "type": "icon"
        },
        "displayName": "Think Tool",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 5,
        "name": "Engineering"
      },
      {
        "id": 47,
        "name": "AI Chatbot"
      }
    ],
    "image": []
  }
}