/MainProcess] 22208184909825/agent-e80a0 agent invoke chat to retry again llm er...

2026年04月14日 17:26 processing

错误信息

[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'. (request id: 20250903110948261917640BBDOPt2p)
译文:函数'self_intent_recognition_0'的 schema 无效:None 不是 'array' 类型。(请求ID:20250903110948261917640BBDOPt2p)

2. 原因分析


  • 根本原因:函数self_intent_recognition_0的参数schema定义中,某参数预期为数组(array)类型,但实际传入了None值。

  • 发生位置:LLM调用该函数时的参数校验环节(OpenAI API对函数参数的类型约束)。
  • 3.解决方案


    修正函数schema,确保目标参数为array类型(设置默认值或强制校验):
    # 修复后的函数Schema示例(以OpenAI函数调用为例)
    function_schema = {
        "name": "self_intent_recognition_0",
        "description": "意图识别函数",
        "parameters": {
            "type": "object",
            "properties": {
                # 假设问题参数是"input_list"(原传None),改为array类型
                "input_list": {
                    "type": "array",
                    "items": {"type": "string"},  # 数组元素类型(按需调整)
                    "default": [],  # 默认空数组避免None
                    "description": "待识别的意图列表"
                }
            },
            "required": ["input_list"]  # 若为必填项则保留
        }
    }
    

    4. 预防措施


  • 最佳实践1:定义函数Schema时,所有参数明确类型(尤其array/object),并为可选参数设置非空默认值(如空数组[])。

  • 最佳实践2:调用前用[jsonschema库](https://pypi.org/project/jsonschema/)校验参数,提前拦截类型错误:

  •   pip install jsonschema
      

    ---
    分析完成,如需进一步调试请提供完整函数定义。