Dify: The length of output variable result must be less than 30 elements.

你遇到的错误信息:

Failed to invoke tool 招投标文档-单文件处理: The length of output variable result must be less than 30 elements.

根本原因

这个错误来自 Code 节点(代码执行节点)的输出数组长度验证。当 Workflow 中的 Code 节点(Python/JS 代码)返回了一个超过 30 个元素的数组时,就会被拦截。

验证链路

步骤 位置 说明
配置定义 api/configs/feature/__init__.py:173-183 CODE_MAX_STRING_ARRAY_LENGTH=30, CODE_MAX_OBJECT_ARRAY_LENGTH=30
环境变量默认值 api/.env.example:515-517 同上
读取并传递限制 api/core/workflow/node_factory.py:304-312 构造 CodeNodeLimits 传给 graphon 包
抛出错误 graphon 外部包 (graphon==0.5.3) 的 code_node.py 在 _transform_array_string_output() / _normalize_output_object_array() 中验证,超限则抛出 OutputValidationError

具体原因

招投标文档-单文件处理 工具内部(很可能是一个 Workflow as a Tool 或包含 Code 节点的工作流),其中的 Code 节点 输出变量 result 是一个数组(字符串数组或对象数组),其元素数量 >= 30,触发了验证。

解决方案

有两种方式:

方案一:增大限制(推荐,如果确实需要更多元素)

在 api/.env 或环境变量中设置:

bash 复制代码
CODE_MAX_STRING_ARRAY_LENGTH=100
CODE_MAX_OBJECT_ARRAY_LENGTH=100

方案二:修改 Code 节点的输出逻辑

检查 招投标文档-单文件处理 这个 Workflow 中的 Code 节点,确保其 result 输出的数组元素不超过 30 个,或对输出做分页/分批处理。

注意

  • 这个限制只作用于 Code 代码节点,不是工具节点本身的限制
  • 如果输出是对象数组就用 CODE_MAX_OBJECT_ARRAY_LENGTH,字符串数组就用 CODE_MAX_STRING_ARRAY_LENGTH
  • 数字数组的限制是 1000,一般不会触发
相关推荐
张彦峰ZYF21 小时前
越过边界之前:Reward Seeker 实验如何改写智能体安全的时间逻辑
人工智能·ai agent·anthropic·智能体安全·reward seeker·“控制评价过程”泛化跨领域策略·envbom
拓恒技术1 天前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
罗西的思考1 天前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
字节跳动视频云技术团队1 天前
720P 直升 8K,解密 2026 抖音美好奇妙夜巨幕超分黑科技
人工智能·音视频开发
打工仔折腾 AI1 天前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
逐米时代1 天前
从试点验证到协同深化:制造业AI转型三年路线图设计方法
人工智能
GlobalInfo1 天前
全球及中国风电叶片检测机器人行业研究报告(2026版):市场现状、行业前景与占有率分析
运维·网络·人工智能·机器人
stormzhangV1 天前
AI 越强,失业越严重
人工智能·aigc
夏文强1 天前
Rerank 与混合检索:怎么让 RAG 从「能用」变成「好用」
人工智能·大模型·向量数据库·rag·检索增强生成
救救孩子把1 天前
AI面试八股文-23_23-Agent可观测性与生产监控面试题
人工智能·面试·职场和发展·agent·langsmith·langfuase