iris-claude-exec: Claude Code kennt das Kontextfenster des Agent-LLM nicht und komprimiert nie #167

Open
opened 2026-11-08 23:49:26 +00:00 by alf · 5 comments
Owner

Befund

Craft Anything (und alles andere über tools/iris-claude-exec / iris-claude.sh) lief vier Stunden in einer einzigen Claude-Code-Sitzung und endete mit request (262307 tokens) exceeds the available context size (262144 tokens). Die Sitzung wurde nie komprimiert; die alte Sitzungsdatei (3,8 MB) ließ sich danach nicht mehr fortsetzen (Claude Code hing ohne Ausgabe), Craft Anything meldete irreführend tools did not start.

Warum

iris_agent_common_claude_env setzt weder CLAUDE_CODE_MAX_CONTEXT_TOKENS noch CLAUDE_CODE_AUTO_COMPACT_WINDOW. Claude Code sieht nur den Modellnamen und kennt das echte Fenster des lokalen Modells (hier llama-server, n_ctx 262144) nicht; die Auto-Compact-Schwelle greift daher nicht rechtzeitig. (Ursache nach Lage der Dinge vermutet, in der Binary sind beide Variablen vorhanden; die Wirkung wird beim Umsetzen geprüft.)

Lösung

In tools/iris-agent-common.sh das Kontextfenster des Agent-LLM vom Backend erfragen (/v1/models: max_model_len, context_length, context_window, max_context_length, meta.n_ctx — dieselben Schlüssel wie AnthropicProxyManager.swift) und beide Variablen setzen. Nichts hartcodieren; ist die Größe nicht ermittelbar, bleibt das Verhalten wie bisher.

Nicht Teil dieses Issues

Das irreführende tools did not start von Craft Anything bei hängendem Resume (anderes Projekt).

## Befund Craft Anything (und alles andere über `tools/iris-claude-exec` / `iris-claude.sh`) lief vier Stunden in einer einzigen Claude-Code-Sitzung und endete mit `request (262307 tokens) exceeds the available context size (262144 tokens)`. Die Sitzung wurde nie komprimiert; die alte Sitzungsdatei (3,8 MB) ließ sich danach nicht mehr fortsetzen (Claude Code hing ohne Ausgabe), Craft Anything meldete irreführend `tools did not start`. ## Warum `iris_agent_common_claude_env` setzt weder `CLAUDE_CODE_MAX_CONTEXT_TOKENS` noch `CLAUDE_CODE_AUTO_COMPACT_WINDOW`. Claude Code sieht nur den Modellnamen und kennt das echte Fenster des lokalen Modells (hier llama-server, `n_ctx` 262144) nicht; die Auto-Compact-Schwelle greift daher nicht rechtzeitig. (Ursache nach Lage der Dinge vermutet, in der Binary sind beide Variablen vorhanden; die Wirkung wird beim Umsetzen geprüft.) ## Lösung In `tools/iris-agent-common.sh` das Kontextfenster des Agent-LLM vom Backend erfragen (`/v1/models`: `max_model_len`, `context_length`, `context_window`, `max_context_length`, `meta.n_ctx` — dieselben Schlüssel wie `AnthropicProxyManager.swift`) und beide Variablen setzen. Nichts hartcodieren; ist die Größe nicht ermittelbar, bleibt das Verhalten wie bisher. ## Nicht Teil dieses Issues Das irreführende `tools did not start` von Craft Anything bei hängendem Resume (anderes Projekt).
Author
Owner

PR #168 gemergt: fix(tools): Kontextfenster des Agent-LLM an Claude Code übergeben (#167)
http://docker:3000/alf/2ndbrain/pulls/168

Commits:

  • fix(tools): Kontextfenster des Agent-LLM an Claude Code übergeben (#167)

Befund: Claude Code lief über iris-claude-exec ohne Kenntnis des Kontextfensters des Agent-LLM (llama-server, n_ctx 262144), komprimierte nie und lief in request (262307 tokens) exceeds the available context size (262144 tokens). Die alte Sitzungsdatei (3,8 MB) ließ sich danach nicht mehr fortsetzen.

Geändert: tools/iris-agent-common.sh: neue Funktion iris_agent_common_context_window (fragt /v1/models mit denselben Schlüsseln wie AnthropicProxyManager.swift, nur openaicompat und lmstudio); iris_agent_common_claude_env setzt damit CLAUDE_CODE_MAX_CONTEXT_TOKENS und CLAUDE_CODE_AUTO_COMPACT_WINDOW. Vom Aufrufer gesetzte Werte haben Vorrang; ist die Größe nicht ermittelbar, bleibt alles wie bisher. Nichts hartcodiert.

Geprüft: bash -n; mit dem laufenden Iris-Agent-LLM liefert die Funktion 262144 und beide Variablen sind danach gesetzt; beide Variablen existieren in der Claude-Code-Binary 2.1.319; iris-claude-exec -p mit gesetzten Variablen läuft fehlerfrei durch.

Nicht geprüft: Dass Claude Code damit bei einer langen Sitzung tatsächlich komprimiert. Ein Test mit künstlich kleinem Fenster (20000) an einer kleinen Sitzung zeigte keine Kompaktierung, war aber wegen der kleinen Sitzung nicht aussagekräftig. iris-claude.sh, iris-hermes, iris-opencode nicht ausgeführt; Backends ollama, openai, openrouter, anthropic unverändert (kein Fenster gesetzt).

Grenzen / Offen: Ob die Schwelle bei exakt dem vollen Fenster früh genug greift (Puffer für die Antwort), ist ungeklärt; falls nötig, Wert etwas niedriger ansetzen. Das irreführende „tools did not start" von Craft Anything bei hängendem Resume ist ein eigenes Thema.

PR #168 gemergt: fix(tools): Kontextfenster des Agent-LLM an Claude Code übergeben (#167) http://docker:3000/alf/2ndbrain/pulls/168 Commits: - fix(tools): Kontextfenster des Agent-LLM an Claude Code übergeben (#167) --- **Befund:** Claude Code lief über `iris-claude-exec` ohne Kenntnis des Kontextfensters des Agent-LLM (llama-server, `n_ctx` 262144), komprimierte nie und lief in `request (262307 tokens) exceeds the available context size (262144 tokens)`. Die alte Sitzungsdatei (3,8 MB) ließ sich danach nicht mehr fortsetzen. **Geändert:** `tools/iris-agent-common.sh`: neue Funktion `iris_agent_common_context_window` (fragt `/v1/models` mit denselben Schlüsseln wie `AnthropicProxyManager.swift`, nur `openaicompat` und `lmstudio`); `iris_agent_common_claude_env` setzt damit `CLAUDE_CODE_MAX_CONTEXT_TOKENS` und `CLAUDE_CODE_AUTO_COMPACT_WINDOW`. Vom Aufrufer gesetzte Werte haben Vorrang; ist die Größe nicht ermittelbar, bleibt alles wie bisher. Nichts hartcodiert. **Geprüft:** `bash -n`; mit dem laufenden Iris-Agent-LLM liefert die Funktion 262144 und beide Variablen sind danach gesetzt; beide Variablen existieren in der Claude-Code-Binary 2.1.319; `iris-claude-exec -p` mit gesetzten Variablen läuft fehlerfrei durch. **Nicht geprüft:** Dass Claude Code damit bei einer langen Sitzung tatsächlich komprimiert. Ein Test mit künstlich kleinem Fenster (20000) an einer kleinen Sitzung zeigte keine Kompaktierung, war aber wegen der kleinen Sitzung nicht aussagekräftig. `iris-claude.sh`, `iris-hermes`, `iris-opencode` nicht ausgeführt; Backends `ollama`, `openai`, `openrouter`, `anthropic` unverändert (kein Fenster gesetzt). **Grenzen / Offen:** Ob die Schwelle bei exakt dem vollen Fenster früh genug greift (Puffer für die Antwort), ist ungeklärt; falls nötig, Wert etwas niedriger ansetzen. Das irreführende „tools did not start" von Craft Anything bei hängendem Resume ist ein eigenes Thema.
Author
Owner

PR #351 gemergt: chore(terminal-scripts): Bundle-Kopie von iris-agent-common.sh auf Kontextfenster-Stand (alf/2ndbrain#167)
http://docker:3000/iris/Iris/pulls/351

Commits:

  • chore(terminal-scripts): Bundle-Kopie von iris-agent-common.sh auf Kontextfenster-Stand (alf/2ndbrain#167)

Befund: Die Bundle-Kopie Iris/Resources/tools/iris-agent-common.sh (wird in die App gebündelt) hatte den Stand von #167 noch nicht; tools/iris-agent-common.sh im Wurzel-Repo schon. Folge: Auf dem MacBook blieb die Kopie uncommittet verändert und blockierte pull-all (Fast-Forward nicht möglich).

Geändert: Bundle-Kopie auf den Stand von tools/iris-agent-common.sh gebracht — iris_agent_common_context_window() und das Setzen von CLAUDE_CODE_MAX_CONTEXT_TOKENS / CLAUDE_CODE_AUTO_COMPACT_WINDOW in iris_agent_common_claude_env().

Geprüft: Die Datei ist byte-gleich mit tools/iris-agent-common.sh (Prüfsumme gleich); auf dem MacBook ist die lokale Fassung identisch mit ihr.

Nicht geprüft: App neu gebaut und gestartet; das Komprimieren in einer langen Sitzung (siehe Stand-Kommentar zu #167).

Offen: MacBook: lokale Änderungen an den drei Dateien verwerfen und pull-all (Alf).

PR #351 gemergt: chore(terminal-scripts): Bundle-Kopie von iris-agent-common.sh auf Kontextfenster-Stand (alf/2ndbrain#167) http://docker:3000/iris/Iris/pulls/351 Commits: - chore(terminal-scripts): Bundle-Kopie von iris-agent-common.sh auf Kontextfenster-Stand (alf/2ndbrain#167) --- **Befund:** Die Bundle-Kopie `Iris/Resources/tools/iris-agent-common.sh` (wird in die App gebündelt) hatte den Stand von #167 noch nicht; `tools/iris-agent-common.sh` im Wurzel-Repo schon. Folge: Auf dem MacBook blieb die Kopie uncommittet verändert und blockierte `pull-all` (Fast-Forward nicht möglich). **Geändert:** Bundle-Kopie auf den Stand von `tools/iris-agent-common.sh` gebracht — `iris_agent_common_context_window()` und das Setzen von `CLAUDE_CODE_MAX_CONTEXT_TOKENS` / `CLAUDE_CODE_AUTO_COMPACT_WINDOW` in `iris_agent_common_claude_env()`. **Geprüft:** Die Datei ist byte-gleich mit `tools/iris-agent-common.sh` (Prüfsumme gleich); auf dem MacBook ist die lokale Fassung identisch mit ihr. **Nicht geprüft:** App neu gebaut und gestartet; das Komprimieren in einer langen Sitzung (siehe Stand-Kommentar zu #167). **Offen:** MacBook: lokale Änderungen an den drei Dateien verwerfen und `pull-all` (Alf).
Author
Owner

PR #181 gemergt: fix(tools): Komprimier-Fenster wie in Swift und Ausgabe-Tokens begrenzen, damit Prompt+max_tokens ins Fenster passen (#167)
http://docker:3000/alf/2ndbrain/pulls/181

Commits:

  • fix(tools): Komprimier-Fenster wie in Swift und Ausgabe-Tokens begrenzen, damit Prompt+max_tokens ins Fenster passen (#167)

Befund (Fehlerbild vom MacBook, Craft Anything → iris-claude-exec, Strata mit Kontext 262144): API Error: 400 prompt (201911 tokens) + max tokens (128000) exceeds the context (262144). Im Log (modelUsage): Modell claude-opus-5-5, contextWindow 1000000, maxOutputTokens 128000. Craft Anything wählt den Modellnamen selbst; Claude Code nimmt daraufhin Fenster und Ausgabegröße des echten Opus an, nicht die des lokalen Modells. Mit 128000 reservierter Antwort scheitert jeder Prompt über ca. 134000 Tokens am Server (kein Abschneiden), und das Komprimieren greift zu spät.

Zweiter Fehler im ersten Stand dieses Issues: iris_agent_common_claude_env setzte CLAUDE_CODE_AUTO_COMPACT_WINDOW auf den vollen Kontext. Die Swift-Vorlage (AnthropicProxyManager.compactWindow) rechnet max(Kontext − 42000, 100000).

Geändert (tools/iris-agent-common.sh, dazu die Bundle-Kopie in iris/Iris):

  • Komprimier-Fenster = max(Kontext − 42000, 100000); unter 100000 keine Setzung (wie Swift).
  • CLAUDE_CODE_MAX_OUTPUT_TOKENS = 32000 (16000 bei Kontext < 150000) für ollama/lmstudio/openaicompat, unabhängig vom Modellnamen.
  • Vom Aufrufer gesetzte Variablen haben weiter Vorrang.

Geprüft: Die Berechnung gegen einen Fake-Backend-Server mit Kontext 262144 (→ Komprimieren bei 220144, Ausgabe 32000), 120000 (→ 100000, 16000) und 80000 (→ keine Komprimier-Setzung, 16000); Aufrufer-Wert 9999 bleibt erhalten; bash -n.

Nicht geprüft: Ein echter langer Lauf in Craft Anything gegen Strata, ob Claude Code bei 220144 tatsächlich komprimiert; ob Claude Code CLAUDE_CODE_MAX_OUTPUT_TOKENS für ein Modell namens claude-opus-5-5 wie erwartet übernimmt (die Variable nutzt auch die Swift-Seite, aber nicht für diesen Modellnamen).

Offen: Serverseitige Absicherung durch Alf: "fit_max_tokens": true in der strata-<model>.json (Hinweis aus der Strata-Fehlermeldung, #545) kürzt max_tokens auf den Rest, statt abzulehnen.

PR #181 gemergt: fix(tools): Komprimier-Fenster wie in Swift und Ausgabe-Tokens begrenzen, damit Prompt+max_tokens ins Fenster passen (#167) http://docker:3000/alf/2ndbrain/pulls/181 Commits: - fix(tools): Komprimier-Fenster wie in Swift und Ausgabe-Tokens begrenzen, damit Prompt+max_tokens ins Fenster passen (#167) --- **Befund (Fehlerbild vom MacBook, Craft Anything → `iris-claude-exec`, Strata mit Kontext 262144):** `API Error: 400 prompt (201911 tokens) + max tokens (128000) exceeds the context (262144)`. Im Log (`modelUsage`): Modell `claude-opus-5-5`, `contextWindow 1000000`, `maxOutputTokens 128000`. Craft Anything wählt den Modellnamen selbst; Claude Code nimmt daraufhin Fenster und Ausgabegröße des echten Opus an, nicht die des lokalen Modells. Mit 128000 reservierter Antwort scheitert jeder Prompt über ca. 134000 Tokens am Server (kein Abschneiden), und das Komprimieren greift zu spät. **Zweiter Fehler im ersten Stand dieses Issues:** `iris_agent_common_claude_env` setzte `CLAUDE_CODE_AUTO_COMPACT_WINDOW` auf den vollen Kontext. Die Swift-Vorlage (`AnthropicProxyManager.compactWindow`) rechnet `max(Kontext − 42000, 100000)`. **Geändert (`tools/iris-agent-common.sh`, dazu die Bundle-Kopie in `iris/Iris`):** - Komprimier-Fenster = `max(Kontext − 42000, 100000)`; unter 100000 keine Setzung (wie Swift). - `CLAUDE_CODE_MAX_OUTPUT_TOKENS` = 32000 (16000 bei Kontext < 150000) für ollama/lmstudio/openaicompat, unabhängig vom Modellnamen. - Vom Aufrufer gesetzte Variablen haben weiter Vorrang. **Geprüft:** Die Berechnung gegen einen Fake-Backend-Server mit Kontext 262144 (→ Komprimieren bei 220144, Ausgabe 32000), 120000 (→ 100000, 16000) und 80000 (→ keine Komprimier-Setzung, 16000); Aufrufer-Wert 9999 bleibt erhalten; `bash -n`. **Nicht geprüft:** Ein echter langer Lauf in Craft Anything gegen Strata, ob Claude Code bei 220144 tatsächlich komprimiert; ob Claude Code `CLAUDE_CODE_MAX_OUTPUT_TOKENS` für ein Modell namens `claude-opus-5-5` wie erwartet übernimmt (die Variable nutzt auch die Swift-Seite, aber nicht für diesen Modellnamen). **Offen:** Serverseitige Absicherung durch Alf: `"fit_max_tokens": true` in der `strata-<model>.json` (Hinweis aus der Strata-Fehlermeldung, #545) kürzt `max_tokens` auf den Rest, statt abzulehnen.
Author
Owner

PR #352 gemergt: fix(terminal-scripts): Bundle-Kopie von iris-agent-common.sh — Komprimier-Fenster und Ausgabe-Tokens (alf/2ndbrain#167)
http://docker:3000/iris/Iris/pulls/352

Commits:

  • fix(terminal-scripts): Bundle-Kopie von iris-agent-common.sh — Komprimier-Fenster und Ausgabe-Tokens (alf/2ndbrain#167)

Befund (Fehlerbild vom MacBook, Craft Anything → iris-claude-exec, Strata mit Kontext 262144): API Error: 400 prompt (201911 tokens) + max tokens (128000) exceeds the context (262144). Im Log (modelUsage): Modell claude-opus-5-5, contextWindow 1000000, maxOutputTokens 128000. Craft Anything wählt den Modellnamen selbst; Claude Code nimmt daraufhin Fenster und Ausgabegröße des echten Opus an, nicht die des lokalen Modells. Mit 128000 reservierter Antwort scheitert jeder Prompt über ca. 134000 Tokens am Server (kein Abschneiden), und das Komprimieren greift zu spät.

Zweiter Fehler im ersten Stand dieses Issues: iris_agent_common_claude_env setzte CLAUDE_CODE_AUTO_COMPACT_WINDOW auf den vollen Kontext. Die Swift-Vorlage (AnthropicProxyManager.compactWindow) rechnet max(Kontext − 42000, 100000).

Geändert (tools/iris-agent-common.sh, dazu die Bundle-Kopie in iris/Iris):

  • Komprimier-Fenster = max(Kontext − 42000, 100000); unter 100000 keine Setzung (wie Swift).
  • CLAUDE_CODE_MAX_OUTPUT_TOKENS = 32000 (16000 bei Kontext < 150000) für ollama/lmstudio/openaicompat, unabhängig vom Modellnamen.
  • Vom Aufrufer gesetzte Variablen haben weiter Vorrang.

Geprüft: Die Berechnung gegen einen Fake-Backend-Server mit Kontext 262144 (→ Komprimieren bei 220144, Ausgabe 32000), 120000 (→ 100000, 16000) und 80000 (→ keine Komprimier-Setzung, 16000); Aufrufer-Wert 9999 bleibt erhalten; bash -n.

Nicht geprüft: Ein echter langer Lauf in Craft Anything gegen Strata, ob Claude Code bei 220144 tatsächlich komprimiert; ob Claude Code CLAUDE_CODE_MAX_OUTPUT_TOKENS für ein Modell namens claude-opus-5-5 wie erwartet übernimmt (die Variable nutzt auch die Swift-Seite, aber nicht für diesen Modellnamen).

Offen: Serverseitige Absicherung durch Alf: "fit_max_tokens": true in der strata-<model>.json (Hinweis aus der Strata-Fehlermeldung, #545) kürzt max_tokens auf den Rest, statt abzulehnen.

PR #352 gemergt: fix(terminal-scripts): Bundle-Kopie von iris-agent-common.sh — Komprimier-Fenster und Ausgabe-Tokens (alf/2ndbrain#167) http://docker:3000/iris/Iris/pulls/352 Commits: - fix(terminal-scripts): Bundle-Kopie von iris-agent-common.sh — Komprimier-Fenster und Ausgabe-Tokens (alf/2ndbrain#167) --- **Befund (Fehlerbild vom MacBook, Craft Anything → `iris-claude-exec`, Strata mit Kontext 262144):** `API Error: 400 prompt (201911 tokens) + max tokens (128000) exceeds the context (262144)`. Im Log (`modelUsage`): Modell `claude-opus-5-5`, `contextWindow 1000000`, `maxOutputTokens 128000`. Craft Anything wählt den Modellnamen selbst; Claude Code nimmt daraufhin Fenster und Ausgabegröße des echten Opus an, nicht die des lokalen Modells. Mit 128000 reservierter Antwort scheitert jeder Prompt über ca. 134000 Tokens am Server (kein Abschneiden), und das Komprimieren greift zu spät. **Zweiter Fehler im ersten Stand dieses Issues:** `iris_agent_common_claude_env` setzte `CLAUDE_CODE_AUTO_COMPACT_WINDOW` auf den vollen Kontext. Die Swift-Vorlage (`AnthropicProxyManager.compactWindow`) rechnet `max(Kontext − 42000, 100000)`. **Geändert (`tools/iris-agent-common.sh`, dazu die Bundle-Kopie in `iris/Iris`):** - Komprimier-Fenster = `max(Kontext − 42000, 100000)`; unter 100000 keine Setzung (wie Swift). - `CLAUDE_CODE_MAX_OUTPUT_TOKENS` = 32000 (16000 bei Kontext < 150000) für ollama/lmstudio/openaicompat, unabhängig vom Modellnamen. - Vom Aufrufer gesetzte Variablen haben weiter Vorrang. **Geprüft:** Die Berechnung gegen einen Fake-Backend-Server mit Kontext 262144 (→ Komprimieren bei 220144, Ausgabe 32000), 120000 (→ 100000, 16000) und 80000 (→ keine Komprimier-Setzung, 16000); Aufrufer-Wert 9999 bleibt erhalten; `bash -n`. **Nicht geprüft:** Ein echter langer Lauf in Craft Anything gegen Strata, ob Claude Code bei 220144 tatsächlich komprimiert; ob Claude Code `CLAUDE_CODE_MAX_OUTPUT_TOKENS` für ein Modell namens `claude-opus-5-5` wie erwartet übernimmt (die Variable nutzt auch die Swift-Seite, aber nicht für diesen Modellnamen). **Offen:** Serverseitige Absicherung durch Alf: `"fit_max_tokens": true` in der `strata-<model>.json` (Hinweis aus der Strata-Fehlermeldung, #545) kürzt `max_tokens` auf den Rest, statt abzulehnen.
Author
Owner

PR #186 gemergt: fix(tools): iris-claude-exec setzt CRAFT_ANYTHING_MCP_LEAN_TOOLS für lokale Backends (#167)
http://docker:3000/alf/2ndbrain/pulls/186

Commits:

  • fix(tools): iris-claude-exec setzt CRAFT_ANYTHING_MCP_LEAN_TOOLS für lokale Backends (#167)

Befund (Fortsetzung Fehlerbild Craft Anything auf dem MacBook, Job verloren): Die Sitzung hatte 330 Tools, davon 322 vom craft-anything-MCP-Server (~108.000 Tokens Beschreibungen, mit jeder Anfrage). Nach jeder Komprimierung lag der Prompt wieder bei ~100.000; pro Zyklus blieben ~120.000 Tokens Arbeitsraum. Ursache in Craft Anything: im Deep-Modus hängt es dem MCP-Server --all-tools an. Fix dort: iris/craft-anything#20 (PR #21, CRAFT_ANYTHING_MCP_LEAN_TOOLS=1).

Geändert: tools/iris-claude-exec setzt bei ollama/lmstudio/openaicompat CRAFT_ANYTHING_MCP_LEAN_TOOLS=1 (ein vom Aufrufer gesetzter Wert bleibt). Claude Code reicht die Variable an den MCP-Server weiter (mit einem Wegwerf-Server geprüft). Gemessen mit dem gebauten CLI: 323 Tools/~108.300 Tokens → 39 Tools/~12.200 Tokens.

Nicht geprüft: ein echter Lauf in Craft Anything gegen Strata; ob der Agent im Deep-Studium die nötigen Toolsets selbst per enable_toolset aktiviert; ob damit das Komprimieren bis zum Ende des Builds trägt. Warum im verlorenen Lauf die fünfte automatische Komprimierung ausblieb, ist offen (im Claude-Code-Programm gibt es einen Circuit-Breaker und eine Thrashing-Erkennung; in der Sitzung keine Spur davon).

Zum Einspielen: pull-3rd-party craft-anything baut die neue Version (der MCP-Server muss das neue Programm sein), pull-all auf dem MacBook holt iris-claude-exec. Eine laufende Sitzung behält die alten Werte.

Offen: Praxistest durch Alf. Serverseitig "fit_max_tokens": true in der Strata-Konfiguration als Sicherheitsnetz (Alf).

PR #186 gemergt: fix(tools): iris-claude-exec setzt CRAFT_ANYTHING_MCP_LEAN_TOOLS für lokale Backends (#167) http://docker:3000/alf/2ndbrain/pulls/186 Commits: - fix(tools): iris-claude-exec setzt CRAFT_ANYTHING_MCP_LEAN_TOOLS für lokale Backends (#167) --- **Befund (Fortsetzung Fehlerbild Craft Anything auf dem MacBook, Job verloren):** Die Sitzung hatte 330 Tools, davon 322 vom craft-anything-MCP-Server (~108.000 Tokens Beschreibungen, mit jeder Anfrage). Nach jeder Komprimierung lag der Prompt wieder bei ~100.000; pro Zyklus blieben ~120.000 Tokens Arbeitsraum. Ursache in Craft Anything: im Deep-Modus hängt es dem MCP-Server `--all-tools` an. Fix dort: iris/craft-anything#20 (PR #21, `CRAFT_ANYTHING_MCP_LEAN_TOOLS=1`). **Geändert:** `tools/iris-claude-exec` setzt bei ollama/lmstudio/openaicompat `CRAFT_ANYTHING_MCP_LEAN_TOOLS=1` (ein vom Aufrufer gesetzter Wert bleibt). Claude Code reicht die Variable an den MCP-Server weiter (mit einem Wegwerf-Server geprüft). Gemessen mit dem gebauten CLI: 323 Tools/~108.300 Tokens → 39 Tools/~12.200 Tokens. **Nicht geprüft:** ein echter Lauf in Craft Anything gegen Strata; ob der Agent im Deep-Studium die nötigen Toolsets selbst per `enable_toolset` aktiviert; ob damit das Komprimieren bis zum Ende des Builds trägt. Warum im verlorenen Lauf die fünfte automatische Komprimierung ausblieb, ist offen (im Claude-Code-Programm gibt es einen Circuit-Breaker und eine Thrashing-Erkennung; in der Sitzung keine Spur davon). **Zum Einspielen:** `pull-3rd-party craft-anything` baut die neue Version (der MCP-Server muss das neue Programm sein), `pull-all` auf dem MacBook holt `iris-claude-exec`. Eine laufende Sitzung behält die alten Werte. **Offen:** Praxistest durch Alf. Serverseitig `"fit_max_tokens": true` in der Strata-Konfiguration als Sicherheitsnetz (Alf).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
alf/2ndbrain#167
No description provided.