Fix: Claude nutzte eigene native Skills/MCP-Connectors statt injizierter Hermes-Tools
hermes-proxy laeuft mit echter Claude-Code-CLI-Session auf ggf. demselben Anthropic-Account wie ARIA -> account-weite Connectors (Gmail/Calendar/Drive) und Claude Codes eigenes Skill-System wurden automatisch mitgeladen und haben mit den per Prompt injizierten <tool_call>-Tools (Hermes-Plugins wie Spotify) konkurriert. --safe-mode deaktiviert alle nativen Customizations fuer diese Session, sodass nur noch die injizierten externen Tools sichtbar sind.
This commit is contained in:
@@ -257,6 +257,43 @@ Gilt analog fuer jedes andere Toolset (Kalender, Browser, etc.) — immer
|
||||
zuerst `hermes tools` (einschalten), dann `hermes auth <name>` falls das
|
||||
Plugin OAuth/Login braucht.
|
||||
|
||||
### Toolset aktiviert, Claude sagt trotzdem "kenn ich nicht" / nennt eigene Skills/MCP-Server
|
||||
|
||||
Root Cause (20.07.2026, im echten Code + per Live-Test verifiziert, nicht
|
||||
geraten): `hermes-proxy` laeuft mit einer **echten Claude-Code-CLI-Session**
|
||||
(npm-Paket `claude-max-api-proxy` wrappt `@anthropic-ai/claude-code`
|
||||
tatsaechlich als Subprocess). Diese Session hat ein eigenes Volume
|
||||
(`./hermes-data/claude-config`), kann aber auf **demselben Anthropic-Account**
|
||||
eingeloggt sein wie ARIA. Ein Account hat aber account-weite claude.ai-
|
||||
Connectors (z.B. Gmail/Calendar/Drive) und Claude Codes eigenes natives
|
||||
Skill-System — die werden in JEDER CLI-Session auf diesem Account automatisch
|
||||
mitgeladen, auch hier. Wenn man Claude dann explizit nach einem "Skill" fragt
|
||||
(z.B. "nutze Skill spotify_albums"), checkt Claude zuerst sein EIGENES,
|
||||
natives Skill-/MCP-System (findet dort nichts zu Spotify, dafuer Gmail/
|
||||
Calendar/Drive) und ignoriert dabei die per Prompt injizierten
|
||||
`<tool_call>`-Tools (Hermes' eigentliche Plugins wie Spotify) komplett — es
|
||||
sind zwei parallele, konkurrierende Tool-Konzepte in derselben Session.
|
||||
|
||||
**Fix:** `docker-compose.yml` startet die CLI seit `367ff64+` (Sed-Patch auf
|
||||
`manager.js`) zusaetzlich mit `--safe-mode` — das deaktiviert fuer diese
|
||||
Session ALLE Customizations (Skills, Plugins, MCP-Server, CLAUDE.md, ...),
|
||||
eingebaute Tools (Bash/Read/...) bleiben zwar technisch an, werden aber nicht
|
||||
gebraucht. Danach sieht Claude in der Hermes-Proxy-Session ausschliesslich die
|
||||
per System-Prompt injizierten externen Tools und sollte sie auch fuer
|
||||
"Skill"-artige Anfragen (Spotify etc.) nutzen.
|
||||
|
||||
```bash
|
||||
git pull
|
||||
docker-compose up -d --build hermes-proxy
|
||||
```
|
||||
|
||||
Test: nach dem Neustart erneut nach einem aktivierten Toolset fragen (z.B.
|
||||
"spiel meine Playlist Fliegen auf dem Handy ab") — Claude sollte jetzt einen
|
||||
`<tool_call>`-Block ausgeben statt "kenn ich nicht" bzw. eigene Connectors zu
|
||||
nennen. Falls es weiter hakt: `docker logs hermes-proxy --tail 100 -f`
|
||||
waehrend der Reproduktion pruefen ob `--safe-mode` tatsaechlich im
|
||||
gestarteten Prozess ankam (`docker exec -it hermes-proxy ps aux | grep claude`).
|
||||
|
||||
## Mobiler Client (Android)?
|
||||
|
||||
Zwei GRUNDVERSCHIEDENE Richtungen, nicht verwechseln:
|
||||
|
||||
+16
-1
@@ -15,6 +15,21 @@ services:
|
||||
# - lange Agent-Loops nicht nach 5min timeouten (DEFAULT_TIMEOUT -> 24h)
|
||||
# - der Prompt via stdin statt CLI-Arg uebergeben wird (Arg-Laengenlimit/
|
||||
# Escaping-Probleme bei langen Konversationen)
|
||||
# - Claude NICHT seine eigenen nativen Skill-/MCP-Tools nutzt (--safe-mode,
|
||||
# seit 20.07.2026): dieser Proxy laeuft mit einer echten Claude-Max-CLI-
|
||||
# Session (eigenes ./hermes-data/claude-config, aber ggf. DERSELBE
|
||||
# Anthropic-Account wie ARIA). Dieser Account hat eigene claude.ai-
|
||||
# Connectors (z.B. Gmail/Calendar/Drive) und ARIAs eigene Skills, die
|
||||
# OHNE --safe-mode ganz normal in JEDER CLI-Session auf diesem Account
|
||||
# mitgeladen werden — auch hier im Hermes-Proxy-Container. Symptom war:
|
||||
# Claude antwortete auf "nutze Skill spotify_albums" mit "kenne ich
|
||||
# nicht, hab nur Gmail/Calendar/Drive verbunden" — es hat sein EIGENES
|
||||
# natives Skill-/MCP-System gecheckt statt den hier per Prompt-Text
|
||||
# injizierten <tool_call>-Tools (Hermes' Spotify-Plugin etc.) zu nutzen.
|
||||
# --safe-mode deaktiviert alle Customizations (Skills, Plugins, MCP-
|
||||
# Server, CLAUDE.md, ...) fuer diese Session — eingebaute Tools
|
||||
# (Bash/Read/...) bleiben an, sind hier aber ungenutzt. Danach sieht
|
||||
# Claude NUR noch die per Prompt injizierten externen Tools.
|
||||
#
|
||||
# Adapter-Patches (proxy-patches/*.js) sind 1:1 aus dem ARIA-Proxy
|
||||
# uebernommen — sie sind generisch (implementieren nur die
|
||||
@@ -38,7 +53,7 @@ services:
|
||||
npm install -g @anthropic-ai/claude-code claude-max-api-proxy &&
|
||||
DIST=$$(find /usr/local/lib -path '*/claude-max-api-proxy/dist' -type d | head -1) &&
|
||||
sed -i 's/startServer({ port })/startServer({ port, host: process.env.HOST || \"127.0.0.1\" })/' $$DIST/server/standalone.js &&
|
||||
sed -i 's/\"--no-session-persistence\",/\"--no-session-persistence\",\"--dangerously-skip-permissions\",/' $$DIST/subprocess/manager.js &&
|
||||
sed -i 's/\"--no-session-persistence\",/\"--no-session-persistence\",\"--dangerously-skip-permissions\",\"--safe-mode\",/' $$DIST/subprocess/manager.js &&
|
||||
sed -i 's/\"--dangerously-skip-permissions\",/\"--dangerously-skip-permissions\",\"--system-prompt\",options.systemPrompt,/' $$DIST/subprocess/manager.js &&
|
||||
sed -i 's/const DEFAULT_TIMEOUT = 300000;/const DEFAULT_TIMEOUT = 86400000;/' $$DIST/subprocess/manager.js &&
|
||||
sed -i '/prompt, \\/\\/ Pass prompt as argument/d' $$DIST/subprocess/manager.js &&
|
||||
|
||||
Reference in New Issue
Block a user