UNPKG

n8n-nodes-roundrobin

Version:

n8n node to store and retrieve messages in a round-robin fashion, particularly for LLM conversation loops with multiple personas

247 lines 5.66 kB
{ "node": "n8n-nodes-roundrobin.roundRobin", "nodeVersion": "1.0", "codexVersion": "1.0", "categories": [ "Utility", "Data Transformation" ], "resources": { "credentialDocumentation": [], "primaryDocumentation": [] }, "subcategories": { "Utility": [ "Data" ], "Data Transformation": [ "Data Storage" ] }, "alias": [ "conversation", "llm", "roundrobin", "chatbot", "persona", "dialogue" ], "properties": [ { "displayName": "Mode", "name": "mode", "type": "options", "options": [ { "name": "Store", "value": "store", "description": "Store a message in the round-robin" }, { "name": "Retrieve", "value": "retrieve", "description": "Retrieve all messages from the round-robin" }, { "name": "Clear", "value": "clear", "description": "Clear all stored messages" }, { "name": "Update Role", "value": "updateRole", "description": "Update a specific role" } ], "default": "store", "noDataExpression": true, "required": true, "description": "The operation to perform" }, { "displayName": "Number of Spots", "name": "spotCount", "type": "number", "default": 3, "required": true, "displayOptions": { "show": { "mode": [ "store" ] } }, "description": "Number of spots in the round-robin" }, { "displayName": "Roles", "name": "roles", "placeholder": "Add Role", "type": "fixedCollection", "typeOptions": { "multipleValues": true, "sortable": true }, "default": { "values": [] }, "displayOptions": { "show": { "mode": [ "store", "updateRole" ] } }, "description": "Define the roles for each spot in the round-robin", "options": [ { "name": "values", "displayName": "Roles", "values": [ { "displayName": "Role Name", "name": "name", "type": "string", "default": "", "description": "Name of the role/persona", "required": true }, { "displayName": "Role Description", "name": "description", "type": "string", "typeOptions": { "rows": 3 }, "default": "", "description": "Description of the role/persona" } ] } ] }, { "displayName": "Input Field", "name": "inputField", "type": "string", "default": "message", "displayOptions": { "show": { "mode": [ "store" ] } }, "description": "The name of the field containing the message to store", "required": true }, { "displayName": "Spot Index", "name": "spotIndex", "type": "number", "default": 0, "displayOptions": { "show": { "mode": [ "store", "updateRole" ] } }, "description": "Specify which spot to use (0-based index)", "required": true }, { "displayName": "Role Index", "name": "roleIndex", "type": "number", "default": 0, "displayOptions": { "show": { "mode": [ "updateRole" ] } }, "description": "Index of the role to update", "required": true }, { "displayName": "Output Format", "name": "outputFormat", "type": "options", "options": [ { "name": "Array", "value": "array", "description": "Output messages as an array" }, { "name": "Object", "value": "object", "description": "Output messages as an object with role keys" }, { "name": "Conversation History", "value": "conversation", "description": "Format as a chronological conversation history" } ], "default": "array", "displayOptions": { "show": { "mode": [ "retrieve" ] } }, "description": "Format of the retrieved messages" }, { "displayName": "Filter Messages", "name": "filterMessages", "type": "boolean", "default": false, "displayOptions": { "show": { "mode": [ "retrieve" ] } }, "description": "Whether to filter messages by role or other criteria" }, { "displayName": "Role to Filter", "name": "roleFilter", "type": "string", "default": "", "displayOptions": { "show": { "mode": [ "retrieve" ], "filterMessages": [ true ] } }, "description": "Only return messages from this role (leave empty for all roles)" }, { "displayName": "Maximum Messages to Return", "name": "maxMessages", "type": "number", "default": 0, "displayOptions": { "show": { "mode": [ "retrieve" ] } }, "description": "Maximum number of messages to return (0 for all messages)" } ] }