/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不是数组类型。
2.原因分析
self_intent_recognition_0的参数schema中,某字段预期为数组(array)类型,但实际传入了None值。 invalid_function_parameters错误。3.解决方案
#### 方案1:修正函数Schema(推荐)
将问题字段的类型明确为数组,并设置合理默认值(如空数组):
{
"name": "self_intent_recognition_0",
"parameters": {
"type": "object",
"properties": {
"target_field": { // 替换为实际字段名
"type": "array",
"items": { "type": "string" }, // 按实际需求调整item类型
"default": [] // 避免None,用空数组兜底
}
},
"required": ["target_field"] // 若为必填项则保留
}
}
#### 方案2:修复调用传参
确保调用时传递数组而非None:
# 错误写法(传None)
result = self_intent_recognition_0(target_field=None)
# 修复后(传空数组或有效数据)
result = self_intent_recognition_0(target_field=[]) # 空数组
# 或
result = self_intent_recognition_0(target_field=["有效数据1", "有效数据2"])
4. 预防措施
array类型与None共存(如需可选,用default: []替代nullable)。 jsonschema库本地验证参数合法性,或OpenAI SDK的schema校验功能。 - 推荐工具:
pip install jsonschema(Python)、[OpenAI Function Calling Docs](https://platform.openai.com/docs/guides/function-calling)。---
注:请将上述target_field替换为实际报错的字段名(可通过错误日志中的request id关联代码定位)。