{
  "meta": {
    "instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "12061ba0-24f8-4853-9898-c8710b118959",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        500
      ],
      "parameters": {
        "color": 7,
        "width": 1260,
        "height": 635,
        "content": "### Sub-workflow: Custom tool\nThe agent above can call this workflow. It calls an example API called \"Bored API\" and returns a string with an activity idea."
      },
      "typeVersion": 1
    },
    {
      "id": "4a2101f4-de86-4b2c-9fbc-5a75e73e3a26",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 927.5,
        "height": 486.5625,
        "content": "### Main workflow: AI agent using custom tool"
      },
      "typeVersion": 1
    },
    {
      "id": "102ec972-1784-4b89-be6f-1d4bd8f85cf1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        660,
        240
      ],
      "parameters": {
        "color": 5,
        "width": 177,
        "height": 199,
        "content": "**This tool calls the sub-workflow below**"
      },
      "typeVersion": 1
    },
    {
      "id": "707d76f1-0b45-4347-b16a-3b66906711bc",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        300,
        240
      ],
      "parameters": {
        "color": 2,
        "width": 170,
        "height": 191,
        "content": "**Set your credentials**"
      },
      "typeVersion": 1
    },
    {
      "id": "d2a9637b-d988-4978-a112-4b96f279f0c0",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        840
      ],
      "parameters": {
        "color": 2,
        "width": 170,
        "height": 190,
        "content": "**Set your credentials**"
      },
      "typeVersion": 1
    },
    {
      "id": "02f5308b-61db-467d-84f4-8b2ae8655dfd",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        80
      ],
      "parameters": {
        "color": 4,
        "width": 185.9375,
        "height": 214.8397420554627,
        "content": "## Try it out\n\nSelect **Chat** at the bottom and enter:\n\n_Hi! Please suggest something to do. I feel like learning something new._"
      },
      "typeVersion": 1
    },
    {
      "id": "c012dfad-0ed8-4072-9c57-24f48aadd620",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        920
      ],
      "parameters": {
        "width": 280,
        "height": 145,
        "content": "## Next steps\n\nLearn more about [Advanced AI in n8n](https://docs.n8n.io/advanced-ai/)"
      },
      "typeVersion": 1
    },
    {
      "id": "39e0c9eb-5736-46a0-b4ce-64425f56ba8c",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        160,
        80
      ],
      "webhookId": "34e91943-c4e0-4a87-8a0f-68cbd2bca3fb",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "38dad34c-116b-4673-b338-6fbf1d019bab",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        340,
        300
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "8gccIjcuf3gvaoEr",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "78af18c4-3541-4ff2-8526-fb186614051b",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        520,
        300
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "45f17ad3-f7da-4d98-a597-f66c2efdbbea",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        120,
        660
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "chatInput"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "135ac846-fcc7-4754-8127-6a810b76594a",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        320,
        900
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "8gccIjcuf3gvaoEr",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8e9d8b39-a7a4-44fb-8ac4-0555e632f0df",
      "name": "Work out activity type and number of people1",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        340,
        660
      ],
      "parameters": {
        "text": "={{ $('When Executed by Another Workflow').item.json.chatInput }}",
        "options": {},
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"required\": [\"type\",\"participants\"],\n  \"properties\": {\n    \"type\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"data\": {\n          \"enum\": [\"education\", \"recreational\",\"social\",\"diy\",\"charity\",\"cooking\",\"relaxation\",\"music\",\"busywork\"]\n        }\n      }\n    },\n    \"participants\": {\n      \"type\": \"number\"\n    }\n  }\n}"
      },
      "typeVersion": 1
    },
    {
      "id": "312f12d9-db30-48b0-aca3-a6c3a0250b2d",
      "name": "Call the API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        700,
        660
      ],
      "parameters": {
        "url": "https://bored-api.appbrewery.com/filter",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "type",
              "value": "={{ $json.output.type.data }}"
            },
            {
              "name": "participicants",
              "value": "={{ $json.output.participants }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0e97b6c1-3291-44a2-bf35-39335b9b90a1",
      "name": "Activity Tool",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        700,
        300
      ],
      "parameters": {
        "name": "activity_tool",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "Suggest an activity for a person to do. Use this tool if someone is bored, or asking for ideas of things to do.",
        "workflowInputs": {
          "value": {
            "chatInput": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('chatInput', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "chatInput",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "chatInput",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2
    },
    {
      "id": "256b8adc-ef71-40da-a40c-10a1045c9d7d",
      "name": "Set 'response' value",
      "type": "n8n-nodes-base.set",
      "position": [
        1060,
        660
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c78b10cd-7d6d-4512-ad0b-6f6ec3c706b2",
              "name": "response",
              "type": "string",
              "value": "={{ $json.data }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ede9e3c2-c3ce-44bd-92be-51eb90d086dc",
      "name": "Combine",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        880,
        660
      ],
      "parameters": {
        "include": "specifiedFields",
        "options": {},
        "aggregate": "aggregateAllItemData",
        "fieldsToInclude": "activity"
      },
      "typeVersion": 1
    },
    {
      "id": "b4b49c7f-5491-416c-98d1-518372329c77",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        420,
        80
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.8
    }
  ],
  "pinData": {},
  "connections": {
    "Combine": {
      "main": [
        [
          {
            "node": "Set 'response' value",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call the API": {
      "main": [
        [
          {
            "node": "Combine",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Activity Tool": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Work out activity type and number of people1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Work out activity type and number of people1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Work out activity type and number of people1": {
      "main": [
        [
          {
            "node": "Call the API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}