fix(kontext): Coder bekommt den ganzen Slot - 65536 auf 131072
Ampel / ampel (push) Successful in 22s
Ampel / ampel (push) Successful in 22s
Ursache der haeufigen Komprimierung war kein zu scharfer Automatismus, sondern ein falscher Wert von mir: opencode.json deklarierte 131072, der Slot hatte aber nur 65536 (-c 131072 --parallel 2). Beweis im Log: finish_reason=length -> 400 Bad Request -> Wiederholung 200 OK. Diese Wiederholung war die Komprimierung. Jetzt: coder mit --parallel 1 = volle 131072 (er hat nur einen Verbraucher; Lucy und explore nutzen hermes, review nutzt heavy). fast behaelt seine zwei Slots und steht ehrlich auf 65536. Am laufenden Prozess gegengeprueft. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f3139d2b5d
commit
34a9862591
@@ -0,0 +1,77 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# coder-vollkontext.sh — gibt dem Coder den ganzen Kontext (23.08.2026).
|
||||||
|
#
|
||||||
|
# WARUM: llama-swap startet den Coder mit `-c 131072 --parallel 2`. Das sind
|
||||||
|
# zwei Slots à 65.536 — und nur diese 65.536 stehen einer Sitzung zur Verfuegung.
|
||||||
|
# Der Coder hat aber genau EINEN Verbraucher: OpenChamber. Lucy benutzt `hermes`,
|
||||||
|
# der explore-Subagent auch, `review` benutzt `heavy`. Die zweite Bahn liegt brach.
|
||||||
|
#
|
||||||
|
# Mit `--parallel 1` bekommt eine Sitzung die vollen 131.072 — doppelt so viel
|
||||||
|
# Platz, halb so viel Komprimieren.
|
||||||
|
#
|
||||||
|
# ‼️ NICHT waehrend eines laufenden Auftrags ausfuehren: llama-swap laeuft mit
|
||||||
|
# --watch-config und laedt beim Speichern SOFORT neu. Das schneidet eine
|
||||||
|
# laufende Sitzung mitten im Satz ab.
|
||||||
|
#
|
||||||
|
# Aufruf: bash deploy/coder-vollkontext.sh (Trockenlauf, zeigt den Diff)
|
||||||
|
# bash deploy/coder-vollkontext.sh --ja (wendet an)
|
||||||
|
set -uo pipefail
|
||||||
|
|
||||||
|
CONF="${LLAMA_SWAP_CONF:-/etc/llama-swap/config.yaml}"
|
||||||
|
BLOCK="${CODER_BLOCK:- Qwen3.8-27B:}"
|
||||||
|
|
||||||
|
if [ ! -r "$CONF" ]; then echo "ABBRUCH: $CONF nicht lesbar"; exit 1; fi
|
||||||
|
|
||||||
|
TMP="$(mktemp)"
|
||||||
|
cp "$CONF" "$TMP"
|
||||||
|
|
||||||
|
python3 - "$TMP" "$BLOCK" <<'PY'
|
||||||
|
import io, re, sys
|
||||||
|
pfad, block = sys.argv[1], sys.argv[2]
|
||||||
|
z = io.open(pfad, encoding="utf-8").read().split("\n")
|
||||||
|
try:
|
||||||
|
start = next(i for i, l in enumerate(z) if l.startswith(block))
|
||||||
|
except StopIteration:
|
||||||
|
print("ABBRUCH: Block '%s' nicht gefunden" % block); sys.exit(1)
|
||||||
|
ende = next((i for i in range(start + 1, len(z)) if re.match(r"^ [A-Za-z]", z[i])), len(z))
|
||||||
|
|
||||||
|
# Streng auf den Coder-Block begrenzt — `fast`/`hermes` MUESSEN ihre zwei Slots
|
||||||
|
# behalten, dort greifen Lucy und der Explorer wirklich gleichzeitig zu.
|
||||||
|
n_par = n_ctx = 0
|
||||||
|
for i in range(start, ende):
|
||||||
|
if "--parallel 2" in z[i]:
|
||||||
|
z[i] = z[i].replace("--parallel 2", "--parallel 1"); n_par += 1
|
||||||
|
if z[i].strip() == "context: 65536":
|
||||||
|
z[i] = z[i].replace("65536", "131072"); n_ctx += 1
|
||||||
|
|
||||||
|
if n_par != 1 or n_ctx != 1:
|
||||||
|
print(f"ABBRUCH: unerwartet (parallel {n_par}x, context {n_ctx}x) — Konfiguration hat sich geaendert")
|
||||||
|
sys.exit(1)
|
||||||
|
io.open(pfad, "w", encoding="utf-8").write("\n".join(z))
|
||||||
|
PY
|
||||||
|
if [ $? -ne 0 ]; then rm -f "$TMP"; exit 1; fi
|
||||||
|
|
||||||
|
echo "=== Aenderung ==="
|
||||||
|
diff "$CONF" "$TMP"
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [ "${1:-}" != "--ja" ]; then
|
||||||
|
echo "TROCKENLAUF — nichts geaendert. Anwenden mit: bash $0 --ja"
|
||||||
|
rm -f "$TMP"; exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
SICHER="${CONF}.bak-$(date +%Y%m%d-%H%M%S)"
|
||||||
|
sudo -n cp "$CONF" "$SICHER" && echo "Sicherung: $SICHER"
|
||||||
|
sudo -n cp "$TMP" "$CONF" && echo "angewendet — llama-swap laedt durch --watch-config selbst neu"
|
||||||
|
rm -f "$TMP"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Warte auf den Neustart des Coders..."
|
||||||
|
sleep 8
|
||||||
|
curl -s -m 15 "http://127.0.0.1:8080/v1/models" >/dev/null 2>&1 \
|
||||||
|
&& echo "llama-swap antwortet wieder" \
|
||||||
|
|| echo "ACHTUNG: llama-swap antwortet nicht — Sicherung liegt unter $SICHER"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Danach in ~/.config/opencode/opencode.json auf dem PC nachziehen:"
|
||||||
|
echo " coder: limit.context 65536 -> 131072"
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"name": "fast - Qwen3.6-35B-A3B (MoE) - schnell, fuer Erkunden und Kleinkram",
|
"name": "fast - Qwen3.6-35B-A3B (MoE) - schnell, fuer Erkunden und Kleinkram",
|
||||||
"tool_call": true,
|
"tool_call": true,
|
||||||
"limit": {
|
"limit": {
|
||||||
"context": 131072,
|
"context": 65536,
|
||||||
"output": 16384
|
"output": 16384
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user