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,一般不会触发
相关推荐
火山引擎开发者社区1 小时前
企业级 Agent 开发实战:从 Identity 开始进入生产环境
人工智能
IvorySQL1 小时前
深度拆解 IvorySQL 去 O 核心解决方案
数据库·人工智能·postgresql
般若-波罗蜜2 小时前
MinerU高级用法,避坑指南(持续更新)
人工智能·python·语言模型·自然语言处理
安卓修改大师2 小时前
安卓修改大师 vs MT管理器:反编译工具终极对决与全景解析
android·人工智能·机器翻译
A15362552 小时前
国内好用的WMS仓储管理系统有哪些?万里牛WMS深度评测
大数据·数据库·人工智能
杀生丸学AI2 小时前
【三维重建】ArtiFixer:自回归扩散增强与扩展3DGS(NVIDIA)
人工智能·3d·数据挖掘·aigc·三维重建·扩散模型·视觉大模型
爱勇宝2 小时前
DeepSeek实习生日薪5500:真正恐怖的不是工资
人工智能·深度学习·面试
ShareCreators2 小时前
在华企业如何填补AI人才缺口数据基建:Share Creators 如何以 AI 驱动的数字资产管理重塑工业研发效能从人
人工智能·汽车·blueberry
中微极客2 小时前
LangChain vs LlamaIndex:RAG框架选型深度对比
人工智能·langchain