Feature/Seq Agent Nodes Update (#2942)

update all seg agent nodes to 2.0 for UI UX improvements
This commit is contained in:
Henry Heng
2024-08-06 11:30:08 +01:00
committed by GitHub
parent 7153093bfc
commit 70d7420d02
21 changed files with 1789 additions and 887 deletions
@@ -6,14 +6,14 @@
{
"id": "seqStart_0",
"position": {
"x": 270.8034759443938,
"y": 197.40349682053647
"x": 283.66331227381755,
"y": 199.2406162961684
},
"type": "customNode",
"data": {
"id": "seqStart_0",
"label": "Start",
"version": 1,
"version": 2,
"name": "seqStart",
"type": "Start",
"baseClasses": ["Start"],
@@ -76,8 +76,8 @@
"height": 382,
"selected": false,
"positionAbsolute": {
"x": 270.8034759443938,
"y": 197.40349682053647
"x": 283.66331227381755,
"y": 199.2406162961684
},
"dragging": false
},
@@ -91,7 +91,7 @@
"data": {
"id": "seqEnd_0",
"label": "End",
"version": 1,
"version": 2,
"name": "seqEnd",
"type": "End",
"baseClasses": ["End"],
@@ -100,10 +100,10 @@
"inputParams": [],
"inputAnchors": [
{
"label": "Start | Agent | LLM | Tool Node",
"label": "Agent | Condition | LLM | Tool Node",
"name": "sequentialNode",
"type": "Start | Agent | LLMNode | ToolNode",
"id": "seqEnd_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"type": "Agent | Condition | LLMNode | ToolNode",
"id": "seqEnd_0-input-sequentialNode-Agent | Condition | LLMNode | ToolNode"
}
],
"inputs": {
@@ -312,7 +312,7 @@
"data": {
"id": "seqLLMNode_0",
"label": "LLM Node",
"version": 1,
"version": 2,
"name": "seqLLMNode",
"type": "LLMNode",
"baseClasses": ["LLMNode"],
@@ -477,11 +477,11 @@
],
"inputAnchors": [
{
"label": "Start | Agent | LLM | Tool Node",
"label": "Start | Agent | Condition | LLM | Tool Node",
"name": "sequentialNode",
"type": "Start | Agent | LLMNode | ToolNode",
"type": "Start | Agent | Condition | LLMNode | ToolNode",
"list": true,
"id": "seqLLMNode_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqLLMNode_0-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"label": "Chat Model",
@@ -496,11 +496,12 @@
"llmNodeName": "planner",
"systemMessagePrompt": "For the given objective, come up with a simple step by step plan.\n\nThis plan should involve individual tasks, that if executed correctly will yield the correct answer. Do not add any superfluous steps.\n\nThe result of the final step should be the final answer. Make sure that each step has all the information needed - do not skip steps.\n\n{objective}",
"humanMessagePrompt": "",
"sequentialNode": ["{{seqStart_0.data.instance}}"],
"sequentialNode": ["{{seqStart_0.data.instance}}", "{{seqStart_0.data.instance}}"],
"model": "",
"promptValues": "{\"objective\":\"{{question}}\"}",
"llmStructuredOutput": "[{\"key\":\"steps\",\"type\":\"String Array\",\"enumValues\":\"\",\"description\":\"different steps to follow, should be in sorted order\",\"actions\":\"\",\"id\":0}]",
"updateStateMemory": "updateStateMemoryUI",
"selectedUpdateStateMemoryTab_seqLLMNode_0": "updateStateMemoryUI",
"updateStateMemoryUI": "[{\"key\":\"plan\",\"value\":\"$flow.output.steps\",\"actions\":\"\",\"id\":0}]"
},
"outputAnchors": [
@@ -516,7 +517,7 @@
"selected": false
},
"width": 300,
"height": 431,
"height": 450,
"selected": false,
"positionAbsolute": {
"x": 648.4687909190533,
@@ -527,14 +528,14 @@
{
"id": "seqState_0",
"position": {
"x": -525.7145883375572,
"y": 411.1106840856376
"x": -516.05863088425,
"y": 408.69669472231084
},
"type": "customNode",
"data": {
"id": "seqState_0",
"label": "State",
"version": 1,
"version": 2,
"name": "seqState",
"type": "State",
"baseClasses": ["State"],
@@ -542,7 +543,7 @@
"description": "A centralized state object, updated by nodes in the graph, passing from one node to another",
"inputParams": [
{
"label": "State",
"label": "Custom State",
"name": "stateMemory",
"type": "tabs",
"tabIdentifier": "selectedStateTab",
@@ -550,7 +551,7 @@
"default": "stateMemoryUI",
"tabs": [
{
"label": "State (Table)",
"label": "Custom State (Table)",
"name": "stateMemoryUI",
"type": "datagrid",
"description": "Structure for state. By default, state contains \"messages\" that got updated with each message sent and received.",
@@ -582,7 +583,7 @@
"additionalParams": true
},
{
"label": "State (Code)",
"label": "Custom State (Code)",
"name": "stateMemoryCode",
"type": "code",
"description": "JSON object representing the state",
@@ -598,6 +599,7 @@
"inputAnchors": [],
"inputs": {
"stateMemory": "stateMemoryUI",
"selectedStateTab_seqState_0": "stateMemoryUI",
"stateMemoryUI": "[{\"key\":\"plan\",\"type\":\"Replace\",\"defaultValue\":\"\",\"actions\":\"\",\"id\":0},{\"key\":\"pastSteps\",\"type\":\"Append\",\"defaultValue\":\"\",\"actions\":\"\",\"id\":1},{\"key\":\"response\",\"type\":\"Replace\",\"defaultValue\":\"\",\"actions\":\"\",\"id\":2},{\"key\":\"action\",\"type\":\"Replace\",\"defaultValue\":\"\",\"actions\":\"\",\"id\":3}]"
},
"outputAnchors": [
@@ -616,8 +618,8 @@
"height": 251,
"selected": false,
"positionAbsolute": {
"x": -525.7145883375572,
"y": 411.1106840856376
"x": -516.05863088425,
"y": 408.69669472231084
},
"dragging": false
},
@@ -625,13 +627,13 @@
"id": "seqAgent_0",
"position": {
"x": 1008.3773499083541,
"y": 31.13942347960358
"y": 40.695257663897564
},
"type": "customNode",
"data": {
"id": "seqAgent_0",
"label": "Agent",
"version": 1,
"version": 2,
"name": "seqAgent",
"type": "Agent",
"baseClasses": ["Agent"],
@@ -664,6 +666,14 @@
"additionalParams": true,
"id": "seqAgent_0-input-humanMessagePrompt-string"
},
{
"label": "Require Approval",
"name": "interrupt",
"description": "Require approval before executing tools. Will proceed when tools are not called",
"type": "boolean",
"optional": true,
"id": "seqAgent_0-input-interrupt-boolean"
},
{
"label": "Format Prompt Values",
"name": "promptValues",
@@ -674,6 +684,37 @@
"list": true,
"id": "seqAgent_0-input-promptValues-json"
},
{
"label": "Approval Prompt",
"name": "approvalPrompt",
"description": "Prompt for approval. Only applicable if \"Require Approval\" is enabled",
"type": "string",
"default": "You are about to execute tool: {tools}. Ask if user want to proceed",
"rows": 4,
"optional": true,
"additionalParams": true,
"id": "seqAgent_0-input-approvalPrompt-string"
},
{
"label": "Approve Button Text",
"name": "approveButtonText",
"description": "Text for approve button. Only applicable if \"Require Approval\" is enabled",
"type": "string",
"default": "Yes",
"optional": true,
"additionalParams": true,
"id": "seqAgent_0-input-approveButtonText-string"
},
{
"label": "Reject Button Text",
"name": "rejectButtonText",
"description": "Text for reject button. Only applicable if \"Require Approval\" is enabled",
"type": "string",
"default": "No",
"optional": true,
"additionalParams": true,
"id": "seqAgent_0-input-rejectButtonText-string"
},
{
"label": "Update State",
"name": "updateStateMemory",
@@ -781,14 +822,15 @@
"name": "tools",
"type": "Tool",
"list": true,
"optional": true,
"id": "seqAgent_0-input-tools-Tool"
},
{
"label": "Start | Agent | LLM | Tool Node",
"label": "Start | Agent | Condition | LLM | Tool Node",
"name": "sequentialNode",
"type": "Start | Agent | LLMNode | ToolNode",
"type": "Start | Agent | Condition | LLMNode | ToolNode",
"list": true,
"id": "seqAgent_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqAgent_0-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"label": "Chat Model",
@@ -804,12 +846,15 @@
"systemMessagePrompt": "You are a helpful assistant that solve an objective by searching the internet using the given tool",
"humanMessagePrompt": "{question}",
"tools": ["{{googleCustomSearch_0.data.instance}}"],
"sequentialNode": ["{{seqLLMNode_0.data.instance}}"],
"sequentialNode": ["{{seqLLMNode_0.data.instance}}", "{{seqLLMNode_0.data.instance}}"],
"model": "",
"interrupt": "",
"promptValues": "{\"question\":\"$flow.state.plan[0]\"}",
"approvalPrompt": "You are about to execute tool: {tools}. Ask if user want to proceed",
"approveButtonText": "Yes",
"rejectButtonText": "No",
"updateStateMemory": "updateStateMemoryUI",
"maxIterations": "",
"updateStateMemoryUI": "[]",
"selectedUpdateStateMemoryTab_seqAgent_0": "updateStateMemoryCode",
"updateStateMemoryCode": "// Get the first task\nconst task = $flow.state.plan[0];\nconst outputContent = $flow.output.content;\n\n// Now, we have processed the first task, remove it from array\nconst remainingPlans = $flow.state.plan.slice(1);\n\nreturn {\n pastSteps: [[task, outputContent]],\n plan: remainingPlans,\n};"
},
@@ -826,11 +871,11 @@
"selected": false
},
"width": 300,
"height": 762,
"height": 877,
"selected": false,
"positionAbsolute": {
"x": 1008.3773499083541,
"y": 31.13942347960358
"y": 40.695257663897564
},
"dragging": false
},
@@ -844,7 +889,7 @@
"data": {
"id": "seqLLMNode_1",
"label": "LLM Node",
"version": 1,
"version": 2,
"name": "seqLLMNode",
"type": "LLMNode",
"baseClasses": ["LLMNode"],
@@ -1009,11 +1054,11 @@
],
"inputAnchors": [
{
"label": "Start | Agent | LLM | Tool Node",
"label": "Start | Agent | Condition | LLM | Tool Node",
"name": "sequentialNode",
"type": "Start | Agent | LLMNode | ToolNode",
"type": "Start | Agent | Condition | LLMNode | ToolNode",
"list": true,
"id": "seqLLMNode_1-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqLLMNode_1-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"label": "Chat Model",
@@ -1028,11 +1073,12 @@
"llmNodeName": "replan",
"systemMessagePrompt": "For the given objective, come up with a simple step by step plan. \nThis plan should involve individual tasks, that if executed correctly will yield the correct answer. Do not add any superfluous steps.\nThe result of the final step should be the final answer. Make sure that each step has all the information needed - do not skip steps.\n\nYour objective was this:\n{input}\n\nYour original plan was this:\n{plan}\n\nYou have currently done the follow steps:\n{pastSteps}\n\nUpdate your plan accordingly. Only add steps to the plan that still NEED to be done. Do not return previously done steps as part of the plan.\n\nIf no more steps are needed, return JSON output like %7B\"action\": \"FINISH\", \"response\": <your-final-response>, \"steps: []\"%7D\n\nOtherwise, fill out the plan and return the output in the following format: %7B\"action\": \"CONTINUE\", \"response\": \"\", \"steps\": [<your-steps>]%7D\n\nRemember, action can only be FINISH or CONTINUE",
"humanMessagePrompt": "",
"sequentialNode": ["{{seqAgent_0.data.instance}}"],
"sequentialNode": ["{{seqAgent_0.data.instance}}", "{{seqAgent_0.data.instance}}"],
"model": "",
"promptValues": "{\"input\":\"{{question}}\",\"plan\":\"$flow.state.plan\",\"pastSteps\":\"$flow.state.pastSteps\"}",
"llmStructuredOutput": "[{\"key\":\"action\",\"type\":\"Enum\",\"enumValues\":\"FINISH, CONTINUE\",\"description\":\"next action to take\",\"actions\":\"\",\"id\":0},{\"key\":\"steps\",\"type\":\"String Array\",\"enumValues\":\"\",\"description\":\"different steps to follow, should be in sorted order\",\"actions\":\"\",\"id\":1},{\"key\":\"response\",\"type\":\"String\",\"enumValues\":\"\",\"description\":\"final response\",\"actions\":\"\",\"id\":2}]",
"updateStateMemory": "updateStateMemoryUI",
"selectedUpdateStateMemoryTab_seqLLMNode_1": "updateStateMemoryUI",
"updateStateMemoryUI": "[{\"key\":\"response\",\"value\":\"$flow.output.response\",\"actions\":\"\",\"id\":0},{\"key\":\"plan\",\"value\":\"$flow.output.steps\",\"actions\":\"\",\"id\":1},{\"key\":\"action\",\"value\":\"$flow.output.action\",\"actions\":\"\",\"id\":2}]"
},
"outputAnchors": [
@@ -1048,7 +1094,7 @@
"selected": false
},
"width": 300,
"height": 431,
"height": 450,
"selected": false,
"positionAbsolute": {
"x": 1399.9937770241447,
@@ -1066,7 +1112,7 @@
"data": {
"id": "seqCondition_0",
"label": "Condition",
"version": 1,
"version": 2,
"name": "seqCondition",
"type": "Condition",
"baseClasses": ["Condition"],
@@ -1190,37 +1236,39 @@
"conditionName": "Check action",
"sequentialNode": ["{{seqLLMNode_1.data.instance}}"],
"condition": "",
"conditionUI": "[{\"variable\":\"$flow.state.action\",\"operation\":\"Contains\",\"value\":\"CONTINUE\",\"output\":\"Continue\",\"actions\":\"\",\"id\":0},{\"variable\":\"$flow.state.action\",\"operation\":\"Contains\",\"value\":\"FINISH\",\"output\":\"Generate\",\"actions\":\"\",\"id\":1}]",
"selectedConditionFunctionTab_seqCondition_0": "conditionUI"
"selectedConditionFunctionTab_seqCondition_0": "conditionUI",
"conditionUI": "[{\"variable\":\"$flow.state.action\",\"operation\":\"Contains\",\"value\":\"CONTINUE\",\"output\":\"Continue\",\"actions\":\"\",\"id\":0},{\"variable\":\"$flow.state.action\",\"operation\":\"Contains\",\"value\":\"FINISH\",\"output\":\"Generate\",\"actions\":\"\",\"id\":1}]"
},
"outputAnchors": [
{
"name": "output",
"label": "Output",
"type": "options",
"description": "",
"options": [
{
"id": "seqCondition_0-output-continue-Agent|LLMNode|ToolNode",
"id": "seqCondition_0-output-continue-Condition",
"name": "continue",
"label": "Continue",
"type": "Agent | LLMNode | ToolNode",
"type": "Condition",
"isAnchor": true
},
{
"id": "seqCondition_0-output-end-Agent|LLMNode|ToolNode",
"id": "seqCondition_0-output-end-Condition",
"name": "end",
"label": "End",
"type": "Agent | LLMNode | ToolNode",
"type": "Condition",
"isAnchor": true
},
{
"id": "seqCondition_0-output-generate-Agent|LLMNode|ToolNode",
"id": "seqCondition_0-output-generate-Condition",
"name": "generate",
"label": "Generate",
"type": "Agent | LLMNode | ToolNode",
"type": "Condition",
"isAnchor": true
}
]
],
"default": "next"
}
],
"outputs": {
@@ -1240,14 +1288,14 @@
{
"id": "seqLoop_0",
"position": {
"x": 2165.5413404902483,
"y": 137.6950659389894
"x": 2177.6112873068823,
"y": 144.93703402896983
},
"type": "customNode",
"data": {
"id": "seqLoop_0",
"label": "Loop",
"version": 1,
"version": 2,
"name": "seqLoop",
"type": "Loop",
"baseClasses": ["Loop"],
@@ -1257,23 +1305,23 @@
{
"label": "Loop To",
"name": "loopToName",
"description": "Name of the agent to loop back to",
"description": "Name of the agent/llm to loop back to",
"type": "string",
"placeholder": "agent1",
"placeholder": "Agent",
"id": "seqLoop_0-input-loopToName-string"
}
],
"inputAnchors": [
{
"label": "Start | Agent | LLM | Tool Node",
"label": "Agent | Condition | LLM | Tool Node",
"name": "sequentialNode",
"type": "Start | Agent | LLMNode | ToolNode",
"type": "Agent | Condition | LLMNode | ToolNode",
"list": true,
"id": "seqLoop_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqLoop_0-input-sequentialNode-Agent | Condition | LLMNode | ToolNode"
}
],
"inputs": {
"sequentialNode": ["{{seqCondition_0.data.instance}}"],
"sequentialNode": ["{{seqCondition_0.data.instance}}", "{{seqCondition_0.data.instance}}"],
"loopToName": "agent"
},
"outputAnchors": [],
@@ -1284,8 +1332,8 @@
"height": 241,
"selected": false,
"positionAbsolute": {
"x": 2165.5413404902483,
"y": 137.6950659389894
"x": 2177.6112873068823,
"y": 144.93703402896983
},
"dragging": false
},
@@ -1340,14 +1388,14 @@
{
"id": "seqEnd_1",
"position": {
"x": 2545.0923771805938,
"y": 856.3939761670131
"x": 2550.580762684655,
"y": 942.3786823973096
},
"type": "customNode",
"data": {
"id": "seqEnd_1",
"label": "End",
"version": 1,
"version": 2,
"name": "seqEnd",
"type": "End",
"baseClasses": ["End"],
@@ -1356,10 +1404,10 @@
"inputParams": [],
"inputAnchors": [
{
"label": "Start | Agent | LLM | Tool Node",
"label": "Agent | Condition | LLM | Tool Node",
"name": "sequentialNode",
"type": "Start | Agent | LLMNode | ToolNode",
"id": "seqEnd_1-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"type": "Agent | Condition | LLMNode | ToolNode",
"id": "seqEnd_1-input-sequentialNode-Agent | Condition | LLMNode | ToolNode"
}
],
"inputs": {
@@ -1373,22 +1421,22 @@
"height": 143,
"selected": false,
"positionAbsolute": {
"x": 2545.0923771805938,
"y": 856.3939761670131
"x": 2550.580762684655,
"y": 942.3786823973096
},
"dragging": false
},
{
"id": "seqLLMNode_3",
"position": {
"x": 2196.534673643061,
"y": 679.076382001725
"x": 2191.7066949164073,
"y": 688.7323394550323
},
"type": "customNode",
"data": {
"id": "seqLLMNode_3",
"label": "LLM Node",
"version": 1,
"version": 2,
"name": "seqLLMNode",
"type": "LLMNode",
"baseClasses": ["LLMNode"],
@@ -1553,11 +1601,11 @@
],
"inputAnchors": [
{
"label": "Start | Agent | LLM | Tool Node",
"label": "Start | Agent | Condition | LLM | Tool Node",
"name": "sequentialNode",
"type": "Start | Agent | LLMNode | ToolNode",
"type": "Start | Agent | Condition | LLMNode | ToolNode",
"list": true,
"id": "seqLLMNode_3-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqLLMNode_3-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"label": "Chat Model",
@@ -1572,11 +1620,12 @@
"llmNodeName": "generate",
"systemMessagePrompt": "For the given objective, come up with a simple step by step plan. \nThis plan should involve individual tasks, that if executed correctly will yield the correct answer. Do not add any superfluous steps.\nThe result of the final step should be the final answer. Make sure that each step has all the information needed - do not skip steps.\n\nYour objective was this:\n{objective}\n\nYour original plan was this:\n{plan}\n\nYou have currently done the follow steps:\n{pastSteps}\n\nYou have the final response:\n{response}\n\nReturn a full answer combining all the perspective above",
"humanMessagePrompt": "",
"sequentialNode": ["{{seqCondition_0.data.instance}}"],
"sequentialNode": ["{{seqCondition_0.data.instance}}", "{{seqCondition_0.data.instance}}"],
"model": "",
"promptValues": "{\"objective\":\"{{question}}\",\"response\":\"$flow.state.response\",\"plan\":\"$flow.state.plan\",\"pastSteps\":\"$flow.state.pastSteps\"}",
"llmStructuredOutput": "",
"updateStateMemory": "updateStateMemoryUI",
"selectedUpdateStateMemoryTab_seqLLMNode_3": "updateStateMemoryUI",
"updateStateMemoryUI": "[]"
},
"outputAnchors": [
@@ -1592,19 +1641,19 @@
"selected": false
},
"width": 300,
"height": 431,
"height": 450,
"selected": false,
"dragging": false,
"positionAbsolute": {
"x": 2196.534673643061,
"y": 679.076382001725
"x": 2191.7066949164073,
"y": 688.7323394550323
}
},
{
"id": "stickyNote_0",
"position": {
"x": -539.8238902900496,
"y": -3.882603532988014
"x": -513.158859797605,
"y": -28.123540344301205
},
"type": "stickyNote",
"data": {
@@ -1645,11 +1694,11 @@
"selected": false
},
"width": 300,
"height": 364,
"height": 404,
"selected": false,
"positionAbsolute": {
"x": -539.8238902900496,
"y": -3.882603532988014
"x": -513.158859797605,
"y": -28.123540344301205
},
"dragging": false
},
@@ -1657,7 +1706,7 @@
"id": "stickyNote_1",
"position": {
"x": 651.5991573765737,
"y": 619.5366041903698
"y": 651.3893848046831
},
"type": "stickyNote",
"data": {
@@ -1702,7 +1751,7 @@
"selected": false,
"positionAbsolute": {
"x": 651.5991573765737,
"y": 619.5366041903698
"y": 651.3893848046831
},
"dragging": false
},
@@ -1868,8 +1917,8 @@
{
"id": "stickyNote_5",
"position": {
"x": 2189.3034258063108,
"y": 607.3552983883712
"x": 2194.081342898458,
"y": 600.9847422655085
},
"type": "stickyNote",
"data": {
@@ -1913,8 +1962,8 @@
"height": 62,
"selected": false,
"positionAbsolute": {
"x": 2189.3034258063108,
"y": 607.3552983883712
"x": 2194.081342898458,
"y": 600.9847422655085
},
"dragging": false
}
@@ -1936,38 +1985,6 @@
"type": "buttonedge",
"id": "seqState_0-seqState_0-output-seqState-State-seqStart_0-seqStart_0-input-state-State"
},
{
"source": "seqCondition_0",
"sourceHandle": "seqCondition_0-output-end-Agent|LLMNode|ToolNode",
"target": "seqEnd_0",
"targetHandle": "seqEnd_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqCondition_0-seqCondition_0-output-end-Agent|LLMNode|ToolNode-seqEnd_0-seqEnd_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
},
{
"source": "seqStart_0",
"sourceHandle": "seqStart_0-output-seqStart-Start",
"target": "seqLLMNode_0",
"targetHandle": "seqLLMNode_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqStart_0-seqStart_0-output-seqStart-Start-seqLLMNode_0-seqLLMNode_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
},
{
"source": "seqLLMNode_0",
"sourceHandle": "seqLLMNode_0-output-seqLLMNode-LLMNode",
"target": "seqAgent_0",
"targetHandle": "seqAgent_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqLLMNode_0-seqLLMNode_0-output-seqLLMNode-LLMNode-seqAgent_0-seqAgent_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
},
{
"source": "seqAgent_0",
"sourceHandle": "seqAgent_0-output-seqAgent-Agent",
"target": "seqLLMNode_1",
"targetHandle": "seqLLMNode_1-input-sequentialNode-Start | Agent | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqAgent_0-seqAgent_0-output-seqAgent-Agent-seqLLMNode_1-seqLLMNode_1-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
},
{
"source": "seqLLMNode_1",
"sourceHandle": "seqLLMNode_1-output-seqLLMNode-LLMNode",
@@ -1985,28 +2002,60 @@
"id": "googleCustomSearch_0-googleCustomSearch_0-output-googleCustomSearch-GoogleCustomSearchAPI|Tool|StructuredTool|Runnable-seqAgent_0-seqAgent_0-input-tools-Tool"
},
{
"source": "seqCondition_0",
"sourceHandle": "seqCondition_0-output-continue-Agent|LLMNode|ToolNode",
"target": "seqLoop_0",
"targetHandle": "seqLoop_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode",
"source": "seqStart_0",
"sourceHandle": "seqStart_0-output-seqStart-Start",
"target": "seqLLMNode_0",
"targetHandle": "seqLLMNode_0-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqCondition_0-seqCondition_0-output-continue-Agent|LLMNode|ToolNode-seqLoop_0-seqLoop_0-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqStart_0-seqStart_0-output-seqStart-Start-seqLLMNode_0-seqLLMNode_0-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"source": "seqLLMNode_0",
"sourceHandle": "seqLLMNode_0-output-seqLLMNode-LLMNode",
"target": "seqAgent_0",
"targetHandle": "seqAgent_0-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqLLMNode_0-seqLLMNode_0-output-seqLLMNode-LLMNode-seqAgent_0-seqAgent_0-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"source": "seqAgent_0",
"sourceHandle": "seqAgent_0-output-seqAgent-Agent",
"target": "seqLLMNode_1",
"targetHandle": "seqLLMNode_1-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqAgent_0-seqAgent_0-output-seqAgent-Agent-seqLLMNode_1-seqLLMNode_1-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"source": "seqCondition_0",
"sourceHandle": "seqCondition_0-output-generate-Agent|LLMNode|ToolNode",
"target": "seqLLMNode_3",
"targetHandle": "seqLLMNode_3-input-sequentialNode-Start | Agent | LLMNode | ToolNode",
"sourceHandle": "seqCondition_0-output-continue-Condition",
"target": "seqLoop_0",
"targetHandle": "seqLoop_0-input-sequentialNode-Agent | Condition | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqCondition_0-seqCondition_0-output-generate-Agent|LLMNode|ToolNode-seqLLMNode_3-seqLLMNode_3-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqCondition_0-seqCondition_0-output-continue-Condition-seqLoop_0-seqLoop_0-input-sequentialNode-Agent | Condition | LLMNode | ToolNode"
},
{
"source": "seqCondition_0",
"sourceHandle": "seqCondition_0-output-end-Condition",
"target": "seqEnd_0",
"targetHandle": "seqEnd_0-input-sequentialNode-Agent | Condition | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqCondition_0-seqCondition_0-output-end-Condition-seqEnd_0-seqEnd_0-input-sequentialNode-Agent | Condition | LLMNode | ToolNode"
},
{
"source": "seqCondition_0",
"sourceHandle": "seqCondition_0-output-generate-Condition",
"target": "seqLLMNode_3",
"targetHandle": "seqLLMNode_3-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqCondition_0-seqCondition_0-output-generate-Condition-seqLLMNode_3-seqLLMNode_3-input-sequentialNode-Start | Agent | Condition | LLMNode | ToolNode"
},
{
"source": "seqLLMNode_3",
"sourceHandle": "seqLLMNode_3-output-seqLLMNode-LLMNode",
"target": "seqEnd_1",
"targetHandle": "seqEnd_1-input-sequentialNode-Start | Agent | LLMNode | ToolNode",
"targetHandle": "seqEnd_1-input-sequentialNode-Agent | Condition | LLMNode | ToolNode",
"type": "buttonedge",
"id": "seqLLMNode_3-seqLLMNode_3-output-seqLLMNode-LLMNode-seqEnd_1-seqEnd_1-input-sequentialNode-Start | Agent | LLMNode | ToolNode"
"id": "seqLLMNode_3-seqLLMNode_3-output-seqLLMNode-LLMNode-seqEnd_1-seqEnd_1-input-sequentialNode-Agent | Condition | LLMNode | ToolNode"
}
]
}