{
  "id": "8pG71svvcOTxFAYE",
  "name": "AI Arena - Debate of AI Agents to Optimize Answers and Simulate Scenarios",
  "tags": [
    {
      "id": "JK3I68rY6cIlUP5Z",
      "name": "V1.0",
      "createdAt": "2025-06-20T18:01:10.400Z",
      "updatedAt": "2025-06-20T18:01:10.400Z"
    },
    {
      "id": "nEQ2nHALSQN4jgJ0",
      "name": "Free",
      "createdAt": "2025-06-25T21:55:38.353Z",
      "updatedAt": "2025-06-25T21:55:38.353Z"
    },
    {
      "id": "wiTbp7sIKjdAXKvb",
      "name": "Debate Arena",
      "createdAt": "2025-07-02T20:44:15.975Z",
      "updatedAt": "2025-07-02T20:44:15.975Z"
    }
  ],
  "nodes": [
    {
      "id": "f635cc89-01b3-4604-a408-69d10bb5991f",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -440
      ],
      "parameters": {
        "color": 7,
        "width": 840,
        "height": 500,
        "content": "## AI Arena - Debate of AI Agents to Optimize Answers and Simulate Diverse Scenarios\n**Version** : 1.0\n**Creator** : Hybroht\n**Website** : hybroht.com\n\n**Description**: the workflow will create a discussion between AI agents programmed with diverse points of view. It can form an agreement before releasing their final answer. This workflow is meant for a more refined answer generation process, instead of accepting the answer of one AI agent.\n\n**How it Works**: You can configure it to initiate a set number of AI Agents to discuss among themselves.\n\n**Use-Cases**:\n- Meeting Simulation\n- Interview Simulation\n- Storywriter Test Environment\n- Forum/Conference/Symposium Simulation\n\n\n**Requirements**:\n- This Workflow uses a custom node for Global Variables called \"n8n-nodes-globals\". Hint: Alternatively, you can make it work with the \"Edit Field (Set)\" node."
      },
      "typeVersion": 1
    },
    {
      "id": "dc779b72-393c-4096-829c-44c19cdf2f4c",
      "name": "Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -280,
        220
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1,
                2,
                5,
                3,
                4
              ],
              "triggerAtHour": 12
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "efd7bcee-56ea-451e-a382-30c22bf503f3",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        80
      ],
      "parameters": {
        "color": 4,
        "width": 840,
        "height": 1400,
        "content": "## Setup and Start\n**Schedule** will start the workflow according to its configuration.\n**Configure Workflow Args** will describe the variables used by the workflow. To help with usage, a note with a JSON example is provided below.\n*Observation: I have set up a timeout of one hour for this workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "831cdbef-2e59-4845-9249-01c51fa46aa7",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        760
      ],
      "parameters": {
        "color": 7,
        "width": 800,
        "height": 260,
        "content": "**Configure Workflow Args**:\n\n- input: The initial text to be changed and/or added during the rewrite. Hint: it could be given as an argument if you use this template in a sub-workflow.\n- scenario: The context describing the situation of the AI agents.\n- rounds: The number of rounds in the debate. This will control how long the AI agents will debate.\n- ai_quantity: The number of AI agents involved in the debate. Used for the control of loop nodes.\n- ai_environment: A JSON object used by the Debate Environment Node. It will describe properties of the environment, which will mostly control the results of each round.\n- ai_agents: A list of JSON objects used to configure the AI agents. Its properties will seek to define how the AI agents will act during the debate."
      },
      "typeVersion": 1
    },
    {
      "id": "c1e7430e-0d6d-44cb-b969-59f6f2bbf450",
      "name": "Configure Workflow Args",
      "type": "n8n-nodes-globals.globalConstants",
      "notes": "This is useful to quickly setting variables for new workflow variants. Additionally:\n- It helps avoid leaving important information in a node when creating new templates to share.\n- Easier to add new variables.",
      "position": [
        0,
        340
      ],
      "parameters": {},
      "credentials": {
        "globalConstantsApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "80755a3e-6b2f-4443-8f68-6983aa5ac8ce",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -280,
        380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "a533ff1e-540f-4fd8-82df-6b2a9813407d",
      "name": "Email Trigger (IMAP)",
      "type": "n8n-nodes-base.emailReadImap",
      "disabled": true,
      "position": [
        -280,
        580
      ],
      "parameters": {
        "options": {
          "forceReconnect": 120,
          "customEmailConfig": "[\"UNSEEN\", [\"HEADER\", \"SUBJECT\", \"(Activate n8n Workflow)\"], [\"HEADER\", \"SUBJECT\", \"(Debate Arena)\"] , [\"HEADER\", \"SUBJECT\", \"(Password: FirstTest9999)\"]]"
        }
      },
      "credentials": {
        "imap": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "c8442d57-0097-42e2-8489-6cc0b2dcfdb3",
      "name": "Mistral Cloud Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
      "position": [
        1620,
        740
      ],
      "parameters": {
        "model": "mistral-small-latest",
        "options": {
          "safeMode": true,
          "maxRetries": 2
        }
      },
      "credentials": {
        "mistralCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a50548f4-e2f9-49dc-b22e-a22f16e22035",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "disabled": true,
      "position": [
        1820,
        580
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "efa6b40b-babb-47db-8234-df435d161cf0",
      "name": "Prepare Input",
      "type": "n8n-nodes-base.set",
      "position": [
        300,
        340
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0bebc801-88ee-48b6-9fdf-26124a3d2712",
              "name": "input",
              "type": "string",
              "value": "={{ $json.constants.input }}"
            },
            {
              "id": "97f5977a-6a32-4a19-a27a-c809d8b312b1",
              "name": "current_round",
              "type": "number",
              "value": 1
            },
            {
              "id": "6c928915-26b5-4429-91f3-371a35b19517",
              "name": "round_summary",
              "type": "string",
              "value": "The debate begins."
            },
            {
              "id": "493f044f-acf9-4e43-836e-6a3746356ff4",
              "name": "round_result",
              "type": "string",
              "value": "This is the first round. No last round result yet."
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "9d6fc447-de96-46d3-9a23-51f8ec0b65a6",
      "name": "Update Input",
      "type": "n8n-nodes-base.set",
      "notes": "Update the input for the AI agents and the current round.",
      "position": [
        2900,
        740
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "607ac7e5-900e-4128-80f6-52d0ceb24164",
              "name": "input",
              "type": "string",
              "value": "={{ $json.output.data.rewritten_input }}"
            },
            {
              "id": "4cc6ddeb-44c3-4b41-8052-f5f65c584e11",
              "name": "current_round",
              "type": "number",
              "value": "={{ $('Guarantee Input').item.json.current_round + 1 }}"
            },
            {
              "id": "1c9d3a2b-6743-4bfd-a152-81fd22276dc4",
              "name": "round_summary",
              "type": "string",
              "value": "={{ $json.output.data.round_summary }}"
            },
            {
              "id": "095b4f5c-3ed0-446b-908e-ac4efde28af2",
              "name": "round_result",
              "type": "string",
              "value": "={{ $json.output.data.round_result }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b0db51af-4858-4906-b706-0d76335d35f8",
      "name": "Split Out AI Agents",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1320,
        400
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "constants.ai_agents"
      },
      "typeVersion": 1
    },
    {
      "id": "9402704b-61db-4d16-9266-f42402953825",
      "name": "JSON Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1980,
        580
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"data\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"ai_name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the AI Agent.\"\n        },\n        \"ai_status\": {\n          \"type\": \"string\",\n          \"description\": \"The current state of the AI Agent. Can be their tone, their psyche, a hardware status, an emotional state or others related to the idea of status.\"\n        },\n        \"ai_targets\": {\n          \"type\": \"string\",\n          \"description\": \"Who are they debating. Can be just the input itself, other AI Agents in the debate, the current state of the inputs...can be one to more targets at once.\"\n        },\n        \"reply\": {\n          \"type\": \"string\",\n          \"description\": \"The AI agent reply to the text, considering their given attributes.\"\n        },\n        \"cause_for_reply\": {\n          \"type\": \"string\",\n          \"description\": \"The AI agent motivation for their reply to the text, considering their given attributes.\"\n        }\n      },\n      \"required\": [\"ai_name\", \"ai_status\", \"ai_targets\", \"reply\", \"cause_for_reply\"],\n      \"additionalProperties\": false\n  }\n  },\n  \"required\": [\"data\"],\n  \"additionalProperties\": false\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "d8b9d045-1b2f-4fc4-9821-67c8a86b3a7b",
      "name": "If No More Rounds",
      "type": "n8n-nodes-base.if",
      "position": [
        3640,
        220
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c6f6f0e2-51b3-4cda-b871-4d43984c1f1e",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $('Guarantee Input').item.json.current_round }}",
              "rightValue": "={{ $('Configure Workflow Args').item.json.constants.rounds }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "dae712bb-b246-4a6c-8863-90784f7b38ef",
      "name": "End of Debate",
      "type": "n8n-nodes-base.noOp",
      "position": [
        4060,
        200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7724c844-5305-48fe-b819-855c707289e3",
      "name": "Debate Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "notes": "Will continue until all rounds are over.",
      "position": [
        2720,
        40
      ],
      "parameters": {
        "options": {
          "reset": true
        },
        "batchSize": "={{ $('Configure Workflow Args').item.json.constants.ai_quantity }}"
      },
      "typeVersion": 3
    },
    {
      "id": "328b1db7-5126-472f-b14b-49c6f4fda5d9",
      "name": "Round Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1100,
        220
      ],
      "parameters": {
        "options": {
          "reset": true
        },
        "batchSize": "=1"
      },
      "typeVersion": 3
    },
    {
      "id": "0f108078-e303-4da6-9e53-d4ed20314ac0",
      "name": "Debate Actor Abstraction",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "notes": "This node will receive the AI profiles and execute them as needed. To guarantee they can properly communicate with each other, all answers need to be structured as JSON outputs.",
      "maxTries": 2,
      "position": [
        1740,
        380
      ],
      "parameters": {
        "text": "=Considering your role, continue the following text.\n\"{{ $('Round Loop').item.json.input }}\"\n\nDebate Status = \"{{ $('Round Loop').item.json.round_summary }}\"\nLast Round = \"{{ $('Round Loop').item.json.round_result }}\"\n\nRemember to reply with a JSON output, as ordered!",
        "options": {
          "systemMessage": "=Your Name: {{ $json.name }}.\nYour Description: {{ $json.description }}\nYour Role: {{ $json.role }}.\nYour Nature: {{ $json.nature }}.\nYou follow a Will to {{ $json.will }} and your Reason is {{ $json.reason }},\nYou Like: {{ $json.likes }}.\nYou Dislike: {{ $json.dislikes }}.\nYour Writing Style: {{ $json.writing_style }}.\n\nThe Scenario: {{ $('Configure Workflow Args').item.json.constants.scenario }}\nYou received a text with your input and now it is your turn again to write your answer.\nAnd don't forget that output is always expected in the JSON format: {'output': {...}}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.6,
      "waitBetweenTries": 3000
    },
    {
      "id": "83f497f7-85d1-4af9-b402-8a87fd143594",
      "name": "Debate Environment",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "notes": "This node will receive the input of each AI Agent and create a \"round result' of the results from the turn debate.",
      "maxTries": 2,
      "position": [
        3220,
        -60
      ],
      "parameters": {
        "text": "=Input Text:\n{{ $('Guarantee Input').item.json.input }}\n\nDebate:\n{{ $json.data.map(item => `Name: ${item.output.data.ai_name}\\nStatus: ${item.output.data.ai_status}\\nReply: ${item.output.data.reply}\\nTargets: ${item.output.data.ai_targets}\\nExplanation: ${item.output.data.cause_for_reply}\\n`).join('\\n') }}",
        "options": {
          "systemMessage": "={{ $('Configure Workflow Args').item.json.constants.ai_environment.context }}\nInput Rewrite Goal: {{ $('Configure Workflow Args').item.json.constants.ai_environment.rewrite_goal }}\nAnd don't forget that output is always expected in the JSON format: {'output': {...}}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.6,
      "waitBetweenTries": 3000
    },
    {
      "id": "2c309812-45ca-4c5b-b38e-bd54327601a1",
      "name": "Guarantee Input",
      "type": "n8n-nodes-base.set",
      "position": [
        780,
        340
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0ac8a4d1-15e0-4e32-84a4-66776d35eff9",
              "name": "input",
              "type": "string",
              "value": "={{ $json.input }}"
            },
            {
              "id": "b233413b-6d33-4acf-b5b4-3567723e9f17",
              "name": "current_round",
              "type": "number",
              "value": "={{ $json.current_round }}"
            },
            {
              "id": "428921be-b084-4ae2-89ce-12656e15fa26",
              "name": "constants",
              "type": "object",
              "value": "={{ $('Configure Workflow Args').item.json.constants }}"
            },
            {
              "id": "6f166343-f64a-4d1e-bd70-7d4784e5c4b4",
              "name": "round_summary",
              "type": "string",
              "value": "={{ $json.round_summary }}"
            },
            {
              "id": "306dcb55-340e-4869-b7f2-cc37e7878d3c",
              "name": "round_result",
              "type": "string",
              "value": "={{ $json.round_result }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c4c6c0a7-11c6-43d0-b15c-7bd7d3ee46dc",
      "name": "Mistral Cloud Chat Model 2",
      "type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
      "position": [
        3160,
        180
      ],
      "parameters": {
        "model": "mistral-small-latest",
        "options": {
          "safeMode": true,
          "maxRetries": 2
        }
      },
      "credentials": {
        "mistralCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "870ea0fb-6d3f-457e-a684-6ab0fce5efe4",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        3000,
        40
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "4a8ceb9d-364b-4fa5-b395-5d483ccec789",
      "name": "JSON Output Parser 2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        3420,
        180
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"data\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"round_result\": {\n\t\t\t\"type\": \"string\",\n            \"description\": \"The result of the round.\"\n          },\n          \"round_summary\": {\n\t\t\t\"type\": \"string\",\n            \"description\": \"The resume of the round, keeping the input from every agent while making the text as short as possible.\"\n          },\n          \"rewritten_input\": {\n\t\t\t\"type\": \"string\",\n            \"description\": \"A rewritten input, following the results of the round. Keep it as short as possible.\"\n          }\n        },\n        \"required\": [\"round_result\", \"round_summary\", \"optimized_input\"],\n        \"additionalProperties\": false\n      }\n  },\n  \"required\": [\"data\"],\n  \"additionalProperties\": false\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "eb7f959c-dd9d-4fba-9f27-f96874dff696",
      "name": "Simple Memory 2",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "disabled": true,
      "position": [
        3280,
        220
      ],
      "parameters": {
        "sessionKey": "={{ $('Configure Workflow Args').item.json.constants.ai_environment.sessionId }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "5c1a427f-2cff-4614-99e6-348c96771dc3",
      "name": "Wait Before Sending Agents",
      "type": "n8n-nodes-base.wait",
      "position": [
        1520,
        500
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "cef6c55f-e736-40bf-8d48-793c614cea81",
      "name": "Wait 1",
      "type": "n8n-nodes-base.wait",
      "position": [
        2220,
        300
      ],
      "parameters": {
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "3e624ac2-62f2-4956-84ab-f722b7fa3bd1",
      "name": "Wait 2",
      "type": "n8n-nodes-base.wait",
      "position": [
        2480,
        180
      ],
      "parameters": {
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "98e03085-5db5-4d54-9b8b-2b99cbb6668f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -440
      ],
      "parameters": {
        "width": 3400,
        "height": 1520,
        "content": "# Debate\n**Round Execution** will execute the AI agents on the current state of the input for the current round.\n**Round Results** will receive the replies/actions of each AI agent and calculate the results.\n**Continue To Next Round** will activate if the number of current rounds is still lower than the number of defined rounds in the Workflow Args."
      },
      "typeVersion": 1
    },
    {
      "id": "bd3a89bf-277b-40ef-bf8c-b1c6f4417b02",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2420,
        -320
      ],
      "parameters": {
        "color": 5,
        "width": 1440,
        "height": 840,
        "content": "## Round Results\n**Debate Loop** will be used to control the loop making the debate happen. The loop will only break if the \"If No More Rounds\" condition is satisfied.\n**Aggregate** will get the list of AI agent actions/replies and concatenate them inside a data property that will be accessed by the AI environment.\n**Debate Environment** will execute the actions/replies of each AI agent and calculate the results, considering the environment's context and configured goals.\n**JSON Output Parser** will control the final output of the AI environment, ensuring its output is communicable to the next nodes.\n**Wait Nodes** exist both to control the time of execution for certain steps and to better tidy up the workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "4fdb8f1b-5942-421e-b8d4-f042a7a549b3",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 1600,
        "height": 1040,
        "content": "## Round Execution\n**Guarantee Input** will take the initial input and ensure that it is appropriately updated for each round.\n**Round Loop** will be used as a reference node by the AI agents to receive the actual information of the current round.\n**Split Out AI Agents** will get the list of AI agent configurations and split it so that each item will be received by the Debate Actor Abstraction.\n**Debate Actor Abstraction** will execute each AI agent configuration to get its replies/actions during this debate turn.\n**JSON Output Parser** will control the final output of the AI agents, ensuring their output is communicable to later nodes.\n**Wait Nodes** exist both to control the time of execution for certain steps and to better tidy up the workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "a3397dbf-a181-4117-8b53-38b914c1523b",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2420,
        540
      ],
      "parameters": {
        "color": 2,
        "width": 740,
        "height": 440,
        "content": "## Continue To Next Round\n**Update Input** will:\n- Get the results of the Debate Environment.\n- Update the appropriate args.\n- Send them to a new **Round Execution**."
      },
      "typeVersion": 1
    },
    {
      "id": "46ac77b9-f3d9-42cb-b9c3-ae0fdcadf065",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        1120
      ],
      "parameters": {
        "color": 3,
        "width": 1200,
        "height": 1160,
        "content": "### Workflow Args Example (JSON):\n{\n  \"input\": \"My present biz decison is to pancake a company what zips 'invisible umberellas', made for guard against ghosty puddles. The whatchamacallit is sell as a fantastick fix for those who wishes to be skiping through imaginery life tornados of jellybean.\",\n  \"scenario\": \"Three Analysts are debating about a new text received. They will discuss for a certain number of rounds. When necessary, they will suggest a rewrite of the text based on their roles. They are highly critical, only excellent inputs won't be changed.\",\n  \"rounds\": 3,\n  \"ai_environment\": {\n    \"context\": \"You are an AI Arena Environment. You have no reason nor will. You receive the input of each AI Agent during a round of a debate. You create a 'round result' from the replies of each AI. This round result must consider their replies collectively: - create a round summary with all the relevant points of each agent. - generate a rewritten input based on the replies of each agent and the current input, considering if they're suggesting additions or changes.\",\n    \"rewrite_goal\": \"When rewritting the input, the goal should be to take the input text and change it based on the demands presented by the AI agents. If they suggest a change to the input text in their replies, then it needs to be done. Needless to say, the rewritten input should not have explanations about itself. The rewritten input should avoid redundancy within itself. The rewritten input should not describe the reasons which led to its rewrite.\",\n    \"sessionId\": \"ai-environment\"\n  },\n  \"ai_quantity\": 3,\n  \"ai_agents\": [\n    {\n      \"name\": \"Melqhior-Jyggal\",\n      \"description\": \"An AI agent dedicated to the logical reasoning within texts. It evaluates arguments based on their validity and soundness, ensuring that conclusions follow logically from premises.\",\n      \"role\": \"Logician\",\n      \"nature\": \"Stern\",\n      \"will\": \"Stabilize\",\n      \"reason\": \"Perfection\",\n      \"likes\": \"Life, Certainty, Order\",\n      \"dislikes\": \"Individuality, Madness, Chaos, Unnecessarily Long Texts\",\n      \"writing_style\": \"'All personnel must wear appropriate safety gear at all times while on the construction site. Non-compliance will result in immediate removal from the site.'\",\n      \"sessionId\": \"melquior-jyggal\"\n    },\n    {\n      \"name\": \"Bellthasa-Drasil\",\n      \"description\": \"An AI agent concerned with the interpretation of texts. It focuses on both the practical applications and potential innovations presented in the text.\",\n      \"role\": \"Hermeneut\",\n      \"nature\": \"Truthful\",\n      \"will\": \"Find\",\n      \"reason\": \"Eternity\",\n      \"likes\": \"Drive, Trees, Security, Usefulness, Novelty\",\n      \"dislikes\": \"Invasion, Unprotection, Betrayal, Unnecessarily Long Texts\",\n      \"writing_style\": \"'The project faced several challenges, including budget constraints and unexpected delays. Despite these obstacles, the team worked collaboratively to find solutions.'\",\n      \"sessionId\": \"bellthasa-drasil\"\n    },\n    {\n      \"name\": \"Gezper-Chronoa\",\n      \"description\": \"An AI agent focused on the structure and form of texts. It analyzes the organization, grammar, and stylistic elements to ensure clarity and coherence in communication.\",\n      \"role\": \"Formalist\",\n      \"nature\": \"Diligent\",\n      \"will\": \"Build\",\n      \"reason\": \"Clearness\",\n      \"likes\": \"Time, Cooking, Technology\",\n      \"dislikes\": \"Disruptive Behavior, Threats, Disrespect, Unnecessarily Long Texts\",\n      \"writing_style\": \"'In preparing the report, I meticulously gathered data from various sources, ensuring that each piece of information was accurate and relevant.'\",\n      \"sessionId\": \"gezper-ghronoa\"\n    }\n  ]\n}"
      },
      "typeVersion": 1
    },
    {
      "id": "049b3320-a354-4519-a3ac-dfd6a051338e",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3940,
        20
      ],
      "parameters": {
        "color": 6,
        "width": 400,
        "height": 380,
        "content": "## Debate Results\n- After all the rounds have ended, the final output will be data containing the following properties: \"round_result,\" \"round_summary,\" and \"rewritten_input.\"\n- The \"rewritten_input\" is the end result.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "55e3c75f-d9bc-4125-9722-8f76f73d6596",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        1100
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 260,
        "content": "**AI Environment Args\n(JSON Object - ai_environment)**:\n\n- context: The description of the AI Arena environment for the LLM used. It will primarily indicate what to expect from the AI agents and how to interpret them.\n- rewrite_goal: This prompt will guide how it should rewrite the input based on the actions/replies of every AI agent.\n- sessionId: The session ID used by the Simple Memory Node. Deactivated by default."
      },
      "typeVersion": 1
    },
    {
      "id": "9da715b0-018a-407f-b003-f42464ebd8c8",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        1040
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 400,
        "content": "**AI Agent Args\n(JSON Object Item - ai_agents)**:\n- name: The name of the AI agent, to keep track of the source of the actions/replies.\n- description: An explanation about the AI agent, often aligning with where it stands in the scenario and the context of the AI environment.\n- role: A short title for the AI agent's job, which will mostly align with the description.\n- nature: A given personality for the AI agent.\n- will: The goal of the AI agent when it acts/replies.\n- reason: The motive of the AI agent when it acts/replies.\n- likes: Anything that the AI is supposed to approve.\n- dislikes: Anything that the AI is supposed to disapprove.\n- sessionId: The session ID used by the Simple Memory Node. Deactivated by default."
      },
      "typeVersion": 1
    },
    {
      "id": "7a01ecc0-20b6-46c3-921c-fc7891712f14",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        300,
        -180
      ],
      "parameters": {
        "color": 7,
        "width": 150,
        "content": "![Hybroht](https://hybroht.com/assets/favicon.png \"Hybroht Logo\")"
      },
      "typeVersion": 1
    },
    {
      "id": "2b166bc1-0908-47ef-a405-ea57f977a4a7",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1740,
        1120
      ],
      "parameters": {
        "color": 3,
        "width": 900,
        "height": 480,
        "content": "### Input & Output Example\n**Input**: 'My present biz decison is to pancake a company what zips 'invisible umberellas', made for guard against ghosty puddles. The whatchamacallit is sell as a fantastick fix for those who wishes to be skiping through imaginery life tornados of jellybean.'\n\n**Final Output**: 'My current business decision is to establish a company that manufactures innovative umbrellas designed to protect against unexpected weather conditions. The product is marketed as a practical solution for individuals who wish to navigate life's unpredictable challenges with ease and style, combining functionality with aesthetic appeal. This umbrella is not just a tool but a companion for those who value preparedness and sophistication.'"
      },
      "typeVersion": 1
    },
    {
      "id": "1ddb3887-fc5b-48ba-a3f8-e62613ff54f4",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        1500
      ],
      "parameters": {
        "color": 7,
        "width": 840,
        "height": 280,
        "content": "### Information - n8n setup\n- n8n Version\n1.100.1\n\n- n8n-nodes-globals\n1.1.0\n\n- Running n8n via:\nPodman 4.3.1\n\n- Operating system:\nLinux"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1",
    "executionTimeout": 3600
  },
  "versionId": "7e28c213-f848-48d2-815a-3d423dc90772",
  "connections": {
    "Wait 1": {
      "main": [
        [
          {
            "node": "Wait 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 2": {
      "main": [
        [
          {
            "node": "Debate Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule": {
      "main": [
        [
          {
            "node": "Configure Workflow Args",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Debate Environment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Round Loop": {
      "main": [
        [],
        [
          {
            "node": "Split Out AI Agents",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Debate Loop": {
      "main": [
        [],
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Input": {
      "main": [
        [
          {
            "node": "Guarantee Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Input": {
      "main": [
        [
          {
            "node": "Guarantee Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Debate Actor Abstraction",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Guarantee Input": {
      "main": [
        [
          {
            "node": "Round Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory 2": {
      "ai_memory": [
        [
          {
            "node": "Debate Environment",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "If No More Rounds": {
      "main": [
        [
          {
            "node": "End of Debate",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Debate Environment": {
      "main": [
        [
          {
            "node": "If No More Rounds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "JSON Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Debate Actor Abstraction",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Split Out AI Agents": {
      "main": [
        [
          {
            "node": "Wait Before Sending Agents",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email Trigger (IMAP)": {
      "main": [
        [
          {
            "node": "Configure Workflow Args",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "JSON Output Parser 2": {
      "ai_outputParser": [
        [
          {
            "node": "Debate Environment",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Configure Workflow Args": {
      "main": [
        [
          {
            "node": "Prepare Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Debate Actor Abstraction": {
      "main": [
        [
          {
            "node": "Wait 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mistral Cloud Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Debate Actor Abstraction",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Mistral Cloud Chat Model 2": {
      "ai_languageModel": [
        [
          {
            "node": "Debate Environment",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Sending Agents": {
      "main": [
        [
          {
            "node": "Debate Actor Abstraction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Configure Workflow Args",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}