/MainProcess] 22208184909825/agent-e80a0 agent invoke chat to retry again llm er...
错误信息
[2025-09-03 11:10:25,969: ERROR/MainProcess] 22208184909825/agent-e80a0 agent invoke chat to retry again llm error: Error code: 400 - {'error': {'message': "Invalid schema for function 'self_intent_recognition_0': None is not of type 'array'. (request id: 20250903110948261917640BBDOPt2p)", 'type': 'openai_error', 'param': '', 'code': 'invalid_function_parameters'}}
AI 解决方案
报错分析报告
1.错误翻译
原文:Invalid schema for function 'self_intent_recognition_0': None is not of type 'array'.
译文:函数'self_intent_recognition_0'的Schema无效:None不是数组(array)类型。
2. 原因分析
self_intent_recognition_0时,某参数传递了None值,但该参数在Schema中被定义为数组(array)类型。 3.解决方案
#### 修复方式1:调用时传递数组(替换None)
import json
# 原错误参数(传递None)
# params = {"your_array_param": None}
# 修复后:传递空数组(符合array类型要求)
params = {"your_array_param": []}
# 调用LLM函数示例
function_call_args = {
"name": "self_intent_recognition_0",
"arguments": json.dumps(params)
}
#### 修复方式2:调整函数Schema(设默认空数组)
{
"name": "self_intent_recognition_0",
"parameters": {
"type": "object",
"properties": {
"your_array_param": { // 替换为实际出错参数名
"type": "array",
"items": {"type": "string"}, // 按实际需求调整item类型
"default": [], // 默认值设为空数组(避免None)
"minItems": 0 // 允许空数组
}
},
"required": [] // 若参数可选,设为非必填
}
}
4.️ 预防措施
default: [](空数组),禁止默认None。 jsonschema库、JSAJV)验证参数类型,拦截None传入数组参数。 推荐工具:jsonschema(Python)、AJV(JavaScript)、OpenAI Function Calling Schema校验器。