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

2026年04月14日 09:55 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

  • 发生位置:该函数的参数定义(schema)与调用时的参数值不匹配(如调用时未传数组或传了None)。
  • 3. 解决方案


    # 修复示例:确保传入 array 类型(若允许空数组则用 [] 替代 None)
    def call_self_intent_recognition(params):
        # 原错误可能传了 None,改为空数组或有效数组
        fixed_params = params or {"target_field": []}  # 替换 target_field 为实际字段名
        # 调用函数(示例)
        result = self_intent_recognition_0(**fixed_params)
        return result
    
    # 或直接修正调用处的参数(假设原参数为 None)
    # 错误写法:invoke_chat(function="self_intent_recognition_0", parameters={"key": None})
    # 正确写法:
    invoke_chat(
        function="self_intent_recognition_0",
        parameters={"key": []}  # 用空数组替代 None,或填有效数组
    )
    

    4. 预防措施


  • 最佳实践1:定义 function schema 时用 JSON Schema 明确参数类型(如"type": "array"),禁止None传入;调用前用工具(如jsonschema库)校验参数。

  • 最佳实践2:对可选数组参数,默认传空数组[]而非None,避免类型冲突。
  • ---
    :请将示例中的target_field/key替换为实际字段名。