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

2026年04月15日 09:34 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'
译文:函数“self_intent_recognition_0”的 schema 无效:None 不是“数组”类型

2. 原因分析


  • 根本原因:调用函数self_intent_recognition_0时,其某个参数预期为数组类型(array),但实际传入了None值。

  • 发生位置:LLM 调用该函数(self_intent_recognition_0)的参数传递环节,对应参数未按 schema 要求提供数组。
  • 3.解决方案


    假设函数self_intent_recognition_0需要一个数组参数(如intents),修复传入值为数组类型(空数组用[],而非None):

    # 修复前(错误):参数为 None
    params = {"intents": None}  # 触发 "None is not array" 错误
    
    # 修复后(正确):参数为数组(示例)
    params = {"intents": []}  # 空数组(若允许)
    # 或 params = {"intents": ["意图1", "意图2"]}  # 实际数组值
    

    4. 预防措施


  • 参数类型校验:调用函数前,用isinstance(param, list)验证数组参数,避免传入None或非数组值。

  • Schema 文档化:在函数定义中明确参数的必填性类型(如array/string),用工具(如pydantic)自动校验。
  • ---
    以上分析基于报错中的invalid_function_parameters核心矛盾,聚焦参数类型匹配问题。