{
  "id": "43gMd18arOcxqDcC",
  "meta": {
    "instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a",
    "templateCredsSetupCompleted": true
  },
  "name": "LLM Chaining examples",
  "tags": [],
  "nodes": [
    {
      "id": "35e53ce7-06b4-47ca-b7f3-b147bd059fcf",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        200,
        520
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "aeef734e-1c3b-4a91-93ae-2ae9c50951b8",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        400,
        520
      ],
      "parameters": {
        "url": "https://blog.n8n.io/",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "7f6b95eb-df8c-4f0f-ba69-6b298d624ccd",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        600,
        520
      ],
      "parameters": {
        "html": "={{ $json.data }}",
        "options": {},
        "destinationKey": "markdown"
      },
      "typeVersion": 1
    },
    {
      "id": "994dbe06-4c25-4fb3-a8f3-566eb5b66c6d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        340
      ],
      "parameters": {
        "color": 4,
        "width": 700,
        "height": 360,
        "content": "# Connect to one of the blue sections -->\n## This can be anything:\n- Chat input\n- Trigger from external system\n- CRON-scheduled event"
      },
      "typeVersion": 1
    },
    {
      "id": "8ba3039d-dabf-43b7-ab35-117332f65ced",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        1460,
        -20
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-7-sonnet-20250219",
          "cachedResultName": "Claude 3.7 Sonnet"
        },
        "options": {
          "temperature": 0.5
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "cJno7gKlYez56WtP",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "7e1da020-e01d-410c-aa7f-a19d6e1c368d",
      "name": "Anthropic Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        1820,
        -20
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-7-sonnet-20250219",
          "cachedResultName": "Claude 3.7 Sonnet"
        },
        "options": {
          "temperature": 0.5
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "cJno7gKlYez56WtP",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "620503cb-2d51-4102-8975-75255cf15b1b",
      "name": "Anthropic Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        2180,
        -20
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-7-sonnet-20250219",
          "cachedResultName": "Claude 3.7 Sonnet"
        },
        "options": {
          "temperature": 0.5
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "cJno7gKlYez56WtP",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "5f0d11ce-c1ea-4c36-8b2d-d3f70b19f0ba",
      "name": "Anthropic Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        2540,
        -20
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-7-sonnet-20250219",
          "cachedResultName": "Claude 3.7 Sonnet"
        },
        "options": {
          "temperature": 0.5
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "cJno7gKlYez56WtP",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f973d01e-fad7-4143-8379-54438f5412cb",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        2440,
        360
      ],
      "parameters": {
        "mode": "combine",
        "options": {
          "includeUnpaired": true
        },
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    },
    {
      "id": "c7e58b90-bc96-421c-88f2-4e9f95f87248",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        2680,
        780
      ],
      "parameters": {
        "sessionKey": "fixed_session",
        "sessionIdType": "customKey",
        "contextWindowLength": 10
      },
      "typeVersion": 1.3
    },
    {
      "id": "0e606f7c-2cdb-4e34-8c0b-2303996077fb",
      "name": "Clean memory",
      "type": "@n8n/n8n-nodes-langchain.memoryManager",
      "position": [
        1500,
        480
      ],
      "parameters": {
        "mode": "delete",
        "deleteMode": "all"
      },
      "typeVersion": 1.1
    },
    {
      "id": "af0fb574-9964-4f7d-8348-a2cf614b8562",
      "name": "Initial prompts",
      "type": "n8n-nodes-base.set",
      "position": [
        1880,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "84a50c9c-2265-4dd6-a774-efc852615862",
              "name": "system_prompt",
              "type": "string",
              "value": "You are a helpful assistant"
            },
            {
              "id": "559f19f7-042c-465e-b85f-ab52cfbab04a",
              "name": "step1",
              "type": "string",
              "value": "What is on this page?"
            },
            {
              "id": "6791cd09-c5f7-48c8-b753-8d383db6863f",
              "name": "step2",
              "type": "string",
              "value": "List all authors on this page"
            },
            {
              "id": "1f92ac04-e5dd-4161-afde-14562aea454c",
              "name": "step3",
              "type": "string",
              "value": "List all posts on this page"
            },
            {
              "id": "ad8ee0b0-fa7d-4f4a-85a8-82d0d0dc0a40",
              "name": "step4",
              "type": "string",
              "value": "Make a bold funny joke based on the content on this page"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6743e44a-cc76-4e73-b4f3-ba7c65d179d3",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2240,
        480
      ],
      "parameters": {
        "include": "selectedOtherFields",
        "options": {},
        "fieldToSplitOut": "data",
        "fieldsToInclude": "system_prompt"
      },
      "typeVersion": 1
    },
    {
      "id": "caddd26c-ee84-455f-8ee6-aecf21536930",
      "name": "Reshape",
      "type": "n8n-nodes-base.set",
      "position": [
        2060,
        480
      ],
      "parameters": {
        "mode": "raw",
        "include": "selected",
        "options": {},
        "jsonOutput": "={ \"data\" : {{ Object.entries($json).filter(([key]) => key !== \"system_prompt\").map(([key, value]) => ({ step: key, instruction: value })) }}\n}",
        "includeFields": "system_prompt",
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "bd244988-d074-42f3-af42-960e5aa1d35d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        400
      ],
      "parameters": {
        "width": 540,
        "height": 240,
        "content": "# An array of prompts here"
      },
      "typeVersion": 1
    },
    {
      "id": "7e9e5287-8d4e-43a9-b8cf-ae26a177bfbb",
      "name": "Anthropic Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        2600,
        600
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-7-sonnet-20250219",
          "cachedResultName": "Claude 3.7 Sonnet"
        },
        "options": {
          "thinking": false,
          "temperature": 0.5
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "cJno7gKlYez56WtP",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "47816a45-b906-47ef-9510-c63867bfc8b7",
      "name": "Merge2",
      "type": "n8n-nodes-base.merge",
      "position": [
        1860,
        1120
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3
    },
    {
      "id": "e63b89a1-c2ca-4ed2-ae50-e3a7b429609c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2040,
        1020
      ],
      "parameters": {
        "width": 320,
        "height": 520,
        "content": "## Make sure URL matches\n### ⚠️ Cloud users!\nReplace `{{ $env.WEBHOOK_URL }}` \nwith your n8n instance URL"
      },
      "typeVersion": 1
    },
    {
      "id": "7b99df1a-bf6c-4cf1-b58a-346873136715",
      "name": "Basic LLM Chain4",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2440,
        1300
      ],
      "parameters": {
        "text": "={{ $json.body.userprompt }}\n\nHere's page data:\n~~~~\n{{ $json.body.markdown }}\n~~~~",
        "promptType": "define"
      },
      "typeVersion": 1.5
    },
    {
      "id": "6f6e0667-5164-4b65-a796-1d2112c7c072",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1680,
        1340
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "userprompt"
      },
      "typeVersion": 1
    },
    {
      "id": "9dfd2145-2427-4131-92d2-99aca620217f",
      "name": "Anthropic Chat Model5",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        2420,
        1460
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-7-sonnet-20250219",
          "cachedResultName": "Claude 3.7 Sonnet"
        },
        "options": {
          "thinking": false,
          "temperature": 0.5
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "cJno7gKlYez56WtP",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "616fc635-107d-4929-b9d6-4ccd34e42909",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        2140,
        1400
      ],
      "webhookId": "58d2b899-e09c-45bf-b59b-961a5d7a2470",
      "parameters": {
        "path": "58d2b899-e09c-45bf-b59b-961a5d7a2470",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2
    },
    {
      "id": "c863252b-f8b6-4704-be4e-a69d3005a85a",
      "name": "CONNECT ME",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1240,
        -220
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "90ab4402-cbea-4441-9097-558ec72e5d38",
      "name": "CONNECT ME1",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1280,
        340
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1c04650f-8043-496f-aeab-866e85548f9d",
      "name": "CONNECT ME2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1280,
        1100
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4097f12d-eba7-477a-9152-da5eb8c9aa03",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -300
      ],
      "parameters": {
        "color": 5,
        "width": 1980,
        "height": 440,
        "content": "# 1 - Naive Chaining\n### PROs:\n- Easy to setup\n- Beginner-friendly\n\n### CONs\n- Not scalable\n- Hard to maintain long chains\n- SLOOOW!"
      },
      "typeVersion": 1
    },
    {
      "id": "ce806bc6-a57e-47da-bbba-4698c3956022",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        240
      ],
      "parameters": {
        "color": 5,
        "width": 2160,
        "height": 660,
        "content": "# 2 - Iterative Agent Processing\n\n### PROs:\n- Scalable\n- All inputs & outputs in a single node\n- Supports Agent memory\n\n### CONs\n- Still Slow!"
      },
      "typeVersion": 1
    },
    {
      "id": "49c4507f-de1e-422b-8058-db82668614d3",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        1000
      ],
      "parameters": {
        "color": 5,
        "width": 1880,
        "height": 600,
        "content": "# 3 - Parallel Processing\n\n### PROs:\n- Scalable\n- All inputs & outputs in a single place\n- FAST!\n\n### CONs\n- Independent requests\n  (no Agent memory)"
      },
      "typeVersion": 1
    },
    {
      "id": "c30b8132-9291-4855-89ec-6a98bcee8247",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1420,
        1260
      ],
      "parameters": {
        "width": 400,
        "height": 240,
        "content": "# Array of prompts here"
      },
      "typeVersion": 1
    },
    {
      "id": "4c1b5816-7393-47f6-8a88-008d8deea119",
      "name": "Initial prompts1",
      "type": "n8n-nodes-base.set",
      "position": [
        1460,
        1340
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ed7f1cc6-99d3-481c-b5fb-d9900d6ee0f6",
              "name": "userprompt",
              "type": "array",
              "value": "=[\n\"What is on this page?\",\n\"List all authors on this page\",\n\"List all posts on this page\",\n\"Make a bold funny joke based on the content on this page\"\n]"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "8248a20f-1f90-42b0-8167-7ddcc90242a2",
      "name": "LLM Chain - Step 1",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1500,
        -220
      ],
      "parameters": {
        "text": "={{ $('Markdown').first().json.markdown }}",
        "messages": {
          "messageValues": [
            {
              "message": "What is on this page?"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "3788b23b-ccdc-4326-8ce0-1e57934d23bd",
      "name": "LLM Chain - Step 2",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1860,
        -220
      ],
      "parameters": {
        "text": "={{ $('Markdown').first().json.markdown }}",
        "messages": {
          "messageValues": [
            {
              "message": "List all authors on this page"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "89e69a39-bf13-4599-8ddc-a01c4590fb9c",
      "name": "LLM Chain - Step 3",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2220,
        -220
      ],
      "parameters": {
        "text": "={{ $('Markdown').first().json.markdown }}",
        "messages": {
          "messageValues": [
            {
              "message": "List all posts on this page"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "7e395991-9404-490e-8946-0da8f81e7243",
      "name": "LLM Chain - Step 4",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2580,
        -220
      ],
      "parameters": {
        "text": "={{ $('Markdown').first().json.markdown }}",
        "messages": {
          "messageValues": [
            {
              "message": "Make a bold funny joke based on the content on this page"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "efb8d836-8a4a-4a70-baed-4a9b77461aca",
      "name": "All LLM steps here - sequentially",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2640,
        440
      ],
      "parameters": {
        "text": "={{ $json.markdown || \"\" }}\n{{ `Your task: ${$json.data.step}. ${$json.data.instruction}` }}",
        "options": {
          "systemMessage": "={{ $json.system_prompt }}"
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "926b1705-a24c-4659-bf61-8ed97ade7290",
      "name": "LLM steps - parallel",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2140,
        1240
      ],
      "parameters": {
        "url": "={{ $env.WEBHOOK_URL }}webhook/58d2b899-e09c-45bf-b59b-961a5d7a2470",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ $json }}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.2
    },
    {
      "id": "7748574b-1abd-4697-9644-db8bb79fb08d",
      "name": "Merge output with initial prompts",
      "type": "n8n-nodes-base.merge",
      "position": [
        2440,
        1140
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    },
    {
      "id": "b207d83b-ecda-4a9f-af78-cfbb2253c119",
      "name": "Merge output with initial prompts1",
      "type": "n8n-nodes-base.merge",
      "position": [
        3000,
        380
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1",
    "saveDataSuccessExecution": "all"
  },
  "versionId": "7b1849db-1c4c-4943-89b1-184926649776",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "All LLM steps here - sequentially",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge output with initial prompts1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge2": {
      "main": [
        [
          {
            "node": "LLM steps - parallel",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge output with initial prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reshape": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Basic LLM Chain4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown": {
      "main": [
        []
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "CONNECT ME": {
      "main": [
        [
          {
            "node": "LLM Chain - Step 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Merge2",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "CONNECT ME1": {
      "main": [
        [
          {
            "node": "Clean memory",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CONNECT ME2": {
      "main": [
        [
          {
            "node": "Initial prompts1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean memory": {
      "main": [
        [
          {
            "node": "Initial prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "All LLM steps here - sequentially",
            "type": "ai_memory",
            "index": 0
          },
          {
            "node": "Clean memory",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Initial prompts": {
      "main": [
        [
          {
            "node": "Reshape",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Initial prompts1": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LLM Chain - Step 1": {
      "main": [
        [
          {
            "node": "LLM Chain - Step 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LLM Chain - Step 2": {
      "main": [
        [
          {
            "node": "LLM Chain - Step 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LLM Chain - Step 3": {
      "main": [
        [
          {
            "node": "LLM Chain - Step 4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "LLM Chain - Step 1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "LLM steps - parallel": {
      "main": [
        [
          {
            "node": "Merge output with initial prompts",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Anthropic Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "LLM Chain - Step 2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "LLM Chain - Step 3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "LLM Chain - Step 4",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model4": {
      "ai_languageModel": [
        [
          {
            "node": "All LLM steps here - sequentially",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model5": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain4",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "All LLM steps here - sequentially": {
      "main": [
        [
          {
            "node": "Merge output with initial prompts1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}