From e00b406e2384a6a513a291524dfd845df76d9bb5 Mon Sep 17 00:00:00 2001 From: ARIA Date: Mon, 20 Jul 2026 00:34:25 +0000 Subject: [PATCH] fix(proxy): Claude explizit warnen, injizierte Tools NICHT nativ/via ToolSearch aufzurufen "No such tool available" + Session-Neustart-Vorschlag trotz aktivem Toolset (Verbindungstest komplett gruen). Ursache: Claude Code CLI versucht die im System-Prompt nur als TEXT beschriebenen Tools (spotify_*, ...) ueber sein eigenes natives Funktionsaufruf-/ToolSearch-System zu finden/aufzurufen, weil das "# Verfuegbare Tools"-Listenformat wie eine echte Tool-Registrierung aussieht. Da nichts davon ueber die Anthropic-API als tools-Parameter registriert ist (nur Prompt-Text), schlaegt das immer fehl -> Claude interpretiert den Fehler faelschlich als "nicht verbunden/nicht geladen". Fix: expliziter Warnabsatz im Tool-Block, der genau das verbietet und klar macht dass "No such tool available" ein Bedienfehler (falsches Aufrufmuster) ist, kein Verbindungsproblem. Analog zu ARIAs eigenem System-Prompt, der diese Klarstellung schon enthaelt. --- proxy-patches/openai-to-cli.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/proxy-patches/openai-to-cli.js b/proxy-patches/openai-to-cli.js index 0ccdeef..2d2ed7f 100644 --- a/proxy-patches/openai-to-cli.js +++ b/proxy-patches/openai-to-cli.js @@ -79,6 +79,22 @@ function _toolsBlock(tools) { "das als Problem melden." ); lines.push(""); + lines.push( + "SEHR WICHTIG — kein natives Tool, keine Tool-Suche: Die unten gelisteten " + + "Tools sind NICHT Teil deines eigenen nativen Funktionsaufruf-/MCP-/ToolSearch-" + + "Systems und werden dir NICHT als aufrufbare Funktionen uebergeben. Sie sind " + + "ausschliesslich TEXT-BESCHREIBUNGEN in diesem Prompt. Versuche NIEMALS, sie " + + "als natives Tool aufzurufen, ueber eine interne Tool-Suche zu finden oder zu " + + "aktivieren, oder sie mit deinen eigenen Skills/Connectors/MCP-Servern zu " + + "verwechseln. Ein nativer Aufruf-Versuch schlaegt IMMER mit einem Fehler wie " + + "\"No such tool available\" fehl — das bedeutet NICHT, dass das Tool fehlt, " + + "nicht verbunden oder nicht registriert ist, sondern nur, dass du es falsch " + + "aufgerufen hast. Der EINZIGE richtige Weg ist, den literalen Text-Block " + + "`{...}` als normalen Antworttext auszugeben " + + "(siehe Format weiter unten) — kein Funktionsaufruf, keine Suche, kein Session-" + + "Neustart noetig." + ); + lines.push(""); for (const t of tools) { if (!t || t.type !== "function" || !t.function) continue; const fn = t.function;