尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Dify 中级实验(06):变量聚合——如何确定性合并多路分支结果?
Dify 中级实验06变量聚合——如何确定性合并多路分支结果Dify 实验系列 · 中级 06/20 | 实验编号DIFY-102-07上篇Dify 中级实验05并行执行——如何让多路任务同时跑1. 实验目的掌握Variable Aggregator变量聚合节点——用确定性方式合并多路分支输出替代上一课的 LLM 合并。理解三种合并心智覆盖后到者赢、深合并对象递归合并、自定义代码节点兜底。适合场景多源数据拼装用户画像、配置合并、日志/结果收集——需要「精确、可预测、不烧 Token」的合并。2. 场景设计并行获取同一个用户的三种数据聚合后生成用户 360 报告分支 A 用户画像user.name/age/levelmetrics.login_count/last_active分支 B 订单数据user.total_orders/avg_order_valuemetrics.return_rate分支 C 客服交互user.ticket_count/satisfactionmetrics.avg_response_time。聚合后同一个user对象里应包含全部字段A/B/C 各自贡献一部分——这正是「深合并」的价值三个分支的数据结构同构、字段互补合并后零丢失。输入user_name可选默认张三输出用户 360 报告身份概览 / 行为画像 / 价值评估 / 服务建议。3. 节点拓扑开始user_name ├─ 用户画像数据Codeobject ├─ 订单数据Codeobject └─ 客服交互数据Codeobject ↓ 聚合多源数据variable-aggregatoroutput_type: string ↓ 生成用户 360 报告LLMmax_tokens 8000→ 结束4. 关键配置4.1 三个数据源分支Code每个分支输出一个 object字段刻意设计成同构互补# 分支 A用户画像defmain(user_name:str)-dict:name(user_nameor张三).strip()or张三return{profile_data:{user:{name:name,age:28,level:VIP},metrics:{login_count:45,last_active:2026-07-21},}}4.2 聚合节点核心聚合器把三个 object 合并成一个output_type: string时输出合并后的 JSON 文本-data:output_type:stringtitle:聚合多源数据type:variable-aggregatorvariables:--cd_profile# 注意variables 是 [[节点id, 字段], ...] 嵌套数组-profile_data--cd_orders-orders_data--cd_service-service_dataid:agg_merge⚠️ aggregator 的variables格式与 LLM 节点不同LLM 是[{value_selector, variable}]对象数组aggregator 是嵌套数组[[节点id, 字段], ...]别搞混。4.3 消费聚合结果的 LLM长报告输出把max_tokens提到 8000prompt 加「直接输出正文」约束DeepSeek 长输出被思考挤空 text 的坑model:completion_params:max_tokens:8000temperature:0.7mode:chatname:deepseek-v4-flashprompt_template:-id:p_reportrole:systemtext:|用户全景数据如下JSON 格式由用户画像/订单/客服交互三路数据源合并而来 {{#agg_merge.output#}} 请生成一份用户 360 报告包括 1. 用户身份概览 2. 行为画像 3. 价值评估 4. 服务建议 直接输出报告正文不要输出任何解释性文字。reasoning_format:separated5. 运行验证检查项预期实测合并后的 user 对象含 name/age/level/total_orders/avg_order_value/ticket_count/satisfaction 全部 7 字段与预期一致合并后的 metrics 对象login_count/last_active/return_rate/avg_response_time 全部保留与预期一致LLM 报告四段式身份概览/行为画像/价值评估/服务建议与预期一致对比实验把聚合策略换成「覆盖」再跑一次——后完成分支会覆盖先完成的同名字段user对象只剩最后一个分支的字段数据丢失。这一对比直观展示「深合并 vs 覆盖」的差异。6. 采坑点坑现象修复同名冲突字段被覆盖并行分支完成顺序不确定「后到者覆盖」不可预测设计阶段约定冲突策略字段互补本实验或代码节点自定义合并加后缀把聚合当数值累加期望 total_orders 相加实际是对象合并合并 ≠ 累加数值统计求和/均值必须走代码节点aggregator 的 variables 格式写错用 LLM 的[{value_selector, variable}]格式校验报错用嵌套数组[[节点id, 字段], ...]长报告输出 text 为空DeepSeek 把内容写进思考/解释部分max_tokens 被挤空max_tokens 提到 8000 prompt 明确「直接输出正文」校验脚本在 aggregator 上崩check_dsls.py 报AttributeError: list object has no attribute get脚本局限已修非 DSL 错误——aggregator 格式以本文为准 选型心法要「精确、可预测」→ variable-aggregator要「理解语义、自由组织」→ LLM 合并。两者不冲突聚合器负责结构JSON 全字段保留LLM 负责叙事把 JSON 讲成人话。7. 实验文档及源码获取实验文档完整操作步骤DIFY-07变量聚合——多路分支结果合并.md源码可直接导入dify102_07_多源数据合并器.yml文章聚焦核心配置与采坑点实验的完整分步操作节点搭建/参数表/调试指引见实验文档原文。下一篇Dify 中级实验07子工作流——如何把公共逻辑做成可复用积木
RELATED

相关推荐

Windows下OpenClaw自动化工具部署与优化指南

Windows下OpenClaw自动化工具部署与优化指南

1. OpenClaw 项目概述 OpenClaw 是一款基于 Node.js 开发的跨平台自动化工具套件,主要用于构建和管理 API 网关服务。在 Windows 环境下部署时,它能够与 PowerShell 深度集成,提供强大的脚本自动化能力。我在实际部署过程中发现,虽…

📅 2026/9/8 15:22:46
如何从课程反馈中提取有效提分信息:四个关键环节解析

如何从课程反馈中提取有效提分信息:四个关键环节解析

这类“考点带背课”的反馈,核心不是看有多少人点赞,而是看它能不能帮你把零散的知识点,真正变成考场上的得分点。很多同学听完课感觉“都懂了”,但一到做题、一到模拟考,还是错,问题就出在“听懂了”和“能…

📅 2026/9/10 23:00:54
ITIL 4实践选择三步走策略:评估、匹配与验证

ITIL 4实践选择三步走策略:评估、匹配与验证

1. ITIL 4实践选择的三步走策略解析ITIL 4作为当前IT服务管理领域最前沿的框架,其34个管理实践让许多企业在落地时面临选择困难。经过多个大型企业项目的实战验证,我总结出一套"评估-匹配-验证"的三步走策略,能帮助企业从茫然状态快…

📅 2026/9/11 5:04:49
MORE NEWS

更多资讯

📰

创业第274天:一个SaaS创业者的日常复盘与决策笔记

2026年1月8日,是我独立创业的第274天。项目是一款叫“店小ai”的SaaS工具,服务本地生活类小商家,帮他们自动回复私信、自动发券、整理顾客评价。这个方向不算性感,但现金流踏实,甲方都是美甲店、理发店、小餐馆的老板&…

📰

创业第413天:砍掉低效功能,聚焦核心路径

2026年1月8日,周四。创业第413天,早上七点零三分醒来,窗外雾霾比昨天淡了一些。半小时后我坐到书桌前,打开电脑,开始一天的工作。今天这篇不打算写什么宏大叙事,就想把创业日常里真实的一天,包括…

📰

MySQL与Oracle精度扩展DDL对比:为何MySQL会卡死而Oracle秒级完成?

先把基调定下来:这是一个纯粹基于实际运维对比的复盘,不涉及“谁比谁先进”的无意义口舌,只记录我在 MySQL 和 Oracle 上执行同一类“精度扩展 DDL”时看到的真实差异,以及它们背后牵动的运维决策。做数据库这行的人都知道&#x…

📰

石油炼化回转窑焚烧系统三维动画案例全解析

1. 项目背景与核心需求拆解 1.1 为什么炼化企业需要给回转窑做三维动画 先把这个项目的来龙去脉说清楚。石油炼化行业的危废处理环节里,回转窑焚烧系统是妥妥的“重装备”——它负责处理油泥、废催化剂、污水处理站浮渣这些危险废物,工作温度动辄上千摄…

📰

PE启动U盘实战指南:Ventoy+微PE双轨制作与多系统救援

1. 为什么现在还要折腾PE启动U盘?——不是过时,而是更刚需了PE启动U盘这东西,很多人第一反应是“老古董”,觉得Windows自带重置、厂商预装恢复分区、甚至云重装都挺方便,何必自己动手?但实话讲,…

📰

STM32 FreeRTOS 多任务调度与资源管理实战:从CubeMX配置到优先级翻转解决全流程(TaoToken 统一 Key 接入版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬