{
  "nodes": [
    {
      "id": "84460a1f-50e7-4d16-8701-ebc1a86a0ef1",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -360,
        -40
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "8kKub5m50fH8NRfv",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "221bbae2-0920-46b4-8b25-bb654439e567",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -580,
        -220
      ],
      "webhookId": "61927fdb-5d6e-47c2-aa73-bb48e46d41ad",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "dd0a9a82-9ad5-4116-a738-81334c58a0f2",
      "name": "Basic SSH commands",
      "type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
      "position": [
        -160,
        -40
      ],
      "parameters": {
        "url": "https://www.hostinger.com/tutorials/linux-commands",
        "toolDescription": "Get basic SSH commands"
      },
      "typeVersion": 1.1
    },
    {
      "id": "428f2694-26fd-4ce1-b423-f9a734395b08",
      "name": "Execute SSH",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        40,
        -40
      ],
      "parameters": {
        "name": "SSH",
        "source": "parameter",
        "description": "Call this tool to execute the bash command on external VPS.\nTo pass a command to execute, you should only pass the command itself.\n",
        "workflowJson": "{\n  \"nodes\": [\n    {\n      \"parameters\": {\n        \"workflowInputs\": {\n          \"values\": [\n            {\n              \"name\": \"query\"\n            }\n          ]\n        }\n      },\n      \"type\": \"n8n-nodes-base.executeWorkflowTrigger\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        0,\n        0\n      ],\n      \"id\": \"29e380c2-2ecd-465e-a784-f31b1c204b38\",\n      \"name\": \"When Executed by Another Workflow\"\n    },\n    {\n      \"parameters\": {\n        \"command\": \"={{ $json.query }}\"\n      },\n      \"type\": \"n8n-nodes-base.ssh\",\n      \"typeVersion\": 1,\n      \"position\": [\n        220,\n        0\n      ],\n      \"id\": \"81a147e8-e8c8-4c98-8a9b-24de4e0152a0\",\n      \"name\": \"SSH\",\n      \"alwaysOutputData\": true,\n      \"credentials\": {\n        \"sshPassword\": {\n          \"id\": \"VMCCUQkaq46q3CpB\",\n          \"name\": \"SSH Password account\"\n        }\n      },\n      \"onError\": \"continueErrorOutput\"\n    }\n  ],\n  \"pinData\": {},\n  \"connections\": {\n    \"When Executed by Another Workflow\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"SSH\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    }\n  }\n}"
      },
      "credentials": {
        "sshPassword": {
          "id": "VMCCUQkaq46q3CpB",
          "name": "SSH Password account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "1cd5280c-f16f-4195-9cdc-1649893ea16c",
      "name": "AI SysAdmin",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -340,
        -220
      ],
      "parameters": {
        "text": "=You are an AI Linux System Administrator Agent expert designed to help manage Linux VPS systems.\nThe user will communicate with you as a fellow colleague. You must understand their final intention and act accordingly.\nYou can execute single-line bash commands inside a VPS using the SSH tool.\nTo pass a command to execute, you should only pass the command itself.\nReplacing null with a command you want to execute.\n\n\nYour objectives are:\n\n### **1. Understand User Intent**\n- Parse user requests related to Linux operations.\n- Accurately interpret the intent to generate valid Linux commands.\n- Accurately interpret the response you receive from a VPS.\n- Provide the user with an interpreted response.\n\n### **2. Refer to tools**\n- **Basic SSH commands**\n- **SSH**\n\n### **3. Restrictions**\n- Do not do destructive actions without confirmation from the user.\n- Under no circumstance execute \"rm -rf\" command.\n\n### **4. Behavior Guidelines**\n- Be concise, precise, and consistent.\n- Ensure all generated commands are compatible with Linux SSH.\n- Rely on system defaults when user input is incomplete.\n- For unknown or unrelated queries, clearly indicate invalid input.\n\n\nUser Prompt \nHere is a request from user: {{ $json.chatInput }}",
        "agent": "reActAgent",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "fc8b89d9-36eb-400a-8c25-cd89056efc64",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -180
      ],
      "parameters": {
        "width": 360,
        "height": 260,
        "content": "## SSH login credentials\nMake sure to provide the correct SSH credentials ID in this embedded workflow under \"sshPassword\".\n\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Execute SSH": {
      "ai_tool": [
        [
          {
            "node": "AI SysAdmin",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI SysAdmin",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Basic SSH commands": {
      "ai_tool": [
        [
          {
            "node": "AI SysAdmin",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI SysAdmin",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}