Debug: temp. Logging in openai-to-cli.js fuer Root-Cause 'Claude kennt Hermes-Tools nicht'
Verifiziert (lokal): claude --system-prompt "" faellt komplett auf die eigene Default-Identitaet zurueck (eigene native Tools, eigene Account-Connectors) statt mit leerem Prompt zu laufen. Das erklaert exakt das beobachtete Symptom bei Hermes (Claude nennt Gmail/Calendar/Drive + Cron/Task, kennt aber keinerlei Spotify-Tool). Hypothese: extractSystemPrompt(request.messages, request.tools) liefert fuer Hermes' Requests einen leeren/zu duennen String -- entweder weil Hermes gar kein tools-Feld mitschickt (Spotify-Toolset in hermes tools nie aktiviert?) oder weil keine system-Message im erwarteten Format ankommt. Logging zeigt messageRoles, toolsCount, toolNames und systemPromptLen/-Preview in docker logs hermes-proxy -- damit klaeren wir das anhand echter Daten statt weiter zu raten.
This commit is contained in:
@@ -216,9 +216,35 @@ export function openaiToCli(request) {
|
||||
// docker-compose.yml). Der Prompt enthaelt nur noch den Gespraechsverlauf.
|
||||
// systemPrompt ist immer ein String (nie undefined) — bei --system-prompt
|
||||
// darf er nicht leer sein, sonst laeuft das Modell ohne System-Prompt.
|
||||
const systemPrompt = extractSystemPrompt(request.messages, request.tools);
|
||||
|
||||
// TEMP-DEBUG (20.07.2026, Root-Cause-Suche "Claude kennt Hermes-Tools nicht"):
|
||||
// Sichtbar per `docker logs hermes-proxy`. Zeigt schwarz auf weiss, ob
|
||||
// Hermes ueberhaupt ein `tools`-Feld + system-Messages mitschickt, und wie
|
||||
// lang der daraus gebaute systemPrompt ist. Wenn systemPromptLen sehr klein
|
||||
// ist (z.B. 0) UND toolsCount 0 ist: Hermes schickt schlicht nichts mit,
|
||||
// das ist dann kein Proxy-Bug sondern ein Hermes-Konfig-Thema (Toolset
|
||||
// nicht aktiv / Persona-Prompt anders uebergeben). Wieder rausnehmen sobald
|
||||
// geklaert.
|
||||
try {
|
||||
const roles = (request.messages || []).map((m) => m && m.role);
|
||||
const toolNames = Array.isArray(request.tools)
|
||||
? request.tools.map((t) => t?.function?.name).filter(Boolean)
|
||||
: [];
|
||||
console.error(
|
||||
"[openai-to-cli][DEBUG] messageRoles=" + JSON.stringify(roles) +
|
||||
" toolsCount=" + (Array.isArray(request.tools) ? request.tools.length : 0) +
|
||||
" toolNames=" + JSON.stringify(toolNames) +
|
||||
" systemPromptLen=" + systemPrompt.length +
|
||||
" systemPromptPreview=" + JSON.stringify(systemPrompt.slice(0, 200))
|
||||
);
|
||||
} catch (e) {
|
||||
console.error("[openai-to-cli][DEBUG] logging failed: " + e.message);
|
||||
}
|
||||
|
||||
return {
|
||||
prompt: conversationToPrompt(request.messages),
|
||||
systemPrompt: extractSystemPrompt(request.messages, request.tools),
|
||||
systemPrompt,
|
||||
model: extractModel(request.model),
|
||||
sessionId: request.user,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user