From 883607ac871daba8d19d10ac1b19600d3ec975f8 Mon Sep 17 00:00:00 2001 From: CJACK Date: Sun, 29 Mar 2026 16:40:44 +0800 Subject: [PATCH] refactor: update prompt formatting to use system instruction tags and explicit user markers for improved model reasoning --- internal/prompt/messages.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/prompt/messages.go b/internal/prompt/messages.go index fca7b5c..80333de 100644 --- a/internal/prompt/messages.go +++ b/internal/prompt/messages.go @@ -42,12 +42,15 @@ func MessagesPrepare(messages []map[string]any) string { } else { parts = append(parts, m.Text) } - case "user", "system": - if i > 0 { - parts = append(parts, "<|User|>"+m.Text) - } else { - parts = append(parts, m.Text) + case "system": + // Clear system boundary improves R1 and V3 context understanding significantly + if strings.TrimSpace(m.Text) != "" { + parts = append(parts, "\n"+strings.TrimSpace(m.Text)+"\n\n\n") } + case "user": + // Always prepend <|User|> to user messages. DeepSeek R1 reasoning triggers best + // and aligns context perfectly when the user turn is explicitly marked. + parts = append(parts, "<|User|>"+m.Text) default: parts = append(parts, m.Text) }