From b24a0007843aff2481c0d2b3a0eaa3586337e39a Mon Sep 17 00:00:00 2001 From: Meleki Date: Mon, 2 Mar 2026 10:30:22 +0100 Subject: [PATCH] Zeilenreferenz-Hinweis im System-Prompt auch ohne ToolChoice:any - toolAny+workspace: Kombinierter Erinnerungsblock (Tool-Pflicht + Zeilenreferenz) - !toolAny+workspace: Eigener Erinnerungsblock nur mit Zeilenreferenz-Hinweis - Kein doppelter ERINNERUNG-Header mehr --- Services/SystemPromptBuilder.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Services/SystemPromptBuilder.cs b/Services/SystemPromptBuilder.cs index 0137b13..8c7c73c 100644 --- a/Services/SystemPromptBuilder.cs +++ b/Services/SystemPromptBuilder.cs @@ -202,7 +202,19 @@ Wenn der User auf eine bestimmte Zeile in einer Datei verweist (z.B. `[Datei: fo Icon = "fa-exclamation-circle", Label = "System · Erinnerung (Workspace + ToolChoice: any)", Content = @"## ERINNERUNG -Diese Regel hat höchste Priorität und gilt für JEDE Antwort: Wenn eine Datei gelesen, geschrieben, bearbeitet, erstellt oder gelöscht werden soll, oder ein Befehl ausgeführt werden soll, MUSS der entsprechende Tool-Aufruf erfolgen. Ohne Tool-Aufruf ist NICHTS passiert. Beschreibe keine Änderungen - führe sie durch." +Diese Regel hat höchste Priorität und gilt für JEDE Antwort: Wenn eine Datei gelesen, geschrieben, bearbeitet, erstellt oder gelöscht werden soll, oder ein Befehl ausgeführt werden soll, MUSS der entsprechende Tool-Aufruf erfolgen. Ohne Tool-Aufruf ist NICHTS passiert. Beschreibe keine Änderungen - führe sie durch. + +Bei Zeilenreferenzen (z.B. `[Datei: foo.txt:11]`) IMMER `cat -n` verwenden um die exakte Zeile zu bestimmen. NIEMALS Leerzeilen beim Zählen überspringen." + }); + } + else if (!string.IsNullOrWhiteSpace(session.Workspace)) + { + // Zeilenreferenz-Hinweis als eigener Erinnerungsblock wenn kein toolAny + blocks.Add(new PromptBlock + { + Icon = "fa-exclamation-circle", + Label = "System · Erinnerung (Workspace)", + Content = "## ERINNERUNG\nBei Zeilenreferenzen (z.B. `[Datei: foo.txt:11]`) IMMER `cat -n` verwenden um die exakte Zeile zu bestimmen. NIEMALS Leerzeilen beim Zählen überspringen." }); }