From d68ee601824682cccd2e0ddb8629af1b7c49fbba Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Tue, 7 Jul 2026 21:26:24 +0200 Subject: [PATCH] Chef-Gutachter-Cron (Orchestrator-Finale): gpt-oss urteilt naechtlich ueber die autonome Arbeit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Idee 06.07.: das grosse Modell NICHT im heissen Pfad, sondern als naechtlicher Gutachter (04:30) — Kaltladen ist dann egal, Lucy bleibt tagsueber schnell. Feed sammelt 24h-Beweise (Vorschlags-Branches, main- Commits, Vault-Notizen, Journal-Warnungen, Insights), der Richter laeuft als Ein-Schuss-Completion gegen llama-swap (fremdblick-Architektur). Richter-Kette: gpt-oss-120b -> GLM-4.6V-Flash als gekennzeichnete Vertretung (gpt-oss wirft neben dem Warm-Set weiterhin 'exited prematurely', E2E 07.07. verifiziert). Bote = Cron-Agent mit striktem Treu-Wiedergeben-Mandat (chef-gutachter-prompt.md), Ausfall wird ehrlich gemeldet statt verschwiegen. Co-Authored-By: Claude Fable 5 --- deploy/chef-gutachter-feed.sh | 84 +++++++++++++++++++++++++++++++++ deploy/chef-gutachter-prompt.md | 15 ++++++ deploy/deploy.sh | 4 +- 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 deploy/chef-gutachter-feed.sh create mode 100644 deploy/chef-gutachter-prompt.md diff --git a/deploy/chef-gutachter-feed.sh b/deploy/chef-gutachter-feed.sh new file mode 100644 index 0000000..636cf28 --- /dev/null +++ b/deploy/chef-gutachter-feed.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +# Chef-Gutachter-Feed (Orchestrator-Finale, User-Idee 06.07.): gpt-oss-120b als NÄCHTLICHER +# Chef-Gutachter über die autonome Arbeit der Box — bewusst NIE im heißen Pfad (Kaltladen +# ~2-5 min ist um 04:30 egal; tagsüber bleibt Lucy schnell). Muster wie dreaming-feed.sh: +# liegt in ~/.hermes/scripts/, stdout wird dem Cron-Agenten als Prompt eingespeist. +# Der eigentliche RICHTER läuft als Ein-Schuss-Completion direkt gegen llama-swap (:8080, +# fremdblick-Architektur — umgeht Hermes' Delegations-Floor und braucht keinen Subagenten). +# Richter-Kette: gpt-oss-120b; wirft der beim Laden "exited prematurely" (neben dem Warm-Set +# live gesehen, E2E 07.07.), übernimmt GLM-4.6V-Flash als gekennzeichnete VERTRETUNG. +set -uo pipefail + +ENDPOINT="${CHEF_ENDPOINT:-http://127.0.0.1:8080/v1/chat/completions}" +CHEF="${CHEF_MODEL:-gpt-oss-120b}" +VERTRETUNG="${CHEF_FALLBACK:-GLM-4.6V-Flash}" +MC="$HOME/mission-control-v2" +VAULT="$HOME/wissens-vault" + +# ---------- Versionierter Auftrag für den Boten-Agenten ---------- +cat "$MC/deploy/chef-gutachter-prompt.md" +echo + +# ---------- Beweismaterial der letzten 24 h (hart begrenzt, erst sammeln, dann kürzen) ---------- +EVID="$( + echo "## BEWEISMATERIAL (automatisch erhoben am $(date '+%d.%m.%Y %H:%M'))" + echo + echo "### Vorschlags-Branches (Werkstatt/Orchestrator, jüngste zuerst):" + git -C "$MC" fetch -q origin 2>/dev/null || true + git -C "$MC" for-each-ref --sort=-committerdate refs/remotes/origin \ + --format='%(committerdate:relative) | %(refname:short) | %(subject)' 2>/dev/null | head -10 + echo + echo "### main-Commits der letzten 24 h:" + git -C "$MC" log --since='24 hours ago' --oneline origin/main 2>/dev/null | head -12 + echo + echo "### Wissens-Vault (neue Traum-Notizen, 24 h):" + git -C "$VAULT" log --since='24 hours ago' --name-only --pretty='— %s' 2>/dev/null | head -20 + echo + echo "### Betriebs-Warnungen (journal, 24 h, je Dienst gezählt):" + journalctl --user --since '24 hours ago' -p warning --no-pager 2>/dev/null \ + | grep -oE 'hermes-gateway|mission-control-2|mem0-service|voice-service|hermes-builtin-ui' \ + | sort | uniq -c | sort -rn | head -6 + echo + echo "### Aktivitäts-Insights (1 Tag):" + bash -lc 'hermes insights --days 1' 2>/dev/null | sed 's/\x1b\[[0-9;]*m//g' | head -30 +)" + +RASTER='Du bist der CHEF-GUTACHTER über die autonome Arbeit einer lokalen KI-Box (Hermes-Agent, Werkstatt, Orchestrator, Traum-Kreislauf). Du bekommst BEWEISMATERIAL der letzten 24 Stunden. Urteile AUSSCHLIESSLICH auf Basis dieses Materials — kein Lob und keine Behauptung ohne konkreten Beleg darin; fehlt dir zu einem Punkt Material, sage das offen. Antworte auf DEUTSCH, kompakt, in exakt dieser Struktur: +VERDIKT: +RISIKEN: <0-3 Punkte, je mit Beleg aus dem Material; "keine erkennbar" wenn leer> +TOP-3 FUER DEN COMMANDER: ' + +# Ein-Schuss-Richter: $1=Modell-ID $2=curl-Timeout $3=max_tokens +judge() { + local req + req="$(jq -n --arg m "$1" --arg sys "$RASTER" --arg usr "$EVID" --argjson mt "$3" \ + '{model:$m, messages:[{role:"system",content:$sys},{role:"user",content:$usr}], + max_tokens:$mt, temperature:0.2}')" + curl -s -m "$2" "$ENDPOINT" -H 'Content-Type: application/json' --data-binary "$req" \ + | python3 -c ' +import json, sys +try: + d = json.load(sys.stdin) + msg = d["choices"][0]["message"] + out = (msg.get("content") or msg.get("reasoning_content") or "").strip() + print(out) +except Exception: + pass' +} + +RICHTER="$CHEF" +VERDIKT="$(judge "$CHEF" 420 2600)" +if [ -z "${VERDIKT// /}" ]; then + RICHTER="$VERTRETUNG (Vertretung — $CHEF hat nicht geladen)" + VERDIKT="$(judge "$VERTRETUNG" 240 1200)" +fi + +echo "$EVID" +echo +if [ -z "${VERDIKT// /}" ]; then + echo "## CHEF-VERDIKT: AUSGEFALLEN" + echo "Beide Richter ($CHEF, $VERTRETUNG) haben nicht geantwortet — das dem Commander ehrlich melden." +else + echo "## CHEF-VERDIKT (Richter: $RICHTER)" + echo "$VERDIKT" +fi diff --git a/deploy/chef-gutachter-prompt.md b/deploy/chef-gutachter-prompt.md new file mode 100644 index 0000000..52564b9 --- /dev/null +++ b/deploy/chef-gutachter-prompt.md @@ -0,0 +1,15 @@ +# Auftrag: Nacht-Gutachten überbringen (Chef-Gutachter-Cron) + +Du bist Lucy. Unten stehen (1) BEWEISMATERIAL der letzten 24 Stunden und (2) das +CHEF-VERDIKT eines großen Gutachter-Modells darüber. Deine Aufgabe ist NUR das Überbringen +an den Commander per Telegram — kurz, in deiner Stimme, ohne Werkzeuge. + +Regeln: +1. EIN einleitender Satz von dir (z. B. wie die Nacht lief), dann das Verdikt. +2. Gib VERDIKT, RISIKEN und TOP-3 des Chef-Gutachters TREU wieder — nicht weichspülen, + nicht kürzen bei Risiken, NICHTS dazuerfinden. Du bist die Botin, nicht die Richterin. +3. Nenne am Ende in Klammern den Richter (steht über dem Verdikt: gpt-oss-120b oder + die GLM-Vertretung). +4. Steht dort „CHEF-VERDIKT: AUSGEFALLEN", melde genau das ehrlich — kein Ersatz-Urteil + von dir. +5. Telegram-tauglich: kompakt, keine Markdown-Tabellen, echte Umlaute. diff --git a/deploy/deploy.sh b/deploy/deploy.sh index cab5cba..7f57484 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -79,7 +79,9 @@ cp "$SRC/deploy/dreaming-feed.sh" "$HOME/.hermes/scripts/dreaming-feed.sh" cp "$SRC/deploy/fremdblick.sh" "$HOME/.hermes/scripts/fremdblick.sh" # Worker-Helfer (Orchestrator): Ein-Schuss-Arbeitsauftrag an ein Worker-Modell (Gegenstück zu fremdblick). cp "$SRC/deploy/worker.sh" "$HOME/.hermes/scripts/worker.sh" -chmod +x "$HOME/.hermes/scripts/fremdblick.sh" "$HOME/.hermes/scripts/dreaming-feed.sh" "$HOME/.hermes/scripts/worker.sh" +# Chef-Gutachter-Cron (Orchestrator-Finale): gpt-oss urteilt nachts über die autonome Arbeit. +cp "$SRC/deploy/chef-gutachter-feed.sh" "$HOME/.hermes/scripts/chef-gutachter-feed.sh" +chmod +x "$HOME/.hermes/scripts/fremdblick.sh" "$HOME/.hermes/scripts/dreaming-feed.sh" "$HOME/.hermes/scripts/worker.sh" "$HOME/.hermes/scripts/chef-gutachter-feed.sh" # Werkstatt-Skill (Autonomie E6): Selbstwartungs-Kreislauf für Hermes. mkdir -p "$HOME/.hermes/skills/wartung" cp "$SRC/deploy/skills/wartung/SKILL.md" "$HOME/.hermes/skills/wartung/SKILL.md"