Chore/Update issue templates and add new tools (#4687)

* Enhancement: Update issue templates and add new tools

- Updated bug report template to include a default label of 'bug'.
- Updated feature request template to include a default label of 'enhancement'.
- Added new credential class for Agentflow API.
- Enhanced Agent and HTTP nodes to improve tool management and error handling.
- Added deprecation badges to several agent and chain classes.
- Introduced new tools for handling requests (GET, POST, DELETE, PUT) with improved error handling.
- Added new chatflows and agentflows for various use cases, including document QnA and translation.
- Updated UI components for better handling of agent flows and marketplace interactions.
- Refactored utility functions for improved functionality and clarity.

* Refactor: Remove beta badge and streamline template title assignment

- Removed the 'BETA' badge from the ExtractMetadataRetriever class.
- Simplified the title assignment in the agentflowv2 generator by using a variable instead of inline string manipulation.
This commit is contained in:
Henry Heng
2025-06-19 18:11:24 +01:00
committed by GitHub
parent 15dd28356b
commit a107aa7a77
86 changed files with 9942 additions and 12634 deletions
@@ -1,6 +1,6 @@
{
"description": "An agent based approach using AgentflowV2 to perform self-correcting question answering over documents",
"usecases": ["Reflective Agent"],
"usecases": ["Reflective Agent", "Documents QnA"],
"nodes": [
{
"id": "startAgentflow_0",
@@ -1,13 +1,13 @@
{
"description": "An agent capable of performing research, synthesizing information, and generating in-depth, well-structured white papers on any given topic",
"usecases": ["Agent"],
"description": "Deep research system that conducts multi-turn agent conversations to perform web search, synthesize insights and generate well-structured white papers",
"usecases": ["Deep Research"],
"nodes": [
{
"id": "startAgentflow_0",
"type": "agentFlow",
"position": {
"x": -275.0799323960054,
"y": 31.301887150099603
"x": -397.64170181617976,
"y": 87.52288229696859
},
"data": {
"id": "startAgentflow_0",
@@ -188,19 +188,19 @@
"selected": false
},
"width": 103,
"height": 65,
"height": 66,
"selected": false,
"positionAbsolute": {
"x": -275.0799323960054,
"y": 31.301887150099603
"x": -397.64170181617976,
"y": 87.52288229696859
},
"dragging": false
},
{
"id": "llmAgentflow_0",
"position": {
"x": -59.13383952997965,
"y": 28.495983624910906
"x": -242.41428370877253,
"y": 85.84139867471725
},
"data": {
"id": "llmAgentflow_0",
@@ -513,19 +513,19 @@
},
"type": "agentFlow",
"width": 175,
"height": 71,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": -59.13383952997965,
"y": 28.495983624910906
"x": -242.41428370877253,
"y": 85.84139867471725
},
"dragging": false
},
{
"id": "agentAgentflow_0",
"position": {
"x": 209.99147630894493,
"y": 100.7933285478893
"x": -26.136703307904796,
"y": 72.89650466398558
},
"data": {
"id": "agentAgentflow_0",
@@ -824,13 +824,6 @@
}
],
"agentTools": [
{
"agentSelectedTool": "braveSearchAPI",
"agentSelectedToolRequiresHumanInput": "",
"agentSelectedToolConfig": {
"agentSelectedTool": "braveSearchAPI"
}
},
{
"agentSelectedTool": "webScraperTool",
"agentSelectedToolRequiresHumanInput": "",
@@ -842,6 +835,13 @@
"description": "",
"agentSelectedTool": "webScraperTool"
}
},
{
"agentSelectedTool": "braveSearchAPI",
"agentSelectedToolRequiresHumanInput": "",
"agentSelectedToolConfig": {
"agentSelectedTool": "braveSearchAPI"
}
}
],
"agentKnowledgeDocumentStores": "",
@@ -879,20 +879,20 @@
"selected": false
},
"type": "agentFlow",
"width": 199,
"height": 103,
"width": 200,
"height": 100,
"selected": false,
"positionAbsolute": {
"x": 209.99147630894493,
"y": 100.7933285478893
"x": -26.136703307904796,
"y": 72.89650466398558
},
"dragging": false
},
{
"id": "agentAgentflow_1",
"position": {
"x": 203.50865583557328,
"y": -75.13070214403373
"x": 210.25517525319754,
"y": 73.29272504370039
},
"data": {
"id": "agentAgentflow_1",
@@ -1191,13 +1191,6 @@
}
],
"agentTools": [
{
"agentSelectedTool": "braveSearchAPI",
"agentSelectedToolRequiresHumanInput": "",
"agentSelectedToolConfig": {
"agentSelectedTool": "braveSearchAPI"
}
},
{
"agentSelectedTool": "webScraperTool",
"agentSelectedToolRequiresHumanInput": "",
@@ -1209,6 +1202,13 @@
"description": "",
"agentSelectedTool": "webScraperTool"
}
},
{
"agentSelectedTool": "braveSearchAPI",
"agentSelectedToolRequiresHumanInput": "",
"agentSelectedToolConfig": {
"agentSelectedTool": "braveSearchAPI"
}
}
],
"agentKnowledgeDocumentStores": "",
@@ -1246,24 +1246,24 @@
"selected": false
},
"type": "agentFlow",
"width": 199,
"height": 103,
"width": 200,
"height": 100,
"selected": false,
"positionAbsolute": {
"x": 203.50865583557328,
"y": -75.13070214403373
"x": 210.25517525319754,
"y": 73.29272504370039
},
"dragging": false
},
{
"id": "conditionAgentflow_0",
"position": {
"x": 497.07879661792845,
"y": 29.068421396935392
"x": 457.0277025649177,
"y": 83.6060813840138
},
"data": {
"id": "conditionAgentflow_0",
"label": "Condition",
"label": "Check Iterations",
"version": 1,
"name": "conditionAgentflow",
"type": "Condition",
@@ -1520,24 +1520,24 @@
"selected": false
},
"type": "agentFlow",
"width": 134,
"width": 178,
"height": 80,
"selected": false,
"positionAbsolute": {
"x": 497.07879661792845,
"y": 29.068421396935392
"x": 457.0277025649177,
"y": 83.6060813840138
},
"dragging": false
},
{
"id": "loopAgentflow_0",
"position": {
"x": 710.6354115635097,
"y": -61.015932400168076
"x": 690.1837890683553,
"y": 22.494859455045713
},
"data": {
"id": "loopAgentflow_0",
"label": "Loop",
"label": "Loop Back to Agent 0",
"version": 1,
"name": "loopAgentflow",
"type": "Loop",
@@ -1575,13 +1575,13 @@
"selected": false
},
"type": "agentFlow",
"width": 104,
"height": 65,
"width": 211,
"height": 66,
"selected": false,
"dragging": false,
"positionAbsolute": {
"x": 710.6354115635097,
"y": -61.015932400168076
"x": 690.1837890683553,
"y": 22.494859455045713
}
},
{
@@ -1900,8 +1900,8 @@
"selected": false
},
"type": "agentFlow",
"width": 199,
"height": 71,
"width": 200,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": 693.0529196789191,
@@ -1912,8 +1912,8 @@
{
"id": "stickyNoteAgentflow_0",
"position": {
"x": -320.62033146052283,
"y": -110.15285265313359
"x": -445.43094068657194,
"y": -61.80279682682627
},
"data": {
"id": "stickyNoteAgentflow_0",
@@ -1952,20 +1952,20 @@
"selected": false
},
"type": "stickyNote",
"width": 203,
"height": 122,
"width": 210,
"height": 123,
"selected": false,
"positionAbsolute": {
"x": -320.62033146052283,
"y": -110.15285265313359
"x": -445.43094068657194,
"y": -61.80279682682627
},
"dragging": false
},
{
"id": "stickyNoteAgentflow_1",
"position": {
"x": 466.8306744858025,
"y": -189.9009582021492
"x": 454.90056136362915,
"y": -146.44126039994615
},
"data": {
"id": "stickyNoteAgentflow_1",
@@ -2004,12 +2004,12 @@
"selected": false
},
"type": "stickyNote",
"width": 203,
"height": 202,
"width": 210,
"height": 203,
"selected": false,
"positionAbsolute": {
"x": 466.8306744858025,
"y": -189.9009582021492
"x": 454.90056136362915,
"y": -146.44126039994615
},
"dragging": false
},
@@ -2056,8 +2056,8 @@
"selected": false
},
"type": "stickyNote",
"width": 203,
"height": 283,
"width": 210,
"height": 263,
"selected": false,
"positionAbsolute": {
"x": 693.7511120802441,
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,13 +1,13 @@
{
"description": "An email reply HITL (human in the loop) agent that can proceed or refine the email with user input",
"usecases": ["Human In Loop"],
"description": "A basic RAG agent that can retrieve documents from document store and answer questions",
"usecases": ["Documents QnA"],
"nodes": [
{
"id": "startAgentflow_0",
"type": "agentFlow",
"position": {
"x": -212.0817769699585,
"y": 95.2304753249555
"x": 64,
"y": 98.5
},
"data": {
"id": "startAgentflow_0",
@@ -133,7 +133,9 @@
"name": "startEphemeralMemory",
"type": "boolean",
"description": "Start fresh for every execution without past chat history",
"optional": true
"optional": true,
"id": "startAgentflow_0-input-startEphemeralMemory-boolean",
"display": true
},
{
"label": "Flow State",
@@ -152,7 +154,8 @@
"label": "Value",
"name": "value",
"type": "string",
"placeholder": "Bar"
"placeholder": "Bar",
"optional": true
}
],
"id": "startAgentflow_0-input-startState-array",
@@ -174,7 +177,9 @@
"formTitle": "",
"formDescription": "",
"formInputTypes": "",
"startState": ""
"startEphemeralMemory": "",
"startState": "",
"startPersistState": ""
},
"outputAnchors": [
{
@@ -186,24 +191,24 @@
"outputs": {},
"selected": false
},
"width": 101,
"height": 65,
"selected": false,
"width": 103,
"height": 66,
"positionAbsolute": {
"x": -212.0817769699585,
"y": 95.2304753249555
"x": 64,
"y": 98.5
},
"selected": false,
"dragging": false
},
{
"id": "agentAgentflow_0",
"position": {
"x": -62.25,
"y": 76
"x": 216.75,
"y": 96.5
},
"data": {
"id": "agentAgentflow_0",
"label": "Email Reply Agent",
"label": "QnA",
"version": 1,
"name": "agentAgentflow",
"type": "Agent",
@@ -494,24 +499,18 @@
"agentMessages": [
{
"role": "system",
"content": "<p>You are a customer support agent working in Flowise Inc. Write a professional email reply to user's query. Use the web search tools to get more details about the prospect.</p>"
"content": "<p>You are a helpful assistant. Using the provided context, answer the user's question to the best of your ability using the resources provided.</p><p>If there is nothing in the context relevant to the question at hand, just say \"Hmm, I'm not sure.\" Don't try to make up an answer.</p>"
}
],
"agentTools": [
"agentTools": "",
"agentKnowledgeDocumentStores": [
{
"agentSelectedTool": "googleCustomSearch",
"agentSelectedToolConfig": {
"agentSelectedTool": "googleCustomSearch"
}
},
{
"agentSelectedTool": "currentDateTime",
"agentSelectedToolConfig": {
"agentSelectedTool": "currentDateTime"
}
"documentStore": "25429b8f-0377-4762-9cda-0d5366cf022c:AI-Paper",
"docStoreDescription": "This paper provides an extensive overview of artificial intelligence-generated content (AIGC), including its definition, capabilities, applications, challenges, and future directions, serving as a valuable resource for researchers and industry professionals to understand and harness AIGC's potential.",
"returnSourceDocuments": true
}
],
"agentKnowledgeDocumentStores": "",
"agentKnowledgeVSEmbeddings": "",
"agentEnableMemory": true,
"agentMemoryType": "allMessages",
"agentUserMessage": "",
@@ -549,250 +548,64 @@
"selected": false
},
"type": "agentFlow",
"width": 182,
"height": 103,
"width": 175,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": -62.25,
"y": 76
"x": 216.75,
"y": 96.5
},
"dragging": false
},
{
"id": "humanInputAgentflow_0",
"id": "stickyNoteAgentflow_0",
"position": {
"x": 156.05666363734434,
"y": 86.62266545493773
"x": 209.875,
"y": -61.25
},
"data": {
"id": "humanInputAgentflow_0",
"label": "Human Input 0",
"id": "stickyNoteAgentflow_0",
"label": "Sticky Note",
"version": 1,
"name": "humanInputAgentflow",
"type": "HumanInput",
"color": "#6E6EFD",
"baseClasses": ["HumanInput"],
"name": "stickyNoteAgentflow",
"type": "StickyNote",
"color": "#fee440",
"baseClasses": ["StickyNote"],
"category": "Agent Flows",
"description": "Request human input, approval or rejection during execution",
"description": "Add notes to the agent flow",
"inputParams": [
{
"label": "Description Type",
"name": "humanInputDescriptionType",
"type": "options",
"options": [
{
"label": "Fixed",
"name": "fixed",
"description": "Specify a fixed description"
},
{
"label": "Dynamic",
"name": "dynamic",
"description": "Use LLM to generate a description"
}
],
"id": "humanInputAgentflow_0-input-humanInputDescriptionType-options",
"display": true
},
{
"label": "Description",
"name": "humanInputDescription",
"label": "",
"name": "note",
"type": "string",
"placeholder": "Are you sure you want to proceed?",
"acceptVariable": true,
"rows": 4,
"show": {
"humanInputDescriptionType": "fixed"
},
"id": "humanInputAgentflow_0-input-humanInputDescription-string",
"display": true
},
{
"label": "Model",
"name": "humanInputModel",
"type": "asyncOptions",
"loadMethod": "listModels",
"loadConfig": true,
"show": {
"humanInputDescriptionType": "dynamic"
},
"id": "humanInputAgentflow_0-input-humanInputModel-asyncOptions",
"display": false
},
{
"label": "Prompt",
"name": "humanInputModelPrompt",
"type": "string",
"default": "<p>Summarize the conversation between the user and the assistant, reiterate the last message from the assistant, and ask if user would like to proceed or if they have any feedback. </p>\n<ul>\n<li>Begin by capturing the key points of the conversation, ensuring that you reflect the main ideas and themes discussed.</li>\n<li>Then, clearly reproduce the last message sent by the assistant to maintain continuity. Make sure the whole message is reproduced.</li>\n<li>Finally, ask the user if they would like to proceed, or provide any feedback on the last assistant message</li>\n</ul>\n<h2 id=\"output-format-the-output-should-be-structured-in-three-parts-\">Output Format The output should be structured in three parts in text:</h2>\n<ul>\n<li>A summary of the conversation (1-3 sentences).</li>\n<li>The last assistant message (exactly as it appeared).</li>\n<li>Ask the user if they would like to proceed, or provide any feedback on last assistant message. No other explanation and elaboration is needed.</li>\n</ul>\n",
"acceptVariable": true,
"generateInstruction": true,
"rows": 4,
"show": {
"humanInputDescriptionType": "dynamic"
},
"id": "humanInputAgentflow_0-input-humanInputModelPrompt-string",
"display": false
},
{
"label": "Enable Feedback",
"name": "humanInputEnableFeedback",
"type": "boolean",
"default": true,
"id": "humanInputAgentflow_0-input-humanInputEnableFeedback-boolean",
"rows": 1,
"placeholder": "Type something here",
"optional": true,
"id": "stickyNoteAgentflow_0-input-note-string",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"humanInputDescriptionType": "fixed",
"humanInputEnableFeedback": true,
"humanInputModelConfig": {
"cache": "",
"modelName": "gpt-4o-mini",
"temperature": 0.9,
"streaming": true,
"maxTokens": "",
"topP": "",
"frequencyPenalty": "",
"presencePenalty": "",
"timeout": "",
"strictToolCalling": "",
"stopSequence": "",
"basepath": "",
"proxyUrl": "",
"baseOptions": "",
"allowImageUploads": "",
"imageResolution": "low",
"reasoningEffort": "medium",
"humanInputModel": "chatOpenAI"
},
"humanInputDescription": "<p>Are you sure you want to proceed?</p>"
"note": "Agent can retrieve documents from upserted document store, and directly from vector database"
},
"outputAnchors": [
{
"id": "humanInputAgentflow_0-output-0",
"label": "Human Input",
"name": "humanInputAgentflow"
},
{
"id": "humanInputAgentflow_0-output-1",
"label": "Human Input",
"name": "humanInputAgentflow"
"id": "stickyNoteAgentflow_0-output-stickyNoteAgentflow",
"label": "Sticky Note",
"name": "stickyNoteAgentflow"
}
],
"outputs": {
"humanInputAgentflow": ""
},
"selected": false
},
"type": "agentFlow",
"width": 161,
"height": 80,
"selected": false,
"positionAbsolute": {
"x": 156.05666363734434,
"y": 86.62266545493773
},
"dragging": false
},
{
"id": "directReplyAgentflow_0",
"position": {
"x": 363.0101864947954,
"y": 35.15053748988734
},
"data": {
"id": "directReplyAgentflow_0",
"label": "Direct Reply 0",
"version": 1,
"name": "directReplyAgentflow",
"type": "DirectReply",
"color": "#4DDBBB",
"hideOutput": true,
"baseClasses": ["DirectReply"],
"category": "Agent Flows",
"description": "Directly reply to the user with a message",
"inputParams": [
{
"label": "Message",
"name": "directReplyMessage",
"type": "string",
"rows": 4,
"acceptVariable": true,
"id": "directReplyAgentflow_0-input-directReplyMessage-string",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"directReplyMessage": "<p><span class=\"variable\" data-type=\"mention\" data-id=\"agentAgentflow_0\" data-label=\"agentAgentflow_0\">{{ agentAgentflow_0 }}</span> </p>"
},
"outputAnchors": [],
"outputs": {},
"selected": false
},
"type": "agentFlow",
"width": 155,
"height": 65,
"type": "stickyNote",
"width": 210,
"height": 143,
"selected": false,
"positionAbsolute": {
"x": 363.0101864947954,
"y": 35.15053748988734
},
"dragging": false
},
{
"id": "loopAgentflow_0",
"position": {
"x": 366.5975521223236,
"y": 130.12266545493773
},
"data": {
"id": "loopAgentflow_0",
"label": "Loop 0",
"version": 1,
"name": "loopAgentflow",
"type": "Loop",
"color": "#FFA07A",
"hideOutput": true,
"baseClasses": ["Loop"],
"category": "Agent Flows",
"description": "Loop back to a previous node",
"inputParams": [
{
"label": "Loop Back To",
"name": "loopBackToNode",
"type": "asyncOptions",
"loadMethod": "listPreviousNodes",
"freeSolo": true,
"id": "loopAgentflow_0-input-loopBackToNode-asyncOptions",
"display": true
},
{
"label": "Max Loop Count",
"name": "maxLoopCount",
"type": "number",
"default": 5,
"id": "loopAgentflow_0-input-maxLoopCount-number",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"loopBackToNode": "agentAgentflow_0-Email Reply Agent",
"maxLoopCount": 5
},
"outputAnchors": [],
"outputs": {},
"selected": false
},
"type": "agentFlow",
"width": 113,
"height": 65,
"selected": false,
"positionAbsolute": {
"x": 366.5975521223236,
"y": 130.12266545493773
"x": 209.875,
"y": -61.25
},
"dragging": false
}
@@ -810,47 +623,6 @@
},
"type": "agentFlow",
"id": "startAgentflow_0-startAgentflow_0-output-startAgentflow-agentAgentflow_0-agentAgentflow_0"
},
{
"source": "agentAgentflow_0",
"sourceHandle": "agentAgentflow_0-output-agentAgentflow",
"target": "humanInputAgentflow_0",
"targetHandle": "humanInputAgentflow_0",
"data": {
"sourceColor": "#4DD0E1",
"targetColor": "#6E6EFD",
"isHumanInput": false
},
"type": "agentFlow",
"id": "agentAgentflow_0-agentAgentflow_0-output-agentAgentflow-humanInputAgentflow_0-humanInputAgentflow_0"
},
{
"source": "humanInputAgentflow_0",
"sourceHandle": "humanInputAgentflow_0-output-0",
"target": "directReplyAgentflow_0",
"targetHandle": "directReplyAgentflow_0",
"data": {
"sourceColor": "#6E6EFD",
"targetColor": "#4DDBBB",
"edgeLabel": "proceed",
"isHumanInput": true
},
"type": "agentFlow",
"id": "humanInputAgentflow_0-humanInputAgentflow_0-output-0-directReplyAgentflow_0-directReplyAgentflow_0"
},
{
"source": "humanInputAgentflow_0",
"sourceHandle": "humanInputAgentflow_0-output-1",
"target": "loopAgentflow_0",
"targetHandle": "loopAgentflow_0",
"data": {
"sourceColor": "#6E6EFD",
"targetColor": "#FFA07A",
"edgeLabel": "reject",
"isHumanInput": true
},
"type": "agentFlow",
"id": "humanInputAgentflow_0-humanInputAgentflow_0-output-1-loopAgentflow_0-loopAgentflow_0"
}
]
}
@@ -0,0 +1,549 @@
{
"description": "Return structured output from LLM",
"usecases": ["Extraction"],
"nodes": [
{
"id": "startAgentflow_0",
"type": "agentFlow",
"position": {
"x": 64,
"y": 98.5
},
"data": {
"id": "startAgentflow_0",
"label": "Start",
"version": 1.1,
"name": "startAgentflow",
"type": "Start",
"color": "#7EE787",
"hideInput": true,
"baseClasses": ["Start"],
"category": "Agent Flows",
"description": "Starting point of the agentflow",
"inputParams": [
{
"label": "Input Type",
"name": "startInputType",
"type": "options",
"options": [
{
"label": "Chat Input",
"name": "chatInput",
"description": "Start the conversation with chat input"
},
{
"label": "Form Input",
"name": "formInput",
"description": "Start the workflow with form inputs"
}
],
"default": "chatInput",
"id": "startAgentflow_0-input-startInputType-options",
"display": true
},
{
"label": "Form Title",
"name": "formTitle",
"type": "string",
"placeholder": "Please Fill Out The Form",
"show": {
"startInputType": "formInput"
},
"id": "startAgentflow_0-input-formTitle-string",
"display": false
},
{
"label": "Form Description",
"name": "formDescription",
"type": "string",
"placeholder": "Complete all fields below to continue",
"show": {
"startInputType": "formInput"
},
"id": "startAgentflow_0-input-formDescription-string",
"display": false
},
{
"label": "Form Input Types",
"name": "formInputTypes",
"description": "Specify the type of form input",
"type": "array",
"show": {
"startInputType": "formInput"
},
"array": [
{
"label": "Type",
"name": "type",
"type": "options",
"options": [
{
"label": "String",
"name": "string"
},
{
"label": "Number",
"name": "number"
},
{
"label": "Boolean",
"name": "boolean"
},
{
"label": "Options",
"name": "options"
}
],
"default": "string"
},
{
"label": "Label",
"name": "label",
"type": "string",
"placeholder": "Label for the input"
},
{
"label": "Variable Name",
"name": "name",
"type": "string",
"placeholder": "Variable name for the input (must be camel case)",
"description": "Variable name must be camel case. For example: firstName, lastName, etc."
},
{
"label": "Add Options",
"name": "addOptions",
"type": "array",
"show": {
"formInputTypes[$index].type": "options"
},
"array": [
{
"label": "Option",
"name": "option",
"type": "string"
}
]
}
],
"id": "startAgentflow_0-input-formInputTypes-array",
"display": false
},
{
"label": "Ephemeral Memory",
"name": "startEphemeralMemory",
"type": "boolean",
"description": "Start fresh for every execution without past chat history",
"optional": true,
"id": "startAgentflow_0-input-startEphemeralMemory-boolean",
"display": true
},
{
"label": "Flow State",
"name": "startState",
"description": "Runtime state during the execution of the workflow",
"type": "array",
"optional": true,
"array": [
{
"label": "Key",
"name": "key",
"type": "string",
"placeholder": "Foo"
},
{
"label": "Value",
"name": "value",
"type": "string",
"placeholder": "Bar",
"optional": true
}
],
"id": "startAgentflow_0-input-startState-array",
"display": true
},
{
"label": "Persist State",
"name": "startPersistState",
"type": "boolean",
"description": "Persist the state in the same session",
"optional": true,
"id": "startAgentflow_0-input-startPersistState-boolean",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"startInputType": "chatInput",
"formTitle": "",
"formDescription": "",
"formInputTypes": "",
"startEphemeralMemory": "",
"startState": "",
"startPersistState": ""
},
"outputAnchors": [
{
"id": "startAgentflow_0-output-startAgentflow",
"label": "Start",
"name": "startAgentflow"
}
],
"outputs": {},
"selected": false
},
"width": 103,
"height": 66,
"positionAbsolute": {
"x": 64,
"y": 98.5
},
"selected": false,
"dragging": false
},
{
"id": "llmAgentflow_0",
"position": {
"x": 234.5,
"y": 95.75
},
"data": {
"id": "llmAgentflow_0",
"label": "Strutured Output",
"version": 1,
"name": "llmAgentflow",
"type": "LLM",
"color": "#64B5F6",
"baseClasses": ["LLM"],
"category": "Agent Flows",
"description": "Large language models to analyze user-provided inputs and generate responses",
"inputParams": [
{
"label": "Model",
"name": "llmModel",
"type": "asyncOptions",
"loadMethod": "listModels",
"loadConfig": true,
"id": "llmAgentflow_0-input-llmModel-asyncOptions",
"display": true
},
{
"label": "Messages",
"name": "llmMessages",
"type": "array",
"optional": true,
"acceptVariable": true,
"array": [
{
"label": "Role",
"name": "role",
"type": "options",
"options": [
{
"label": "System",
"name": "system"
},
{
"label": "Assistant",
"name": "assistant"
},
{
"label": "Developer",
"name": "developer"
},
{
"label": "User",
"name": "user"
}
]
},
{
"label": "Content",
"name": "content",
"type": "string",
"acceptVariable": true,
"generateInstruction": true,
"rows": 4
}
],
"id": "llmAgentflow_0-input-llmMessages-array",
"display": true
},
{
"label": "Enable Memory",
"name": "llmEnableMemory",
"type": "boolean",
"description": "Enable memory for the conversation thread",
"default": true,
"optional": true,
"id": "llmAgentflow_0-input-llmEnableMemory-boolean",
"display": true
},
{
"label": "Memory Type",
"name": "llmMemoryType",
"type": "options",
"options": [
{
"label": "All Messages",
"name": "allMessages",
"description": "Retrieve all messages from the conversation"
},
{
"label": "Window Size",
"name": "windowSize",
"description": "Uses a fixed window size to surface the last N messages"
},
{
"label": "Conversation Summary",
"name": "conversationSummary",
"description": "Summarizes the whole conversation"
},
{
"label": "Conversation Summary Buffer",
"name": "conversationSummaryBuffer",
"description": "Summarize conversations once token limit is reached. Default to 2000"
}
],
"optional": true,
"default": "allMessages",
"show": {
"llmEnableMemory": true
},
"id": "llmAgentflow_0-input-llmMemoryType-options",
"display": false
},
{
"label": "Window Size",
"name": "llmMemoryWindowSize",
"type": "number",
"default": "20",
"description": "Uses a fixed window size to surface the last N messages",
"show": {
"llmMemoryType": "windowSize"
},
"id": "llmAgentflow_0-input-llmMemoryWindowSize-number",
"display": false
},
{
"label": "Max Token Limit",
"name": "llmMemoryMaxTokenLimit",
"type": "number",
"default": "2000",
"description": "Summarize conversations once token limit is reached. Default to 2000",
"show": {
"llmMemoryType": "conversationSummaryBuffer"
},
"id": "llmAgentflow_0-input-llmMemoryMaxTokenLimit-number",
"display": false
},
{
"label": "Input Message",
"name": "llmUserMessage",
"type": "string",
"description": "Add an input message as user message at the end of the conversation",
"rows": 4,
"optional": true,
"acceptVariable": true,
"show": {
"llmEnableMemory": true
},
"id": "llmAgentflow_0-input-llmUserMessage-string",
"display": false
},
{
"label": "Return Response As",
"name": "llmReturnResponseAs",
"type": "options",
"options": [
{
"label": "User Message",
"name": "userMessage"
},
{
"label": "Assistant Message",
"name": "assistantMessage"
}
],
"default": "userMessage",
"id": "llmAgentflow_0-input-llmReturnResponseAs-options",
"display": true
},
{
"label": "JSON Structured Output",
"name": "llmStructuredOutput",
"description": "Instruct the LLM to give output in a JSON structured schema",
"type": "array",
"optional": true,
"acceptVariable": true,
"array": [
{
"label": "Key",
"name": "key",
"type": "string"
},
{
"label": "Type",
"name": "type",
"type": "options",
"options": [
{
"label": "String",
"name": "string"
},
{
"label": "String Array",
"name": "stringArray"
},
{
"label": "Number",
"name": "number"
},
{
"label": "Boolean",
"name": "boolean"
},
{
"label": "Enum",
"name": "enum"
},
{
"label": "JSON Array",
"name": "jsonArray"
}
]
},
{
"label": "Enum Values",
"name": "enumValues",
"type": "string",
"placeholder": "value1, value2, value3",
"description": "Enum values. Separated by comma",
"optional": true,
"show": {
"llmStructuredOutput[$index].type": "enum"
}
},
{
"label": "JSON Schema",
"name": "jsonSchema",
"type": "code",
"placeholder": "{\n \"answer\": {\n \"type\": \"string\",\n \"description\": \"Value of the answer\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"description\": \"Reason for the answer\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"count\": {\n \"type\": \"number\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Value of the children's answer\"\n }\n }\n }\n }\n}",
"description": "JSON schema for the structured output",
"optional": true,
"show": {
"llmStructuredOutput[$index].type": "jsonArray"
}
},
{
"label": "Description",
"name": "description",
"type": "string",
"placeholder": "Description of the key"
}
],
"id": "llmAgentflow_0-input-llmStructuredOutput-array",
"display": true
},
{
"label": "Update Flow State",
"name": "llmUpdateState",
"description": "Update runtime state during the execution of the workflow",
"type": "array",
"optional": true,
"acceptVariable": true,
"array": [
{
"label": "Key",
"name": "key",
"type": "asyncOptions",
"loadMethod": "listRuntimeStateKeys",
"freeSolo": true
},
{
"label": "Value",
"name": "value",
"type": "string",
"acceptVariable": true,
"acceptNodeOutputAsVariable": true
}
],
"id": "llmAgentflow_0-input-llmUpdateState-array",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"llmModel": "chatAnthropic",
"llmMessages": [
{
"role": "system",
"content": "<p>Given user query, return result only in JSON format, without exception.</p><p>When asked to self-correct, output only the corrected JSON and no other text.</p>"
},
{
"role": "user",
"content": "<p><span class=\"variable\" data-type=\"mention\" data-id=\"question\" data-label=\"question\">{{ question }}</span> </p>"
}
],
"llmEnableMemory": false,
"llmReturnResponseAs": "userMessage",
"llmStructuredOutput": [
{
"key": "output",
"type": "jsonArray",
"enumValues": "",
"jsonSchema": "{\n \"answer\": {\n \"type\": \"string\",\n \"description\": \"Value of the answer\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"description\": \"Reason for the answer\"\n }\n}",
"description": "answer and its reason to the question"
}
],
"llmUpdateState": "",
"llmModelConfig": {
"credential": "",
"modelName": "claude-sonnet-4-0",
"temperature": 0.9,
"streaming": true,
"maxTokensToSample": "",
"topP": "",
"topK": "",
"extendedThinking": "",
"budgetTokens": 1024,
"allowImageUploads": "",
"llmModel": "chatAnthropic"
}
},
"outputAnchors": [
{
"id": "llmAgentflow_0-output-llmAgentflow",
"label": "LLM",
"name": "llmAgentflow"
}
],
"outputs": {},
"selected": false
},
"type": "agentFlow",
"width": 213,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": 234.5,
"y": 95.75
},
"dragging": false
}
],
"edges": [
{
"source": "startAgentflow_0",
"sourceHandle": "startAgentflow_0-output-startAgentflow",
"target": "llmAgentflow_0",
"targetHandle": "llmAgentflow_0",
"data": {
"sourceColor": "#7EE787",
"targetColor": "#64B5F6",
"isHumanInput": false
},
"type": "agentFlow",
"id": "startAgentflow_0-startAgentflow_0-output-startAgentflow-llmAgentflow_0-llmAgentflow_0"
}
]
}
@@ -6,8 +6,8 @@
"id": "startAgentflow_0",
"type": "agentFlow",
"position": {
"x": -234.25083179589828,
"y": 89.8928676312403
"x": -198.4357561998925,
"y": 90.62378754136287
},
"data": {
"id": "startAgentflow_0",
@@ -195,12 +195,12 @@
"outputs": {},
"selected": false
},
"width": 101,
"height": 65,
"width": 103,
"height": 66,
"selected": false,
"positionAbsolute": {
"x": -234.25083179589828,
"y": 89.8928676312403
"x": -198.4357561998925,
"y": 90.62378754136287
},
"dragging": false
},
@@ -483,7 +483,7 @@
"selected": false
},
"type": "agentFlow",
"width": 184,
"width": 194,
"height": 100,
"selected": false,
"positionAbsolute": {
@@ -787,11 +787,11 @@
],
"inputAnchors": [],
"inputs": {
"agentModel": "azureChatOpenAI",
"agentModel": "chatOpenAI",
"agentMessages": [
{
"role": "system",
"content": "<p>As a Senior Software Engineer, you are a pivotal part of our innovative development team. Your expertise and leadership drive the creation of robust, scalable software solutions that meet the needs of our diverse clientele. By applying best practices in software development, you ensure that our products are reliable, efficient, and maintainable.</p><p>Your goal is to lead the development of high-quality software solutions.</p><p>Utilize your deep technical knowledge and experience to architect, design, and implement software systems that address complex problems. Collaborate closely with other engineers, reviewers to ensure that the solutions you develop align with business objectives and user needs.</p><p>Design and implement new feature for the given task, ensuring it integrates seamlessly with existing systems and meets performance requirements. Use your understanding of {technology} to build this feature. Make sure to adhere to our coding standards and follow best practices.</p><p>The output should be a fully functional, well-documented feature that enhances our product's capabilities. Include detailed comments in the code. Pass the code to Quality Assurance Engineer for review if neccessary. Once ther review is good enough, produce a finalized version of the code.</p>"
"content": "<p>As a Senior Software Engineer, you are a pivotal part of our innovative development team. Your expertise and leadership drive the creation of robust, scalable software solutions that meet the needs of our diverse clientele. By applying best practices in software development, you ensure that our products are reliable, efficient, and maintainable.</p><p>Your goal is to lead the development of high-quality software solutions.</p><p>Utilize your deep technical knowledge and experience to architect, design, and implement software systems that address complex problems. Collaborate closely with other engineers, reviewers to ensure that the solutions you develop align with business objectives and user needs.</p><p>Design and implement new feature for the given task, ensuring it integrates seamlessly with existing systems and meets performance requirements. Use your understanding of React, Tailwindcss, NodeJS to build this feature. Make sure to adhere to our coding standards and follow best practices.</p><p>The output should be a fully functional, well-documented feature that enhances our product's capabilities. Include detailed comments in the code.</p>"
}
],
"agentTools": "",
@@ -803,20 +803,23 @@
"agentUpdateState": "",
"agentModelConfig": {
"credential": "",
"modelName": "gpt-4.1",
"modelName": "gpt-4o-mini",
"temperature": 0.9,
"maxTokens": "",
"streaming": true,
"maxTokens": "",
"topP": "",
"frequencyPenalty": "",
"presencePenalty": "",
"timeout": "",
"strictToolCalling": "",
"stopSequence": "",
"basepath": "",
"proxyUrl": "",
"baseOptions": "",
"allowImageUploads": "",
"imageResolution": "low",
"reasoningEffort": "medium",
"agentModel": "azureChatOpenAI"
"agentModel": "chatOpenAI"
}
},
"outputAnchors": [
@@ -830,8 +833,8 @@
"selected": false
},
"type": "agentFlow",
"width": 183,
"height": 71,
"width": 191,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": 352.5679347768288,
@@ -842,8 +845,8 @@
{
"id": "agentAgentflow_2",
"position": {
"x": 358.5981605238689,
"y": 87.38558154725587
"x": 359.32908043399146,
"y": 88.11650145737843
},
"data": {
"id": "agentAgentflow_2",
@@ -1134,11 +1137,11 @@
],
"inputAnchors": [],
"inputs": {
"agentModel": "chatDeepseek",
"agentModel": "chatOpenAI",
"agentMessages": [
{
"role": "system",
"content": "<p>As a Quality Assurance Engineer, you are an integral part of our development team, ensuring that our software products are of the highest quality. Your meticulous attention to detail and expertise in testing methodologies are crucial in identifying defects and ensuring that our code meets the highest standards.</p><p>Your goal is to ensure the delivery of high-quality software through thorough code review and testing.</p><p>Review the codebase for the new feature designed and implemented by the Senior Software Engineer. Your expertise goes beyond mere code inspection; you are adept at ensuring that developments not only function as intended but also adhere to the team's coding standards, enhance maintainability, and seamlessly integrate with existing systems.</p><p>With a deep appreciation for collaborative development, you provide constructive feedback, guiding contributors towards best practices and fostering a culture of continuous improvement. Your meticulous approach to reviewing code, coupled with your ability to foresee potential issues and recommend proactive solutions, ensures the delivery of high-quality software that is robust, scalable, and aligned with the team's strategic goals.</p><p>Always pass back the review and feedback to Senior Software Engineer.</p>"
"content": "<p>As a Quality Assurance Engineer, you are an integral part of our development team, ensuring that our software products are of the highest quality. Your meticulous attention to detail and expertise in testing methodologies are crucial in identifying defects and ensuring that our code meets the highest standards.</p><p>Your goal is to ensure the delivery of high-quality software through thorough code review and testing.</p><p>Review the codebase for the new feature designed and implemented by the Senior Software Engineer. Your expertise goes beyond mere code inspection; you are adept at ensuring that developments not only function as intended but also adhere to the team's coding standards, enhance maintainability, and seamlessly integrate with existing systems.</p><p>With a deep appreciation for collaborative development, you provide constructive feedback, guiding contributors towards best practices and fostering a culture of continuous improvement. Your meticulous approach to reviewing code, coupled with your ability to foresee potential issues and recommend proactive solutions, ensures the delivery of high-quality software that is robust, scalable, and aligned with the team's strategic goals.</p>"
}
],
"agentTools": "",
@@ -1150,17 +1153,23 @@
"agentUpdateState": "",
"agentModelConfig": {
"credential": "",
"modelName": "deepseek-reasoner",
"temperature": 0.7,
"modelName": "gpt-4o-mini",
"temperature": 0.9,
"streaming": true,
"maxTokens": "",
"topP": "",
"frequencyPenalty": "",
"presencePenalty": "",
"timeout": "",
"strictToolCalling": "",
"stopSequence": "",
"basepath": "",
"proxyUrl": "",
"baseOptions": "",
"agentModel": "chatDeepseek"
"allowImageUploads": "",
"imageResolution": "low",
"reasoningEffort": "medium",
"agentModel": "chatOpenAI"
}
},
"outputAnchors": [
@@ -1174,12 +1183,12 @@
"selected": false
},
"type": "agentFlow",
"width": 206,
"height": 71,
"width": 175,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": 358.5981605238689,
"y": 87.38558154725587
"x": 359.32908043399146,
"y": 88.11650145737843
},
"dragging": false
},
@@ -1478,27 +1487,29 @@
],
"inputAnchors": [],
"inputs": {
"agentModel": "chatAnthropic",
"agentModel": "chatGoogleGenerativeAI",
"agentMessages": "",
"agentTools": "",
"agentKnowledgeDocumentStores": "",
"agentEnableMemory": true,
"agentMemoryType": "allMessages",
"agentUserMessage": "<p>Given the above conversations, generate a detail solution developed by the software engineer and code reviewer. Include full code, improvements and review.</p>",
"agentUserMessage": "<p>Given the above conversations, generate a detail solution developed by the software engineer and code reviewer. </p><p>Your guiding principles:</p><ol><li><p><strong>Preserve Full Context</strong><br>Include all code implementations, improvements and review from the conversation. Do not omit, summarize, or oversimplify key information.</p></li><li><p><strong>Markdown Output Only</strong><br>Your final output must be in Markdown format.</p></li></ol>",
"agentReturnResponseAs": "userMessage",
"agentUpdateState": "",
"agentModelConfig": {
"credential": "",
"modelName": "claude-3-7-sonnet-latest",
"modelName": "gemini-2.5-flash-preview-05-20",
"customModelName": "",
"temperature": 0.9,
"streaming": true,
"maxTokensToSample": "",
"maxOutputTokens": "",
"topP": "",
"topK": "",
"extendedThinking": "",
"budgetTokens": 1024,
"harmCategory": "",
"harmBlockThreshold": "",
"baseUrl": "",
"allowImageUploads": "",
"agentModel": "chatAnthropic"
"agentModel": "chatGoogleGenerativeAI"
}
},
"outputAnchors": [
@@ -1512,8 +1523,8 @@
"selected": false
},
"type": "agentFlow",
"width": 231,
"height": 71,
"width": 283,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": 357.60470406099364,
@@ -1524,8 +1535,8 @@
{
"id": "loopAgentflow_0",
"position": {
"x": 574.050701666824,
"y": -20.0960840521807
"x": 572.5888618465789,
"y": -20.827003962303266
},
"data": {
"id": "loopAgentflow_0",
@@ -1567,20 +1578,20 @@
"selected": false
},
"type": "agentFlow",
"width": 186,
"height": 65,
"width": 195,
"height": 66,
"selected": false,
"dragging": false,
"positionAbsolute": {
"x": 574.050701666824,
"y": -20.0960840521807
"x": 572.5888618465789,
"y": -20.827003962303266
}
},
{
"id": "loopAgentflow_1",
"position": {
"x": 600.379151793432,
"y": 90.25732743474846
"x": 566.7568359277939,
"y": 90.98824734487103
},
"data": {
"id": "loopAgentflow_1",
@@ -1622,20 +1633,20 @@
"selected": false
},
"type": "agentFlow",
"width": 186,
"height": 65,
"width": 195,
"height": 66,
"selected": false,
"dragging": false,
"positionAbsolute": {
"x": 600.379151793432,
"y": 90.25732743474846
"x": 566.7568359277939,
"y": 90.98824734487103
}
},
{
"id": "llmAgentflow_0",
"position": {
"x": -78.28788541792727,
"y": 87.1528514813091
"x": -60.01488766486309,
"y": 87.88377139143167
},
"data": {
"id": "llmAgentflow_0",
@@ -1950,7 +1961,7 @@
],
"llmModelConfig": {
"cache": "",
"modelName": "gpt-4o-mini",
"modelName": "gpt-4.1",
"temperature": 0.9,
"streaming": true,
"maxTokens": "",
@@ -1964,7 +1975,6 @@
"proxyUrl": "",
"baseOptions": "",
"allowImageUploads": "",
"imageResolution": "low",
"reasoningEffort": "medium",
"llmModel": "chatOpenAI"
}
@@ -1980,12 +1990,12 @@
"selected": false
},
"type": "agentFlow",
"width": 168,
"height": 71,
"width": 148,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": -78.28788541792727,
"y": 87.1528514813091
"x": -60.01488766486309,
"y": 87.88377139143167
},
"dragging": false
}
@@ -0,0 +1,544 @@
{
"description": "Translate text from one language to another",
"usecases": ["Basic"],
"nodes": [
{
"id": "startAgentflow_0",
"type": "agentFlow",
"position": {
"x": 64,
"y": 98.5
},
"data": {
"id": "startAgentflow_0",
"label": "Start",
"version": 1.1,
"name": "startAgentflow",
"type": "Start",
"color": "#7EE787",
"hideInput": true,
"baseClasses": ["Start"],
"category": "Agent Flows",
"description": "Starting point of the agentflow",
"inputParams": [
{
"label": "Input Type",
"name": "startInputType",
"type": "options",
"options": [
{
"label": "Chat Input",
"name": "chatInput",
"description": "Start the conversation with chat input"
},
{
"label": "Form Input",
"name": "formInput",
"description": "Start the workflow with form inputs"
}
],
"default": "chatInput",
"id": "startAgentflow_0-input-startInputType-options",
"display": true
},
{
"label": "Form Title",
"name": "formTitle",
"type": "string",
"placeholder": "Please Fill Out The Form",
"show": {
"startInputType": "formInput"
},
"id": "startAgentflow_0-input-formTitle-string",
"display": false
},
{
"label": "Form Description",
"name": "formDescription",
"type": "string",
"placeholder": "Complete all fields below to continue",
"show": {
"startInputType": "formInput"
},
"id": "startAgentflow_0-input-formDescription-string",
"display": false
},
{
"label": "Form Input Types",
"name": "formInputTypes",
"description": "Specify the type of form input",
"type": "array",
"show": {
"startInputType": "formInput"
},
"array": [
{
"label": "Type",
"name": "type",
"type": "options",
"options": [
{
"label": "String",
"name": "string"
},
{
"label": "Number",
"name": "number"
},
{
"label": "Boolean",
"name": "boolean"
},
{
"label": "Options",
"name": "options"
}
],
"default": "string"
},
{
"label": "Label",
"name": "label",
"type": "string",
"placeholder": "Label for the input"
},
{
"label": "Variable Name",
"name": "name",
"type": "string",
"placeholder": "Variable name for the input (must be camel case)",
"description": "Variable name must be camel case. For example: firstName, lastName, etc."
},
{
"label": "Add Options",
"name": "addOptions",
"type": "array",
"show": {
"formInputTypes[$index].type": "options"
},
"array": [
{
"label": "Option",
"name": "option",
"type": "string"
}
]
}
],
"id": "startAgentflow_0-input-formInputTypes-array",
"display": false
},
{
"label": "Ephemeral Memory",
"name": "startEphemeralMemory",
"type": "boolean",
"description": "Start fresh for every execution without past chat history",
"optional": true,
"id": "startAgentflow_0-input-startEphemeralMemory-boolean",
"display": true
},
{
"label": "Flow State",
"name": "startState",
"description": "Runtime state during the execution of the workflow",
"type": "array",
"optional": true,
"array": [
{
"label": "Key",
"name": "key",
"type": "string",
"placeholder": "Foo"
},
{
"label": "Value",
"name": "value",
"type": "string",
"placeholder": "Bar",
"optional": true
}
],
"id": "startAgentflow_0-input-startState-array",
"display": true
},
{
"label": "Persist State",
"name": "startPersistState",
"type": "boolean",
"description": "Persist the state in the same session",
"optional": true,
"id": "startAgentflow_0-input-startPersistState-boolean",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"startInputType": "chatInput",
"formTitle": "",
"formDescription": "",
"formInputTypes": "",
"startEphemeralMemory": "",
"startState": "",
"startPersistState": ""
},
"outputAnchors": [
{
"id": "startAgentflow_0-output-startAgentflow",
"label": "Start",
"name": "startAgentflow"
}
],
"outputs": {},
"selected": false
},
"width": 103,
"height": 66,
"positionAbsolute": {
"x": 64,
"y": 98.5
},
"selected": false,
"dragging": false
},
{
"id": "llmAgentflow_0",
"position": {
"x": 234.5,
"y": 96.25
},
"data": {
"id": "llmAgentflow_0",
"label": "Translator",
"version": 1,
"name": "llmAgentflow",
"type": "LLM",
"color": "#64B5F6",
"baseClasses": ["LLM"],
"category": "Agent Flows",
"description": "Large language models to analyze user-provided inputs and generate responses",
"inputParams": [
{
"label": "Model",
"name": "llmModel",
"type": "asyncOptions",
"loadMethod": "listModels",
"loadConfig": true,
"id": "llmAgentflow_0-input-llmModel-asyncOptions",
"display": true
},
{
"label": "Messages",
"name": "llmMessages",
"type": "array",
"optional": true,
"acceptVariable": true,
"array": [
{
"label": "Role",
"name": "role",
"type": "options",
"options": [
{
"label": "System",
"name": "system"
},
{
"label": "Assistant",
"name": "assistant"
},
{
"label": "Developer",
"name": "developer"
},
{
"label": "User",
"name": "user"
}
]
},
{
"label": "Content",
"name": "content",
"type": "string",
"acceptVariable": true,
"generateInstruction": true,
"rows": 4
}
],
"id": "llmAgentflow_0-input-llmMessages-array",
"display": true
},
{
"label": "Enable Memory",
"name": "llmEnableMemory",
"type": "boolean",
"description": "Enable memory for the conversation thread",
"default": true,
"optional": true,
"id": "llmAgentflow_0-input-llmEnableMemory-boolean",
"display": true
},
{
"label": "Memory Type",
"name": "llmMemoryType",
"type": "options",
"options": [
{
"label": "All Messages",
"name": "allMessages",
"description": "Retrieve all messages from the conversation"
},
{
"label": "Window Size",
"name": "windowSize",
"description": "Uses a fixed window size to surface the last N messages"
},
{
"label": "Conversation Summary",
"name": "conversationSummary",
"description": "Summarizes the whole conversation"
},
{
"label": "Conversation Summary Buffer",
"name": "conversationSummaryBuffer",
"description": "Summarize conversations once token limit is reached. Default to 2000"
}
],
"optional": true,
"default": "allMessages",
"show": {
"llmEnableMemory": true
},
"id": "llmAgentflow_0-input-llmMemoryType-options",
"display": false
},
{
"label": "Window Size",
"name": "llmMemoryWindowSize",
"type": "number",
"default": "20",
"description": "Uses a fixed window size to surface the last N messages",
"show": {
"llmMemoryType": "windowSize"
},
"id": "llmAgentflow_0-input-llmMemoryWindowSize-number",
"display": false
},
{
"label": "Max Token Limit",
"name": "llmMemoryMaxTokenLimit",
"type": "number",
"default": "2000",
"description": "Summarize conversations once token limit is reached. Default to 2000",
"show": {
"llmMemoryType": "conversationSummaryBuffer"
},
"id": "llmAgentflow_0-input-llmMemoryMaxTokenLimit-number",
"display": false
},
{
"label": "Input Message",
"name": "llmUserMessage",
"type": "string",
"description": "Add an input message as user message at the end of the conversation",
"rows": 4,
"optional": true,
"acceptVariable": true,
"show": {
"llmEnableMemory": true
},
"id": "llmAgentflow_0-input-llmUserMessage-string",
"display": false
},
{
"label": "Return Response As",
"name": "llmReturnResponseAs",
"type": "options",
"options": [
{
"label": "User Message",
"name": "userMessage"
},
{
"label": "Assistant Message",
"name": "assistantMessage"
}
],
"default": "userMessage",
"id": "llmAgentflow_0-input-llmReturnResponseAs-options",
"display": true
},
{
"label": "JSON Structured Output",
"name": "llmStructuredOutput",
"description": "Instruct the LLM to give output in a JSON structured schema",
"type": "array",
"optional": true,
"acceptVariable": true,
"array": [
{
"label": "Key",
"name": "key",
"type": "string"
},
{
"label": "Type",
"name": "type",
"type": "options",
"options": [
{
"label": "String",
"name": "string"
},
{
"label": "String Array",
"name": "stringArray"
},
{
"label": "Number",
"name": "number"
},
{
"label": "Boolean",
"name": "boolean"
},
{
"label": "Enum",
"name": "enum"
},
{
"label": "JSON Array",
"name": "jsonArray"
}
]
},
{
"label": "Enum Values",
"name": "enumValues",
"type": "string",
"placeholder": "value1, value2, value3",
"description": "Enum values. Separated by comma",
"optional": true,
"show": {
"llmStructuredOutput[$index].type": "enum"
}
},
{
"label": "JSON Schema",
"name": "jsonSchema",
"type": "code",
"placeholder": "{\n \"answer\": {\n \"type\": \"string\",\n \"description\": \"Value of the answer\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"description\": \"Reason for the answer\"\n },\n \"optional\": {\n \"type\": \"boolean\"\n },\n \"count\": {\n \"type\": \"number\"\n },\n \"children\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Value of the children's answer\"\n }\n }\n }\n }\n}",
"description": "JSON schema for the structured output",
"optional": true,
"show": {
"llmStructuredOutput[$index].type": "jsonArray"
}
},
{
"label": "Description",
"name": "description",
"type": "string",
"placeholder": "Description of the key"
}
],
"id": "llmAgentflow_0-input-llmStructuredOutput-array",
"display": true
},
{
"label": "Update Flow State",
"name": "llmUpdateState",
"description": "Update runtime state during the execution of the workflow",
"type": "array",
"optional": true,
"acceptVariable": true,
"array": [
{
"label": "Key",
"name": "key",
"type": "asyncOptions",
"loadMethod": "listRuntimeStateKeys",
"freeSolo": true
},
{
"label": "Value",
"name": "value",
"type": "string",
"acceptVariable": true,
"acceptNodeOutputAsVariable": true
}
],
"id": "llmAgentflow_0-input-llmUpdateState-array",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"llmModel": "chatGoogleGenerativeAI",
"llmMessages": [
{
"role": "system",
"content": "<p>You are a helpful assistant that translates English to Japanese language. Return only Japanese language</p>"
},
{
"role": "user",
"content": "<p>English:</p><p><span class=\"variable\" data-type=\"mention\" data-id=\"question\" data-label=\"question\">{{ question }}</span> </p><p>Japanese:</p><p></p>"
}
],
"llmEnableMemory": false,
"llmReturnResponseAs": "userMessage",
"llmStructuredOutput": "",
"llmUpdateState": "",
"llmModelConfig": {
"cache": "",
"contextCache": "",
"modelName": "gemini-2.0-flash",
"customModelName": "",
"temperature": 0.9,
"streaming": true,
"maxOutputTokens": "",
"topP": "",
"topK": "",
"harmCategory": "",
"harmBlockThreshold": "",
"baseUrl": "",
"allowImageUploads": "",
"llmModel": "chatGoogleGenerativeAI"
}
},
"outputAnchors": [
{
"id": "llmAgentflow_0-output-llmAgentflow",
"label": "LLM",
"name": "llmAgentflow"
}
],
"outputs": {},
"selected": false
},
"type": "agentFlow",
"width": 200,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": 234.5,
"y": 96.25
},
"dragging": false
}
],
"edges": [
{
"source": "startAgentflow_0",
"sourceHandle": "startAgentflow_0-output-startAgentflow",
"target": "llmAgentflow_0",
"targetHandle": "llmAgentflow_0",
"data": {
"sourceColor": "#7EE787",
"targetColor": "#64B5F6",
"isHumanInput": false
},
"type": "agentFlow",
"id": "startAgentflow_0-startAgentflow_0-output-startAgentflow-llmAgentflow_0-llmAgentflow_0"
}
]
}
@@ -1,5 +1,5 @@
{
"description": "An agent that can post message to Slack channel",
"description": "An agent that can post AI responses to Workplace channels like Slack and Teams",
"usecases": ["Agent"],
"nodes": [
{
@@ -186,8 +186,8 @@
"outputs": {},
"selected": false
},
"width": 101,
"height": 65,
"width": 103,
"height": 66,
"selected": false,
"positionAbsolute": {
"x": -192.5,
@@ -508,8 +508,8 @@
"selected": false
},
"type": "agentFlow",
"width": 168,
"height": 71,
"width": 175,
"height": 72,
"selected": false,
"positionAbsolute": {
"x": -31.25,
@@ -520,12 +520,12 @@
{
"id": "toolAgentflow_0",
"position": {
"x": 182.75,
"y": 64.5
"x": 181.67112630208328,
"y": 28.357731119791666
},
"data": {
"id": "toolAgentflow_0",
"label": "Slack Reply",
"label": "Post to Slack",
"version": 1.1,
"name": "toolAgentflow",
"type": "Tool",
@@ -627,20 +627,20 @@
"selected": false
},
"type": "agentFlow",
"width": 142,
"height": 71,
"width": 156,
"height": 68,
"selected": false,
"positionAbsolute": {
"x": 182.75,
"y": 64.5
"x": 181.67112630208328,
"y": 28.357731119791666
},
"dragging": false
},
{
"id": "directReplyAgentflow_0",
"position": {
"x": 366.75,
"y": 67.5
"x": 373.22324218750003,
"y": 66.96056315104161
},
"data": {
"id": "directReplyAgentflow_0",
@@ -673,12 +673,138 @@
"selected": false
},
"type": "agentFlow",
"width": 194,
"height": 65,
"width": 204,
"height": 66,
"selected": false,
"positionAbsolute": {
"x": 366.75,
"y": 67.5
"x": 373.22324218750003,
"y": 66.96056315104161
},
"dragging": false
},
{
"id": "toolAgentflow_1",
"position": {
"x": 177.461181640625,
"y": 108.73382161458332
},
"data": {
"id": "toolAgentflow_1",
"label": "Post to Teams",
"version": 1.1,
"name": "toolAgentflow",
"type": "Tool",
"color": "#d4a373",
"baseClasses": ["Tool"],
"category": "Agent Flows",
"description": "Tools allow LLM to interact with external systems",
"inputParams": [
{
"label": "Tool",
"name": "toolAgentflowSelectedTool",
"type": "asyncOptions",
"loadMethod": "listTools",
"loadConfig": true,
"id": "toolAgentflow_1-input-toolAgentflowSelectedTool-asyncOptions",
"display": true
},
{
"label": "Tool Input Arguments",
"name": "toolInputArgs",
"type": "array",
"acceptVariable": true,
"refresh": true,
"array": [
{
"label": "Input Argument Name",
"name": "inputArgName",
"type": "asyncOptions",
"loadMethod": "listToolInputArgs",
"refresh": true
},
{
"label": "Input Argument Value",
"name": "inputArgValue",
"type": "string",
"acceptVariable": true
}
],
"show": {
"toolAgentflowSelectedTool": ".+"
},
"id": "toolAgentflow_1-input-toolInputArgs-array",
"display": true
},
{
"label": "Update Flow State",
"name": "toolUpdateState",
"description": "Update runtime state during the execution of the workflow",
"type": "array",
"optional": true,
"acceptVariable": true,
"array": [
{
"label": "Key",
"name": "key",
"type": "asyncOptions",
"loadMethod": "listRuntimeStateKeys",
"freeSolo": true
},
{
"label": "Value",
"name": "value",
"type": "string",
"acceptVariable": true,
"acceptNodeOutputAsVariable": true
}
],
"id": "toolAgentflow_1-input-toolUpdateState-array",
"display": true
}
],
"inputAnchors": [],
"inputs": {
"toolAgentflowSelectedTool": "microsoftTeams",
"toolInputArgs": [
{
"inputArgName": "teamId",
"inputArgValue": "<p>&lt;your-team-id&gt;</p>"
},
{
"inputArgName": "chatChannelId",
"inputArgValue": "<p>&lt;your-channel-id&gt;</p>"
},
{
"inputArgName": "messageBody",
"inputArgValue": "<p><span class=\"variable\" data-type=\"mention\" data-id=\"llmAgentflow_0\" data-label=\"llmAgentflow_0\">{{ llmAgentflow_0 }}</span> </p>"
}
],
"toolUpdateState": "",
"toolAgentflowSelectedToolConfig": {
"credential": "",
"teamsType": "chatMessage",
"chatMessageActions": "[\"sendMessage\"]",
"toolAgentflowSelectedTool": "microsoftTeams",
"chatChannelIdSendMessage": "ABCDEFG"
}
},
"outputAnchors": [
{
"id": "toolAgentflow_1-output-toolAgentflow",
"label": "Tool",
"name": "toolAgentflow"
}
],
"outputs": {},
"selected": false
},
"type": "agentFlow",
"width": 163,
"height": 68,
"selected": false,
"positionAbsolute": {
"x": 177.461181640625,
"y": 108.73382161458332
},
"dragging": false
}
@@ -722,6 +848,32 @@
},
"type": "agentFlow",
"id": "toolAgentflow_0-toolAgentflow_0-output-toolAgentflow-directReplyAgentflow_0-directReplyAgentflow_0"
},
{
"source": "llmAgentflow_0",
"sourceHandle": "llmAgentflow_0-output-llmAgentflow",
"target": "toolAgentflow_1",
"targetHandle": "toolAgentflow_1",
"data": {
"sourceColor": "#64B5F6",
"targetColor": "#d4a373",
"isHumanInput": false
},
"type": "agentFlow",
"id": "llmAgentflow_0-llmAgentflow_0-output-llmAgentflow-toolAgentflow_1-toolAgentflow_1"
},
{
"source": "toolAgentflow_1",
"sourceHandle": "toolAgentflow_1-output-toolAgentflow",
"target": "directReplyAgentflow_0",
"targetHandle": "directReplyAgentflow_0",
"data": {
"sourceColor": "#d4a373",
"targetColor": "#4DDBBB",
"isHumanInput": false
},
"type": "agentFlow",
"id": "toolAgentflow_1-toolAgentflow_1-output-toolAgentflow-directReplyAgentflow_0-directReplyAgentflow_0"
}
]
}