fix(proxy): ARIA-Persona als VOLLER System-Prompt-Replace (--system-prompt)
Der Self-Grounding-Ansatz (268636c) allein reichte nicht: Sonnet 5 in Claude Code haelt seine eingebaute "You are Claude Code"-Identitaet hart und liest den synthetischen <previous_response> als "fabricated". Ursache bleibt der Kanal: --append-system-prompt HAENGT ARIAs Persona nur hinten an Claude Codes Basis- Identitaet an — bei duennem Kontext (Hauptchat) gewinnt die Basis und wehrt die Persona als Injection ab. Anhaengen ist gegen das Anti-Injection-Training des Modells nicht durchsetzbar. Fix: System-Prompt VOLL ersetzen statt anhaengen — sed-Patch in docker-compose schaltet manager.js buildArgs von --append-system-prompt auf --system-prompt. Damit ist die ARIA-Persona DIE Identitaet des Modells (kein Anhaengsel), und Claude Codes dynamische Sektionen (cwd '/', git, platform) — die "ich bin ein Coding-Agent"-Signale — fallen weg. Bestaetigt per claude-code-guide: die CLI isoliert bei --system-prompt vollstaendig, die eingebaute Identitaet leakt nicht. extractSystemPrompt liefert weiterhin einen selbsttragenden Prompt (Persona + Anker + Memory + Skills + Tool-Block); er darf bei --system-prompt nie leer sein (Brain schickt immer System-Message + Tools -> real nie leer). Der IDENTITY_SEED aus268636cbleibt als Defense-in-Depth drin. Kommentare in openai-to-cli.js, routes.js, agent.py, prompts.py entsprechend nachgezogen. Deploy: Proxy UND Brain neu (--force-recreate; routes.js/openai-to-cli.js werden frisch in den Proxy-Container ge-cp't). Verifikation am Container: docker exec aria-proxy sh -c 'grep -o "\-\-system-prompt" /usr/local/lib/*/claude-max-api-proxy/dist/subprocess/manager.js' Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -363,8 +363,8 @@ async function handleStreamingResponse(req, res, subprocess, cliInput, requestId
|
||||
model: cliInput.model,
|
||||
sessionId: cliInput.sessionId,
|
||||
// ARIA: echter System-Prompt-Kanal — manager.js reicht das (sobald
|
||||
// gepatcht) als --append-system-prompt an die CLI. Aktuell ignoriert
|
||||
// ein ungepatchter manager diese Extra-Option gefahrlos.
|
||||
// gepatcht) als --system-prompt (VOLLER Replace) an die CLI. Aktuell
|
||||
// ignoriert ein ungepatchter manager diese Extra-Option gefahrlos.
|
||||
systemPrompt: cliInput.systemPrompt,
|
||||
}).catch((err) => {
|
||||
console.error("[Streaming] Subprocess start error:", err);
|
||||
|
||||
Reference in New Issue
Block a user