#!/usr/bin/env bash # Fremdblick — Ein-Schuss-Zweitmeinung von einem ANDEREN Modell (Default: GLM-4.6V-Flash, andere # Modell-FAMILIE/Vendor als das Qwen-Worker-Hirn → echte „andere Brille"). Eine EINZELNE # Completion — kein agentischer Subagent — umgeht Hermes' 64K-Delegations-Floor # (MINIMUM_CONTEXT_LENGTH) UND das 60-GB-Ladeproblem von gpt-oss (das mit dem Warm-Set kollidiert # und „exited prematurely" wirft). GLM lädt klein neben dem Warm-Set und antwortet zuverlässig. # # Nutzung: echo "" | fremdblick.sh # printf '%s' "$text" | FREMDBLICK_MODEL=Qwen3-Coder-Next fremdblick.sh set -uo pipefail # Achtung: llama-swap listet unter /v1/models die ECHTEN Modell-IDs, nicht die Gateway-Aliase # (kein "heavy"/"scout" hier). Default daher die reale ID GLM-4.6V-Flash. ENDPOINT="${FREMDBLICK_ENDPOINT:-http://127.0.0.1:8080/v1/chat/completions}" MODEL="${FREMDBLICK_MODEL:-GLM-4.6V-Flash}" SUBJECT="$(cat)" if [ -z "${SUBJECT// /}" ]; then echo "=== FREMDBLICK: nichts zu prüfen (leere Eingabe) ===" exit 0 fi SYS='Du bist ein KRITISCHER Zweitgutachter und ausdrücklich ein ANDERES Modell als der Autor. Prüfe jede vorgelegte Beobachtung/Behauptung streng: Trägt der genannte Beleg (Zahl / Session / Log-Zeile) die Behauptung wirklich, oder ist es ein Einzelfall bzw. ein Bauchgefühl mit Zahlen-Deko? Verwechselt der Autor Korrelation mit Ursache? Fehlt entscheidender Kontext? Falls ein Skill-Kandidat dabei ist: ist er wirklich WIEDERVERWENDBAR oder Einmal-Kram? Antworte kompakt auf Deutsch: pro Punkt ein Urteil TRAEGT / TRAEGT-NICHT / UNSICHER mit genau einem Satz Begruendung. Sei knapp und unbestechlich; nicke nichts aus Hoeflichkeit durch. Erfinde keine neuen Belege.' # max_tokens großzügig: GLM ist ein Reasoning-Modell und verbraucht Tokens im reasoning_content, # bevor es die eigentliche Antwort in content schreibt — zu knapp = leeres content (finish=length). RESP="$(jq -n --arg m "$MODEL" --arg s "$SYS" --arg u "$SUBJECT" \ '{model:$m, temperature:0.2, max_tokens:2200, messages:[{role:"system",content:$s},{role:"user",content:$u}]}' \ | curl -s --max-time 240 "$ENDPOINT" -H 'Content-Type: application/json' -d @- 2>/dev/null)" OUT="$(printf '%s' "$RESP" | jq -r '.choices[0].message.content // empty' 2>/dev/null)" FIN="$(printf '%s' "$RESP" | jq -r '.choices[0].finish_reason // empty' 2>/dev/null)" if [ -n "$OUT" ]; then echo "=== FREMDBLICK (Zweitmeinung von Modell: $MODEL) ===" echo "$OUT" elif [ "$FIN" = "length" ]; then echo "=== FREMDBLICK ABGESCHNITTEN ===" echo "(Das Kritiker-Modell hat sein Token-Budget im Nachdenken verbraucht, bevor ein Urteil kam." echo " Kürze deine Vorlage auf die Kern-Behauptungen und versuche es erneut; sonst UNGEPRUEFT.)" else echo "=== FREMDBLICK FEHLGESCHLAGEN ===" echo "(Kein Urteil erhalten — Endpoint/Modell nicht erreichbar. Behandle die Funde als UNGEPRUEFT.)" fi