Open AI : Mauvaise requête - veuillez vérifier vos paramètres Aucune sortie d'outil trouvée pour l'appel de fonction

Salut les gars, j’ai un problème « Bad request - please check your parameters » avec OpenAI. Tout fonctionnait bien jusqu’à hier quand j’ai commencé à basculer entre les modèles. Maintenant, quel que soit le modèle que j’utilise, j’obtiens la même erreur.


Version de n8n :

2.21.7 (Cloud)

Mise à jour : J’ai connecté OpenRouter Chat et utilisé Gemini, minimax, deepseek et glm, et l’agent a fonctionné. J’ai essayé d’utiliser les modèles OpenAI via OpenRouter, mais le même problème persiste. Cependant, les sous-agents fonctionnent bien avec OpenAI Chat.

Bienvenue @Ali4 dans notre communauté ! Je m’appelle Jay et je suis un créateur vérifié n8n.

La capture d’écran montre que « Use Responses API » est activé dans le nœud OpenAI Chat Model - c’est le problème. L’API Responses utilise un format d’appel d’outils différent et n’est pas entièrement compatible avec le nœud AI Agent de n8n lorsque des outils sont attachés. Désactives ce basculement et repasse à l’API Chat Completions standard - l’erreur « No tool output found for function call » devrait disparaître immédiatement. Le basculement Responses API est principalement utile si tu as besoin du streaming ou de fonctionnalités spécifiques à l’API Responses, mais pour les flux de travail d’agent avec des outils, cela provoque ce genre d’échec.

J’ai reçu cette erreur : Bad request - please check your parameters
Un message d’assistant avec ‘tool_calls’ doit être suivi de messages d’outils répondant à chaque ‘tool_call_id’. Les tool_call_ids suivants n’avaient pas de messages de réponse : call_CPQTMJQP1aC9K7szYjBk97kl

hi @Ali4

L’erreur provient de la règle de tool calling d’OpenAI. Quand l’assistant génère des tool_calls, chaque id doit recevoir une réponse d’outil correspondante. Dans n8n, cela pointe vers une tool/sub-agent connectée à l’AI Agent (comme Call Mortgage Agent ou Call Expense Agent) qui ne retourne pas un output valide dans un certain chemin. Je testerais en déconnectant les tools une par une et en s’assurant que chaque sub-agent retourne toujours un output valide, y compris en cas d’erreur ou quand il n’y a pas de résultat.

Function calling | OpenAI API

1 « J'aime »

@Ali4 en poursuivant ce que dit @tamy.santos — l’erreur « tool_call_ids did not have response messages » après avoir désactivé l’API Responses signifie qu’au moins l’un de vos sous-agents connectés retourne vide/undefined quand l’agent parent l’appelle. Le protocole tool d’OpenAI EXIGE que chaque tool_call_id reçoive une réponse tool, même sur les chemins sans résultat. La solution est de s’assurer que chaque sous-agent émet toujours une sortie string, jamais un tableau vide.

ajouter ce nœud Code comme dernier nœud de chaque sous-agent (avant qu’il ne retourne à l’agent parent) :

{
  "nodes": [
    {
      "parameters": {
        "jsCode": "const items = $input.all();\nif (items.length === 0) {\n  return [{ json: { output: 'No result available for this request.' } }];\n}\n// guarantee the output field exists as a non-empty string\nreturn items.map(item =\ 003e ({\n  json: {\n    output: typeof item.json.output === 'string' \ 0026\ 0026 item.json.output.length \ 003e 0\n      ? item.json.output\n      : JSON.stringify(item.json) || 'No result.'\n  }\n}));"
      },
      "name": "Guarantee Tool Output",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [1200, 400]
    }
  ],
  "connections": {}
}

maintenant, même quand un sous-agent n’a rien à retourner (filtre a rejeté tous les éléments, l’API a retourné vide, etc.), l’agent parent reçoit quand même un champ output et le tool_call_id est satisfait. le moyen le plus facile de trouver quel sous-agent pose problème : les déconnecter un par un de l’agent principal et exécuter — quand l’erreur disparaît, c’est celui-là qui manque l’output.

1 « J'aime »

Merci pour ces détails. Mais la chose étrange, c’est que je n’ai pas rencontré ce problème avec aucun autre modèle en dehors d’OpenAI. Donc maintenant, tout va bien.

1 « J'aime »

@Ali4 on est ravi d’avoir pu t’aider ! N’hésite pas à marquer la réponse de quelqu’un comme solution, et passe une excellente journée ! Si tu veux qu’on essaie de régler le problème avec OpenAI, fais-nous signe !