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.
This commit is contained in:
ARIA
2026-07-20 00:34:25 +00:00
parent f8d71e00bb
commit e00b406e23
+16
View File
@@ -79,6 +79,22 @@ function _toolsBlock(tools) {
"das als Problem melden." "das als Problem melden."
); );
lines.push(""); 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 " +
"`<tool_call name=\"...\">{...}</tool_call>` als normalen Antworttext auszugeben " +
"(siehe Format weiter unten) — kein Funktionsaufruf, keine Suche, kein Session-" +
"Neustart noetig."
);
lines.push("");
for (const t of tools) { for (const t of tools) {
if (!t || t.type !== "function" || !t.function) continue; if (!t || t.type !== "function" || !t.function) continue;
const fn = t.function; const fn = t.function;