diff --git a/deploy/hermes-postcheck.sh b/deploy/hermes-postcheck.sh index 1f1aeae..14e9117 100644 --- a/deploy/hermes-postcheck.sh +++ b/deploy/hermes-postcheck.sh @@ -72,12 +72,22 @@ fi # --- Approval-/Tool-Ketten (Antwort muss kommen und darf nicht in pending_approval hängen). --- API_KEY="$(grep -E '^API_SERVER_KEY=' "$HERMES/.env" 2>/dev/null | cut -d= -f2- | tr -d '"' | tr -d "'")" if [ -n "$API_KEY" ]; then - TOOL_RESP=$(curl -sf -m 90 -X POST "http://127.0.0.1:8642/v1/chat/completions" \ - -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \ - -H "X-Hermes-Session-Id: postcheck-tool-smoke" \ - -d '{"model":"hermes","stream":false,"messages":[{"role":"user","content":"Führe im Terminal exakt den Befehl echo postcheck-ok aus und gib mir nur dessen Ausgabe zurück."}]}' 2>/dev/null) + # Mit Retry — GENAU wie der Voice-Smoke darunter, und aus demselben Grund: direkt nach + # einem Update ist das Modell kalt. Ein Kaltstart kostet ~20-30 s Laden PLUS ~37 s + # Prefill für Hermes' ~70-KB-Systemprompt (33 Tool-Schemas) — zusammen mit zwei + # Inferenz-Runden sprengt das die 90 s des ersten Versuchs. Warm gemessen: 12 s. + # Ein Versuch allein war ein Fehlalarm-Generator (live erlebt 25.07., Job faf1137a). + TOOL_RESP="" + for try in 1 2 3; do + TOOL_RESP=$(curl -sf -m 120 -X POST "http://127.0.0.1:8642/v1/chat/completions" \ + -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \ + -H "X-Hermes-Session-Id: postcheck-tool-smoke-$try" \ + -d '{"model":"hermes","stream":false,"messages":[{"role":"user","content":"Führe im Terminal exakt den Befehl echo postcheck-ok aus und gib mir nur dessen Ausgabe zurück."}]}' 2>/dev/null) + echo "$TOOL_RESP" | grep -qi "postcheck-ok" && break + [ "$try" -lt 3 ] && sleep 10 + done if echo "$TOOL_RESP" | grep -qi "postcheck-ok"; then - echo "PASS · Tool-Smoke (terminal via Agent) liefert Ergebnis" + echo "PASS · Tool-Smoke (terminal via Agent) liefert Ergebnis (Versuch $try)" elif echo "$TOOL_RESP" | grep -qi "pending_approval"; then echo "FAIL · Tool-Smoke hängt in pending_approval (approvals.mode prüfen!)"; fail=1 else