agentInput
The entry point of the inner workflow inside an aiAgent group. Receives all data from the outer workflow and passes it through unchanged, making every field available inside the group via {{ @agentInput.<field> }} template syntax.
Marked is_input: true — if the output is a list, the runner unwraps it for iteration.
Parameters
Accepts any fields (extra="allow"). There are no fixed required params. All fields come from whatever the outer workflow sends in — typically via template expressions referencing outer nodes like {{ @httpRequest.messages }}.
Common fields (from canonical usage):
| Param | Type | Description |
|---|---|---|
model | string | LLM model identifier |
system_prompt | string | System prompt for the agent |
messages | object[] | Conversation history with role and content |
datasetIds | integer[] | Dataset IDs to search |
maxSubAgents | integer | Maximum sub-agents the agent can spawn |
maxDocumentVectorSearch | integer | Maximum documents per vector search |
streaming | boolean | Enable streaming execution |
response_format | object? | JSON schema for structured output |
Output
All input fields are echoed to the output unchanged. Every field is accessible downstream in the inner workflow as {{ @agentInput.<field> }}.
Example
{
"id": "agentInput",
"type": "agentInput",
"data": {
"isInput": true,
"label": "Agent Input",
"isExecuted": false,
"handles": ["outputs"],
"schema": {},
"params": {
"model": { "value": "{{ @httpRequest.model }}", "isExpression": true, "isAttachedToInputNode": false },
"system_prompt": { "value": "{{ @httpRequest.system_prompt }}", "isExpression": true, "isAttachedToInputNode": false },
"messages": { "value": "{{ @httpRequest.messages }}", "isExpression": true, "isAttachedToInputNode": false },
"datasetIds": { "value": [], "isExpression": false, "isAttachedToInputNode": false },
"maxSubAgents": { "value": 2, "isExpression": false, "isAttachedToInputNode": false },
"streaming": { "value": true, "isExpression": false, "isAttachedToInputNode": false }
},
"inputs": [], "outputs": [], "errors": []
},
"position": { "x": 0, "y": 0 },
"isSelected": false,
"isDragging": false
}