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
JSON
{
"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)"
}
]
}