ValueError: tool parameter instruction not found in tool config

该 Issue 发生在自托管(Self Hosted Docker)环境的 Dify 1.0.0 中,用户使用默认代码解析工具(Code Parser Tool),结合 qwen-max 模型,调用策略设置为 FunctionCalling 时触发了该错误。

ValueError: tool parameter instruction not found in tool config

ValueError: tool parameter instruction not found in tool config

快速结论:此报错在 Dify 使用内置代码解析工具(Code Parser Tool)且调用策略为 FunctionCalling 时触发,通常是因为该工具的必填参数未在配置中正确初始化。优先检查 tool 配置中的 languagecode 参数是否已正确填写。

问题场景

该 Issue 发生在自托管(Self Hosted Docker)环境的 Dify 1.0.0 中,用户使用默认代码解析工具(Code Parser Tool),结合 qwen-max 模型,调用策略设置为 FunctionCalling 时触发了该错误。

报错原文

ValueError: tool parameter instruction not found in tool config

原因分析

Dify 的工具系统在初始化前端参数时,调用 init_frontend_parameter 函数,该函数会检查参数值是否已提供。如果某个参数被标记为必需(required)但未在配置中找到有效值,则会抛出此 ValueError

在代码解析工具的场景中,languagecode 都是必需参数。当 FunctionCalling 模式下模型或系统未正确向工具配置提供这些参数时,就会触发该错误。可能原因包括:

  • 工具定义中 required 标记的参数缺失。
  • 在运行时 get_runtime_parameters 方法中未正确定义运行时参数。
  • 参数默认值 rule.default 未设置,且模型未填入对应值。

环境排查

  • Dify 版本:1.0.0
  • 部署方式:Self Hosted(Docker)
  • 模型:qwen-max(FunctionCalling 策略)

解决步骤

以下步骤按 Issue 关联代码和 Dosu 建议的优先顺序排列:

  1. 检查代码解析工具的 YAML 配置:确保 languagecode 参数已明确定义。language 必须指定为 "python3""javascript"code 为要执行的代码内容。参考配置文件路径:api/core/tools/builtin_tool/providers/code/tools/simple_code.yaml
  2. 确认参数初始化逻辑:在 api/core/plugin/entities/parameters.py 中,init_frontend_parameter 会检查参数是否存在。如果参数标记为必需但未被传入,则会抛出 ValueError。建议检查工具的 rule.default 是否已设置一个可用的默认值,以防止模型未传入时参数为空。
  3. 检查运行时参数定义:如果工具自定义了 get_runtime_parameters 方法(例如 VectorizerTool 类示例),确保该方法正确返回了所有必需的运行时参数列表,并且配置与工具定义保持同步。

验证方法

重新触发一次使用代码解析工具的对话或自动化任务,观察是否仍然抛出 ValueError: tool parameter instruction not found in tool config。如果问题解决,工具将正常执行代码并返回结果,不再出现参数缺失的报错。

参考来源

langgenius/dify #15468

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 9618

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注