# 系统变量:需和开始节点拆分 # end: string/number/boolean/object/array[file]/array[object]/array[number]/array[string] - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __is_success / __reason - memory-read: answer / intermediate_outputs - question-classifier: class_name / output - iteration: output - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - jinja-render: output # llm: 不能选 boolean 类型 ## 上下文:string/number/array[file]/array[object]/array[string]/array[number]; 不要object - 系统变量 - 会话变量 - start: variables / sys - llm: output - knowledge-retrieval: output - parameter-extractor: __is_success / __reason - memory-read: answer / intermediate_outputs - question-classifier: class_name - iteration: output - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output ## 提示词: string/number/array[file]/array[number]/array[string]; 不要object,boolean - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __is_success / __reason - memory-read: answer / intermediate_outputs - question-classifier: class_name - iteration: output - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output # knowledge-retrieval: string - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason - memory-read: answer - question-classifier: class_name - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output # parameter-extractor: ## 输入变量: string - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason - memory-read: answer - question-classifier: class_name - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output ## 指令:string/number - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __is_success / __reason - memory-read: answer - question-classifier: class_name - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output # memory-read: string - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason - memory-read: answer - question-classifier: class_name - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output # memory-write: string - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason - memory-read: answer - question-classifier: class_name - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output # if-else: boolean/string/number/array[file]/array[object]/array[string]/object - 系统变量 - 会话变量 - start: variables / sys - llm: output - knowledge-retrieval: output - parameter-extractor: __is_success / __reason - memory-read: answer - question-classifier: class_name - iteration: output - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output # question-classifier ## 输入变量: string - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason - memory-read: answer - question-classifier: class_name - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output ## 分类: string - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason - memory-read: answer - question-classifier: class_name - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output # iteration ## 输入变量: array[file] | array[object] | array[string] | array[number] | array[boolean] - knowledge-retrieval: output - parameter-extractor: array类型的提取参数 params - iteration: output - loop: cycle_vars - code: output_variables ## 输出变量 - 系统变量 - 子节点的输出变量 - llm: output - knowledge-retrieval: output - parameter-extractor: __reason, params - memory-read: answer - memory-write - question-classifier: class_name - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output # loop ## 循环变量 - 系统变量 - 会话变量 - start: variables / sys - llm: output - knowledge-retrieval: output - parameter-extractor: __is_success / __reason / params - memory-read: answer - question-classifier: class_name - iteration: output - loop: cycle_vars - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output ## 循环终止条件 ### left - 系统变量 - 会话变量 - loop: cycle_vars 当前loop节点的 - code: output_variables - 子节点的输出变量 - llm: output - knowledge-retrieval: output - parameter-extractor: __reason - memory-read: answer - memory-write - question-classifier: class_name - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - jinja-render: output ### right: number - 系统变量 - 会话变量 - start: variables / sys - parameter-extractor: __is_success - loop: cycle_vars 当前loop节点的 - http-request: status_code - code: output_variables # var-aggregator: string/number/boolean - 系统变量 - 会话变量 - start: variables / sys - llm: output - knowledge-retrieval: output - parameter-extractor: __reason - memory-read: answer - question-classifier: class_name - iteration: output - loop: cycle_vars 当前loop节点的 - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output # assigner ## variable_selector - 会话变量 - loop: cycle_vars 当前loop节点的 ## value - 会话变量 - start: variables / sys - llm: output - knowledge-retrieval: output - parameter-extractor: __reason / __is_success - memory-read: answer - question-classifier: class_name - iteration: output - loop: cycle_vars 当前loop节点的 - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body - tool: data - code: output_variables - jinja-render: output # http-request ## url/headers/params: string/number - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason / __is_success - memory-read: answer - question-classifier: class_name - loop: cycle_vars 当前loop节点的 - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output ## ['body', 'data'] ### body?.content_type = form-data/x-www-form-urlencoded/json/raw: string/number ### body?.content_type = binary: file/array[file] - 系统变量 - 会话变量 - start: variables / sys - llm: output - parameter-extractor: __reason / __is_success - memory-read: answer - question-classifier: class_name - loop: cycle_vars 当前loop节点的 - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output # tool: 不需要 # jinja-render ## mappingList 输入变量 - 系统变量 - 会话变量 - start: variables / sys - llm: output - knowledge-retrieval: output - parameter-extractor: __reason / __is_success - memory-read: answer - question-classifier: class_name - iteration: output - loop: cycle_vars 当前loop节点的 - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - code: output_variables - jinja-render: output # code ## input_variables - 系统变量 - 会话变量 - start: variables / sys - llm: output - knowledge-retrieval: output - parameter-extractor: __reason / __is_success - memory-read: answer - question-classifier: class_name - iteration: output - loop: cycle_vars 当前loop节点的 - var-aggregator - group = false 时,output - group = true 时,group_variables - http-request: body / status_code - tool: data - jinja-render: output - code: output_variables - code: output_variables # 迭代子节点 - llm - if-else - parameter-extractor && prompt - var-aggregator - assigner - http-request && body.content_type !== 'binary' - tool - jinja-render - iteration: item / index - knowledge-retrieval - parameter-extractor && !prompt - memory-read - memory-write - question-classifier - iteration的输入变量是array[string]时,可选item - iteration - loop - 不可添加此类节点 # 循环子节点 - llm - knowledge-retrieval - parameter-extractor - memory-read - memory-write - if-else - question-classifier - var-aggregator - assigner - http-request - tool - jinja-render - loop: cycle_vars - iteration - loop - 不可添加此类节点 # TODO ## 需要后端支持的需求 1. 集群调试:对话过程数据输出【需后端】 3. 应用调试、分享增加变量配置【需后端】 4. 应用导入导出,导出已完成,导入【需后端】 6. 单个节点的运行【需后端】 7. 列表 节点的配置【需后端】 9. 对话支持附件(非图片)【需后端】 ## 前端需求 1. 工作流整理布局、历史撤销、回退 2. 问题分类节点,分类中英文 3. 感知记忆:文本类型增加片段展示 - variableConfig 4. 工作流UI - 变量聚合器 7. 记忆萃取 - 本体场景不可编辑 - rb:truncate - 注释翻译 - RbCard - src/views/KnowledgeBase/index.tsx - src/components/Upload/UploadFiles.tsx - src/components/Chat # 分支 ## 0.2.6 - feature/workflow_import_zy - 工作流导入 | 导出 - input_type: Constant / Variable 统一成小写 - 结束节点内容被覆写 - 增加未知节点 - http 节点 - 变量下拉列表替换成编辑器 - body form-data file时,值支持选择sys.files - feature/form_zy - 表单校验规则 - 流式输出时,向上滚动后,自动滚动到最底部的效果失效 - 应用 API URL更新 - feature/memory_zy - 记忆萃取增加剪枝 ## 20260212 1. A2A 协议适配 2. 日志跟踪系统 3. Agent、集群、工作流共享 4. 试运行、分享会话支持文件(包含语言、其他附件)【待联调】 2. 导入 Agent、工作流 - 合并到应用管理创建方式 a7da914dcbb80186b9aaf9ac4d21a9881e60ecb5 e115353811b34de2fd359962860fdafe87fef503