
Microsoft SQL tool node generates schema with type: “None” when used with $fromAI() inside AI Agent
快速结论:该报错发生在 AI Agent 中使用 Microsoft SQL 节点作为 Tool,且 Query 字段通过 $fromAI() 动态生成参数时。优先排查 $fromAI() 的参数生成 JSON Schema 是否正确,或者尝试将 SQL 节点放入子工作流并通过 Call n8n Workflow Tool 调用(但经测试该方案同样失败,说明问题不在 MS SQL 节点本身)。
问题场景
用户使用 n8n 2.20.6,在 AI Agent 节点中连接 Microsoft SQL 节点作为 Tool,配置 Execution Query 操作,Query 字段使用 $fromAI('sqlQuery', 'The SQL query to execute', 'string') 让 AI 模型动态生成 SQL 查询。LLM 提供商为 Azure OpenAI Chat Model。每次工具调用均失败,返回 Bad request 错误。
报错原文
Problem in node 'EXPERTO SQL': Bad request - please check your parameters.
Invalid schema for function 'Microsoft_SQL': schema must be a JSON Schema of 'type: "object"', got 'type: "None".
原因分析
可能原因:在 AI Agent 的 Tool schema 生成过程中,$fromAI() 函数未被正确解析,导致生成的 JSON Schema 中 type 字段为 "None" 而非预期的 "object"。该问题不限于 Microsoft SQL 节点——测试表明使用 Call n8n Workflow Tool 将子工作流暴露为 Tool 时,同样产生 type: "None" 的错误,说明 bug 位于任何使用 $fromAI() 的 Tool 节点的 schema 生成层。此外,该问题仅在 Azure OpenAI Chat Model 下被触发,可能是因为 Azure 对函数 schema 的校验比标准 OpenAI 更严格。
环境排查
- n8n 版本:2.20.6(重现版本)
- 数据库:SQLite(默认)
- 执行模式:main(默认)
- Node.js 版本:22.16.0
- LLM 提供商:Azure OpenAI Chat Model(确认问题)
- 受影响节点:Microsoft SQL (Execute Query operation) 作为 Tool;Call n8n Workflow Tool(子工作流场景)
解决步骤
- 尝试将 Microsoft SQL 节点放入独立的子工作流,使用 Execute Workflow Trigger 接收输入参数(如
sqlQuery,类型为 String),在 MS SQL 节点的 Query 字段使用普通表达式{{ $json.sqlQuery }},而不是$fromAI()。 - 在主工作流中,使用 Call n8n Workflow Tool 连接该子工作流,并将
$fromAI('sqlQuery', 'The T-SQL SELECT query to execute', 'string')映射到子工作流的输入。 - 注意:上述方案在 Issue 中被验证同样失败,产生相同错误(仅函数名改变)。因此该 bug 的临时绕过方法仍待社区或开发者确认。截至 Issue 关闭(2026-06-19),该问题已被标记为
status:in-linear(进入内部跟踪)和status:team-assigned(已分配团队),但未发布正式修复。 - 可优先尝试:切换到非 Azure 的 LLM 提供商(如标准 OpenAI),看 schema 是否被正确生成(即使 LLM 不严格校验,schema 本身可能仍为
type: "None",需要验证)。 - 如果必须使用 Azure,等待 n8n 发布修复版本,或关注 GitHub 上的
GHC-8370内部工单进展。
验证方法
重新执行 AI Agent 工作流,观察是否不再返回 Invalid schema for function 错误,并且 AI Agent 能成功调用 Tool 执行 SQL 查询。可检查 n8n 的执行日志中生成的 Tool JSON Schema 是否包含正确的 "type": "object" 和 properties 字段。



